Helm null handling has regressed. It's noticeable in Test 2.
Each test can be run by Helm 3.17.0, and Helm 4.1.1. Compare the outputs!
alias helm-317='podman run --rm -it -v $PWD:/app -w /app "alpine/helm:3.17.0"'
alias helm-411='podman run --rm -it -v $PWD:/app -w /app "alpine/helm:4.1.1"'Warning
This is the test that has regressed.
- The
childchart defines a config section (empty mapping) invalues.yaml. - The
parentchart defines a config value invalues.yaml - The custom
next-values.yamloverrides the parent config key with null
(
cd nested-chart-values-override
helm-317 template . --values=./next-values.yaml
helm-411 template . --values=./next-values.yaml
)- The
childchart defines a config section (empty mapping) invalues.yaml. - The
parentchart defines an arbitrary key invalues.yaml - The custom
next-values-1.yamlandnext-values-2.yamldefine a different key with a non-null, and null value, respectively.
(
cd nested-chart-siblings-override
helm-317 template . --values=./next-values-1.yaml --values=./next-values-2.yaml
helm-411 template . --values=./next-values-1.yaml --values=./next-values-2.yaml
)- The chart defines a config section with a default value in
values.yaml. - The custom
next-values.yamloverrides the chart config key with null
(
cd single-chart-values-override
helm-317 template . --values=./next-values.yaml
helm-411 template . --values=./next-values.yaml
)- The chart defines a config section (empty mapping) in
values.yaml. - The custom
next-values-1.yamlandnext-values-2.yamldefine a different key with a non-null, and null value, respectively.
(
cd single-chart-siblings-override
helm-317 template . --values=./next-values-1.yaml --values=./next-values-2.yaml
helm-411 template . --values=./next-values-1.yaml --values=./next-values-2.yaml
)