Іноді під час деплою Helm-чартів може з’являтись помилка “UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress“:
Виникати може через те, що попередній деплой не відбувся через помилки в чарті, або втрачений зв’язок між білд-машиною та Kubernets-кластером.
Перевіряємо статус релізу з ls --all
:
$ helm -n dev-backend-api-ns ls --all NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION dev-backend-api dev-backend-api-ns 590 2024-05-23 09:11:51.332096671 +0000 UTC pending-upgrade kraken-0.1.0 1.16.0
І бачимо, що дійсно – маємо “pending-upgrade” замість “deployed“.
Також можна глянути з helm history
– що там відбувалося до цього і який статус зараз:
І знов бачимо той самий статус “Preparing upgrade” замість “Upgrade complete“.
Окей, давайте фіксити.
Перший варіант – the hard way – просто видалити реліз з helm uninstall
, і передеплоїти з helm upgrade --install
, але це призведе до видалення всіх ресурсів, які були створені цим чартом.
Інший варіант – зробити helm rollback
до попереднього стабільного деплою.
В цьому кейсі це був 587 – Upgrade complete.
Виконуємо:
$ helm -n dev-backend-api-ns rollback dev-backend-api 587 Rollback was a success! Happy Helming!
Перевіряємо статус тепер:
$ helm -n dev-backend-api-ns ls --all NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION dev-backend-api dev-backend-api-ns 591 2024-05-23 13:01:36.905101349 +0300 EEST deployed kraken-0.1.0 1.16.0
Або:
$ helm -n dev-backend-api-ns status dev-backend-api NAME: dev-backend-api LAST DEPLOYED: Thu May 23 13:01:36 2024 NAMESPACE: dev-backend-api-ns STATUS: deployed REVISION: 591 TEST SUITE: None
Перезапускаємо джобу в GitHub Actions – і все працює.