Safeguard
Developer Tools•

How should customers run helm upgrade so a failure rolls back?

Helm upgrade can roll back on failure and wait for resources to be ready. The flags, defaults and what to put in a vendor upgrade guide for safe patching.

Safeguard Security Team
3 min read

Tell customers to use the wait behavior with a sensible timeout and to turn on rollback on failure, so a bad upgrade returns to the last good release instead of hanging half applied. The Helm upgrade reference documents both, along with the default timeout of five minutes.

Definitions

Helm tracks each install or upgrade as a revision of a release. An upgrade applies a new chart version or new values. If it fails midway, the release can be left in a failed state unless you ask Helm to roll back.

The flags from the Helm reference

FlagWhat the reference saysDefault
waitWait until resources are ready, up to the timeout. Bare use selects the watcher strategyhookOnly when omitted
timeoutTime to wait for any individual Kubernetes operation, such as Jobs for hooks5m0s
rollback-on-failureIf set, Helm rolls the upgrade back to the previous successful release on failure. Setting it makes wait default to watcherNot set
history-maxMaximum revisions saved per release, 0 for no limit10
reuse-valuesReuse the last release values and merge overridesNot set
reset-valuesReset values to those built into the chartNot set

The reference I read documents rollback-on-failure and does not list an atomic flag. Older guides use atomic, so test the exact Helm version you support and write your guide to match.

What to put in your upgrade guide

  1. A tested command line for the supported Helm version, with wait, a timeout sized to your slowest pod start, and rollback on failure.
  2. A note on database migrations: a chart rollback does not reverse a schema change. Say what is safe to roll back and for how long. See expand and contract migrations.
  3. A statement on values: whether customers should reuse the last values or reset to chart defaults when a chart adds new required values.
  4. How to check the result: the history command, then your health endpoint.
  5. How to open a support case with the release revision number.

Values: a frequent trap

Reuse values keeps the previous release's values and merges your overrides. Reset values returns to the chart defaults. After a security release that changes a default, reusing old values can keep an unsafe setting alive. State in your release note which one customers should use, and whether any value changed.

Timeout sizing

A timeout shorter than your slowest start will trigger a rollback of a healthy upgrade. Measure on a realistic dataset, then add margin.

If you want a second look at what you ship, Safeguard can generate and scan an SBOM and run dependency scanning with reachability analysis, and you can try the free scan.

Quick check

Does rollback on failure undo database changes?

No. It returns the Kubernetes resources to the previous release. Schema changes need their own plan.

Should customers reuse values or reset them?

Say so in each release note. If a security release changes a default, reusing old values can keep the old setting.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.