We are using helm for our deployments with multiple helm repositories. The directory structure looks like:
<ENV>/<APPLICATION_NAME>/values.yaml
It would be great to have a detection mechanism for this. Something like a argo.yaml which we can placed inside the directory.
Example:
type: helm
helm-repository: stable
chart: redis
version: 1.0.0
do you think this is useful?
Helllo @rpahli ! Not sure if I understood your proposal correctly.
Are you suggesting to add applications auto-detection mechanism? So user could connect repository with multiple argo.yaml files instead of manually run argocd app create for every application?
This is already supported but in a slightly different way. You can create directory argo-cd-apps which has yaml definition for each your environment and connect it to argocd using argocd app create appications --repo <repourl> --path argo-cd-apps. E.g.:
argo-cd-apps/prod.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: helm-guestbook
spec:
destination:
namespace: default
server: https://localhost:6443
project: default
source:
helm:
valueFiles:
- values-production.yaml
path: helm-guestbook
repoURL: https://github.com/argoproj/argocd-example-apps
This way you can manage argocd application in a gitops way.
Hello @alexmt,
that's what I'm looking for. But what I miss is the opportunity to use remote helm repositories with local values files.
You might use URL. e.g.
source:
helm:
valueFiles:
- https://raw.githubusercontent.com/argoproj/argocd-example-apps/master/helm-guestbook/values-production.yaml
Unfortunately, Helm does not support URLs which require authentication.
What I mean is I want to use remote helm chart (tgz files) for example from https://hub.helm.sh and only the values files are in a git repositories. I know helm template does not support remote templates out of the box but this would be very helpful if argo-cd would support this. Maybe I can support to implement this feature if you think this is helpful.
@rpahli - The way to accomplish this without building any extra features, is by having a helm chart in your private git repo, with a dependency to your desired chart in the upstream helm repository. The values.yaml in the private git repo is able to customize the helm parameters in the upstream chart.
I added an example of how to do that here:
https://github.com/argoproj/argocd-example-apps/tree/master/helm-dependency
Let us know if this satisfies your use case.
Ok I'll check it if this works for us.
Thanks
First class help charts without involving git is WIP. I think we can close this one. @rpahli please feel free to reopen if #1145 does not cover your use case
Most helpful comment
@rpahli - The way to accomplish this without building any extra features, is by having a helm chart in your private git repo, with a dependency to your desired chart in the upstream helm repository. The values.yaml in the private git repo is able to customize the helm parameters in the upstream chart.
I added an example of how to do that here:
https://github.com/argoproj/argocd-example-apps/tree/master/helm-dependency
Let us know if this satisfies your use case.