Upgrading a Release
helm upgrade applies a new chart version or new values to an existing release, creating a new revision.
Syntax
helm 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(orhelm 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
# 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 \
--atomicWhen 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.
helm upgrade my-grafana grafana/grafana \
--version 7.3.0 \
-n monitoringUpgrade with new values
Applies updated values and a new image tag to the release, merging the values file with the inline --set override.
helm upgrade my-app ./my-chart \
-f values-prod.yaml \
--set image.tag=abc1234 \
-n productionSafe upgrade with wait
Waits for all Pods to become ready after upgrade; --atomic automatically rolls back to the previous revision if the timeout expires.
helm upgrade my-app ./my-chart \
-f values-prod.yaml \
--wait --timeout 10m \
--atomic \
-n production
Discussion