Helm history dan helm rollback adalah perintah yang digunakan untuk mengelola aplikasi berbasis Kubernetes. Setiap kali dilakukan perubahan, helm akan mengingat perubahan yang telah dilakukan dan apa saja yang dirubah, jadi helm mencatat seluruh sejarah dari sebuah rilis chart helm di suatu kluster kubernetes.
Berikut adalah contoh penggunaan chart helm:
$ helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
testchart default 3 2024-09-06 13:49:45.940358355 +0000 UTC deployed mychart-1.2 2.4.62
Dari perintah helm list di atas dapat diihat bahwa ada 1 chart rilis dengan nama testhart. Sebagai catatan perintah tanpa argumen -n menyatakan bahwa namespace di atas adalah default.
Dan untuk melihat history dari deploymen dari rilis testchart perintah helm history ini dapat dilakukan.
$ helm history
REVISION UPDATED STATUS CHART DESCRIPTION
1 Sat Sep 7 13:48:42 2024 superseded apache-11.2.17 2.4.62 Install complete
2 Sat Sep 7 13:49:41 2024 superseded apache-11.2.17 2.4.62 Upgrade complete
3 Sat Sep 7 13:49:45 2024 superseded apache-11.2.17 2.4.62 Upgrade complete
Dari hasil perintah di atas dapat dilihat ada 3 revisi dari chart helm chartsaya ini. Jika ada yang bertanya untuk use case semacam apa penggunaan perintah helm rollback digunakan, contoh di bawah bisa memberikan salah satu alasan.
Perintah kubectl get pods adalah untuk melihat status dari pods yang telah di-deploy:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
webserver-apache-566d5fdbc8-bmtgm 1/1 Running 0 3m57s
webserver-apache-5dfc9d8dd6-kbpg6 0/1 Init:ImagePullBackOff 0 2m56s
Status dari pods webserver-apache-5dfc9d8dd6-kbpg6 adalah Init:ImagePullBackOff yang menandakan ada yang salah dari proses deployment yang baru saja dilakukan.Jika perintah helm history dilakukan, akan terlihat bahwa revisi ke 3 dengan status Init:ImagePullBackOff. Jika kita mengetahui bahwa revisi ke 2 adalah deployment yang berhasil dengan status running, dapat dilakukan perintah helm rollback ke revisi ke dengan melakukan perintah ini:
$ helm rollback webserver 2
Rollback was a success! Happy Helming!
Seperti dituliskan di atas perintah rollback bershasil untuk kembali ke revisi 2. Dan untuk memeriksa kebenaran akan hal itu perintah helm history dapat dilakukan kembali seperti terlihat di bawah ini.
$ helm history webserver
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
1 Sat Sep 7 13:48:42 2024 superseded apache-11.2.17 2.4.62 Install complete
2 Sat Sep 7 13:49:41 2024 superseded apache-11.2.17 2.4.62 Upgrade complete
3 Sat Sep 7 13:49:45 2024 superseded apache-11.2.17 2.4.62 Upgrade complete
4 Sat Sep 7 13:54:32 2024 deployed apache-11.2.17 2.4.62 Rollback to 2
Dapat terlihat bahwa revisi terakhir adalah revisi ke 4 yang merupakan rollback ke revisi 2.