-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FEATURE: HelmRelease valueFiles (multiple sources) #814
Comments
You can have multiple sources in a configMapGenerator:
- name: my-values
files:
- values1.yaml=values1.yaml
- values2.yaml=values2.yaml And in the HelmRelease: spec:
valuesFrom:
- kind: ConfigMap
name: my-values
valuesKey: values1.yaml
- kind: ConfigMap
name: my-values
valuesKey: values2.yaml |
I know this means they need to reside next to release and can’t be referenced from other sources |
They don't need to to be next to a release, helm-controller gets the values from etcd. |
configMapGenerator has a lot of limitations besides the fact that it puts the yaml into a string. For example when you want to have environment specific or cluster specific values, I can't use
So inefficiently you technically can have the following in the release itself:
I lose the ability to have one for each cluster unless I literally wrote out every cluster:
allowing the One advantage configMapGenerator has right now that I'm unclear if The helm-controller should be able to mount the values.yaml (valuesFiles) from the gitRepo as it does for the release.yaml already in the /tmp/ directories so should be no reason it technically couldn't sourceRef the values files (by default it looks in relative path within same GitRepository it's using for the HelmRelease unless you specify a different GitRepository name and it would be relative to that one. |
This is not how the helm-controller works. What actually happens is that the template from the |
@hiddeco are you confusing the For example if we have addons repo we could have defaults like So when they do a HelmRelease to their tenant (namespace) it could pull in the defaults from platform team and then leverage their specific overrides (similar to what we could do at a ${CLUSTER_NAME} This isn't allowing HTTPS urls for values.yaml (which I think was removed in the past for security reasons) just allows different values.yaml sources which are still in the construct of source-controller's control. |
basically would be something like |
Today, if you want to have a
I would concur with @cdenneen that having the ability to directly refer to a path in a GitRepository would improve a lot the ease of doing such things. Additionally, having the same ability for OCIRepositories would also be something very nice to have (have a way to point to a path under an OCIRepository in |
I tried the proposed solution and have an issue.
If I set
|
I think I can answer my question: |
Currently the only
valueFiles
is at the chart spec. I would like to request the feature be added to addvalueFiles
at the HelmRelease spec level to reside alongside thevalues
andvaluesFrom
maps.The
valueFiles
at the HelmReleaseSpec would allow for passing multiple-f values.yaml
files to the release. These files would reside in aGitRepository
sourceRef
which would allow to overcome the fact that you can't pass multiple files currently, thevalueFiles
in the chart must reside from within the chart itself, doing a kustomizeconfigMapGenerator
can't mergevalues.yaml
because it's a string,configMapGenerator
doesn't allow for more thank=v
pairs (no nested YAML).This support currently exists in ArgoCD: https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository
The text was updated successfully, but these errors were encountered: