51

I am looking for a way to rollback a helm release to its previous release without specifying the target release version as a number.

Something like helm rollback <RELEASE> ~1 (like git reset HEAD~1) would be nice.

Yaniv Oliver
  • 3,372
  • 1
  • 19
  • 20
onkeliroh
  • 1,530
  • 1
  • 14
  • 25

6 Answers6

60

As it turns out, there is an undocumented option to rollback to the previous release by defining the target release version as 0. like: helm rollback <RELEASE> 0

Source: https://github.com/helm/helm/issues/1796

tobias.mcnulty
  • 1,621
  • 14
  • 15
onkeliroh
  • 1,530
  • 1
  • 14
  • 25
  • 2
    this command seems to rollback to previous revision regardless of it being successful or not. – Andy Aldo Jun 25 '19 at 00:37
  • The official doc says: The first argument of the rollback command is the name of a release, and the second is a revision (version) number. If this argument is omitted, it will roll back to the previous release. The 0 is no long required. https://helm.sh/docs/helm/helm_rollback/ – Douglas Alves Aug 28 '23 at 18:19
33

Unlike the previous old answers above.

According to the latest documentation, you can rollback to the previous version by simply omitting the argument in helm rollback. Which means your command should like below to rollback to the previous version.

helm rollback <RELEASE_NAME>

But if you need to rollback to specific previous version, You can:

First: List revision numbers by running helm history <RELEASE_NAME>

Second: Roll back to the version you want using helm rollback <RELEASE> [REVISION]

0xMH
  • 1,825
  • 20
  • 26
Suhas Chikkanna
  • 1,292
  • 5
  • 20
  • 34
18

If you just want to rollback to the previous release, you can do

helm rollback <RELEASE> 0
MtTracer
  • 226
  • 1
  • 4
12

Using Helm

helm rollback release-name 0

Using kubectl

What does rollout/rollback in kubectl means? Rolling updates allow the following actions:

  1. Promote an application from one environment to another (via container image updates).
  2. Rollback to previous versions.
  3. Continuous Integration and Continuous Delivery of applications with zero downtime.

kubectl rollout undo deployment/deployment-name

or

kubectl rollout undo deployment/deployment-name --to-revision=0

redzack
  • 1,521
  • 8
  • 20
  • 1
    Please note that `kubectl` this way will rollback only the deployment, but not other resources associated with helm release. – Aleksandr Erokhin May 28 '20 at 14:43
  • 1
    @aleksandr erokhin yes that's absolutely true, because kubectl maintains only the Deployment object and helm maintains the release which contains all the manifest/objects altogether. I have updated the answer however the above was just a way to provide how does it work in kubectl. – redzack May 28 '20 at 15:14
7

Below are the steps you can rollback Using Helm:

  1. Check the name of a release and (version) number using $ helm ls
  2. The first argument of the rollback command is the name of a release, and the second is a revision (version) number.
$ helm rollback RELEASE [REVISION]
seshadri_c
  • 6,906
  • 2
  • 10
  • 24
Vivek
  • 71
  • 1
  • 2
0

You can simply do -

helm rollback <release-name> <release version> -n <namespace>

In helm3 namespace is required, whereas in lower version, you can do below -

helm rollback <release-name> <release version>
Sapna
  • 635
  • 9
  • 18