Skip to content
Latchkey

Helm --reuse-values Drops New Chart Defaults on Upgrade in CI

helm upgrade --reuse-values reuses the last release’s merged values and ignores both new -f/--set overrides and new defaults from the upgraded chart. The upgrade "succeeds" but your new configuration never takes effect.

What this error means

A Helm upgrade reports success, but values you passed on this run (or new defaults shipped by the chart) are not present in the rendered manifests. The release keeps the old values from when --reuse-values first captured them.

helm output
$ helm upgrade api ./chart --reuse-values --set image.tag=v2
# release succeeds but image.tag is still v1 (the previously stored value wins)

Common causes

--reuse-values ignores new overrides and defaults

--reuse-values takes the previous release’s computed values as the base and does not merge in new chart defaults; passed --set/-f may be overridden by the reused set, so changes silently do nothing.

Carried over after a chart version bump

After bumping the chart version, --reuse-values keeps the old values and drops any new default keys the new chart introduced, leaving the release misconfigured.

How to fix it

Use --reset-then-reuse-values (or pass full values)

Reset to the new chart defaults, then layer the previous user-supplied values and your new overrides on top.

Terminal
helm upgrade api ./chart \
  --reset-then-reuse-values \
  --set image.tag=v2

Prefer declarative values in CI

  1. Render the full values from a checked-in values.yaml each run instead of reusing release state.
  2. Pass -f values.yaml so the desired state is explicit and reproducible.
  3. Inspect what was applied with helm get values api.

How to prevent it

  • Drive upgrades from a complete -f values.yaml, not --reuse-values.
  • When you must reuse, use --reset-then-reuse-values so new defaults apply.
  • Verify applied values with helm get values after upgrades.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →