Helm: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress

Автор |  24/05/2024
 

Іноді під час деплою 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 – і все працює.