{{- $default := dict "boolProp" true "stringProp" "Override me" }} {{- $explicit := dict "boolProp" false "stringProp" "String value is overriden, but bool value is not!" }} $default: {{- $default | toYaml | nindent 2 }} $explicit: {{- $explicit | toYaml | nindent 2 }} # Here is the bug: `boolProp` can't be overriden with a `false` value by # `merge`. `boolProp` should be false here (the first argument to `merge` has # precedence, according to helm docs) merge $explicit $default: {{- merge $explicit $default | toYaml | nindent 2 }} # `mergeOverwrite` also cannot deal with bools mergeOverwrite $default $explicit: {{- mergeOverwrite $default $explicit | toYaml | nindent 2 }}