-
Notifications
You must be signed in to change notification settings - Fork 7.3k
Description
Currently Helm implements two ways of handling values when updating an existing release: reusing the existing user-supplied values if new ones are not supplied, or not reusing them if new ones are supplied. However, the way these are implemented and the way --reuse-values
and --reset-values
change that default behavior is sometimes confusing; see, for example:
https://medium.com/@kcatstack/understand-helm-upgrade-flags-reset-values-reuse-values-6e58ac8f127e
(And see one of the commenters pointing out that even after this article-length treatment of the subject, the writer missed an important subtlety!)
What I think would be nice for users is a flag that means "take the existing chart's values, merge these new values I am giving you explicitly, and do not update values from the chart unless they are new to the chart since the version stored in the target release". (Alternately one can think of this as "--reset-values
followed by --reuse-values
followed by user-supplied --set*
values")
This seems like it would be less confusing in the majority of cases: if I give a value, it is updated; if I don't give it and it exists in the release, it is reused; if I don't give it and it doesn't exist in the release, it is set from the updated chart. It would eliminate the case of "I did not specify this value as part of my upgrade but it changed anyway" which appears to be where much of the confusion strikes.