Helm: What is recommended method of overriding dependent chart default values?

Created on 21 Aug 2018  ·  3Comments  ·  Source: helm/helm

Output of helm version:
2.8 and 2.9

Output of kubectl version:
2.10 and 2.11

Cloud Provider/Platform (AKS, GKE, Minikube etc.):
AWS EC2 (with kops)

Say a chart A depends on a chart B, so it lists B in its requirements.yaml. Chart A also defines a values.yaml for A default values. Chart B exists in a repo, the chart contains a values.yaml that provides B default values for the chart, and cannot be edited. Finally, some values of Chart B need to be overridden, even root values:

# chart B values.yaml provides B defaults:
someRootVar: someValue

and

# chart A values.yaml, attempt to override B defaults: 
B:
    someRootVar: someOtherValue

This does not work. How to override B's someRootVar so it has value someOtherValue instead of someValue, either via A's values.yaml, or by adding an extra values files that helm knows is to override B defaults?

questiosupport

Most helpful comment

Yes it is thx. I think the title is confusing, I skipped it when I skimmed the page. I suggest section title should be "Overriding a child chart's values", which focusses on the problem (user space) rather than solution (dev space - ie put special key in parent chart - that's one of many solutions namely the one that was implemented in helm!).

All 3 comments

So I found this example, mentioned in the docs: https://github.com/sapcc/helm-charts/blob/master/system/sentry/values.yaml. This suggests that you can put the chart's name as root element in A's values.yaml, and children of that root element will automatically override B's values. If this is true, where is this approach documented in the helm docs?

I think you're looking for this

That section also discusses the use of a global shared namespace which creates coupling, but might be useful in some scenarios.

Yes it is thx. I think the title is confusing, I skipped it when I skimmed the page. I suggest section title should be "Overriding a child chart's values", which focusses on the problem (user space) rather than solution (dev space - ie put special key in parent chart - that's one of many solutions namely the one that was implemented in helm!).

Was this page helpful?
0 / 5 - 0 ratings