Helm Upgrades

Upgrading and Rolling Back a Helm Release

helm 29,435 upgrade renders the chart with the new values, applies the difference and records a revision. With no values at all, Helm 3 reuses the previous ones; pass a single value and every earlier override is dropped:

Two upgrades, then a rollback to the first revisionYAML
img() { kubectl get deploy booknest-api -n booknest-helm -o jsonpath='{.spec..image}{"\n"}'; }
up() { helm upgrade booknest helm/booknest -n booknest-helm --wait "$@" >/dev/null; img; }
up
up --set web.replicas=1
helm rollback booknest 1 -n booknest-helm --wait
helm history booknest -n booknest-helm | tr '\t' ' '
img
Output
localhost:33500/booknest-api:1.3 localhost:33500/booknest-api:1.3
localhost:33500/booknest-api:1.4 localhost:33500/booknest-api:1.4
Rollback was a success! Happy Helming!
REVISION UPDATED                  STATUS     CHART          APP VERSION DESCRIPTION
1        Sat Sep 26 02:14:02 2026 superseded booknest-0.1.0 1.4.0       Install complete
2        Sat Sep 26 02:14:26 2026 superseded booknest-0.1.0 1.4.0       Upgrade complete
3        Sat Sep 26 02:14:31 2026 superseded booknest-0.1.0 1.4.0       Upgrade complete
4        Sat Sep 26 02:14:42 2026 deployed   booknest-0.1.0 1.4.0       Rollback to 1
localhost:33500/booknest-api:1.3 localhost:33500/booknest-api:1.3

The second upgrade meant to shrink the front end and also moved the API to 1.4, the chart default, because its one --set replaced the stored api.image.tag=1.3. Pass all your values files on every upgrade, or use --reset-then-reuse-values deliberately. A rollback is a new revision copying an old one, so history only grows (--history-max, default 10); it restores objects, not data, since migrations do not run backward. For unattended upgrades, --atomic (--rollback-on-failure in Helm 4) rolls back when an upgrade fails to become ready in time.