Upgrading a Release

helm upgrade applies a new chart version or new values to an existing release, creating a new revision.

Syntaxhelm upgrade <release> <chart> [flags]

When you change values or move to a newer chart version, you do not reinstall — you upgrade. Each upgrade bumps the release's revision number by one.

The command

helm upgrade <release> <chart> [flags]

It accepts the same value flags as helm install (-f, --set).

Handy options

  • --install (or helm upgrade --install) — install if the release does not exist yet, otherwise upgrade. Great for CI.
  • --atomic — automatically roll back if the upgrade fails.
  • --reuse-values — keep the previous values and only change what you pass.

Example

Example · bash
# Scale to 3 replicas on an existing release
helm upgrade my-web bitnami/nginx --set replicaCount=3

# Idempotent install-or-upgrade with auto-rollback on failure
helm upgrade --install my-web bitnami/nginx \
  -f production-values.yaml \
  --atomic

When to use it

  • A developer upgrades a Grafana release to a newer chart version after verifying the change in staging, creating a new revision without reinstalling.
  • An operator changes the replica count of a running release by passing --set replicaCount=5 on the upgrade command without modifying the chart.
  • A CI pipeline bumps the image tag value on every merge to main, triggering a helm upgrade that rolls the cluster to the new container image.

More examples

Upgrade to new chart version

Upgrades the my-grafana release to chart version 7.3.0, creating a new revision while keeping the release name and namespace.

Example · bash
helm upgrade my-grafana grafana/grafana \
  --version 7.3.0 \
  -n monitoring

Upgrade with new values

Applies updated values and a new image tag to the release, merging the values file with the inline --set override.

Example · bash
helm upgrade my-app ./my-chart \
  -f values-prod.yaml \
  --set image.tag=abc1234 \
  -n production

Safe upgrade with wait

Waits for all Pods to become ready after upgrade; --atomic automatically rolls back to the previous revision if the timeout expires.

Example · bash
helm upgrade my-app ./my-chart \
  -f values-prod.yaml \
  --wait --timeout 10m \
  --atomic \
  -n production

Discussion

  • Be the first to comment on this lesson.