Ошибка Helm: UPGRADE FAILED - Another Operation in Progress

При работе с Helm в Kubernetes можно встретить ошибку:

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

Это значит, что уже выполняется какая-то операция с релизом, а вы пытаетесь запустить новую.

В этих состояниях нельзя запустить новую команду helm upgrade или helm rollback.

Основные состояния Pending

Релиз Helm может «зависнуть» в следующих состояниях:

  • pending-install — установка началась, но не завершилась.
  • pending-upgrade — обновление запустилось, но не закончилось.
  • pending-rollback — откат завис на полпути.

These states prevent you from running another helm upgrade or helm rollback.

Почему так происходит?

  • Прерванная команда Helm (например, Ctrl+C).
  • Таймауты из-за перегрузки кластера.
  • Ошибка в hook или job перед установкой/обновлением.
  • Две команды обновления запущены одновременно (например, CI/CD + вручную).

Как исправить

Проверьте статус релиза:

helm status my-release -n my-namespace

Найдите секрет, который хранит последню ревизию:

kubectl get secrets -n my-namespace | grep my-release

После этого можно его удалить:

kubectl delete secret sh.helm.release.v1.my-release.vX -n my-namespace

Повторить установку/обновление:

helm upgrade --install my-release ./chart -n my-namespac

Лучшие практики

  • Используйте блокировки в CI/CD, чтобы не запускать несколько апдейтов одновременно.
  • Не прерывайте helm upgrade руками.
  • Контролируйте работу hooks и jobs.
  • Настраивайте адекватный –timeout для долгих операций.

Вывод

Теперь вы знаете, что значит ошибка UPGRADE FAILED: another operation in progress и как восстановить релиз, если он завис.