Предупреждение unable to proceed with release
возникает после GetUpgradableRelease
// GetUpgradableRelease returns a release if the current state of it
// allows an upgrade, a descriptive error if it is not allowed, or
// nil if the release does not exist.
Возвращает ошибку release requires a rollback before it can be upgraded
, если выпуск имеет состояние Status_FAILED
(см. release.go # 89 )
UNHEALTHY
состояние блокирует выпуск
Как отметили flux
разработчики , упомянутые в # 2265 , невозможно перейти к состоянию UNHEALTHY
.
Это не ошибка, но я вижу, где вы ожидаетеИсходя из.
Flux будет только продвигать исправные выпуски вперед, одна из причин этого состоит в том, чтобы гарантировать, что мы не попадем в цикл сбоя, поэтому флаг --force
не предназначен дляпринудительное обновление нездорового ресурса (для этого следует использовать функцию отката ), но он был разработан для того, чтобы можно было обновлять диаграммы, например, с помощью обратно несовместимых изменений (например, изменений в неизменяемых полях, для которых требуется ресурс)для удаления сначала см. # 1760 ).
Вывод: forceUpgrade
имеет значение, но не может быть использовано для принудительного обновления версии в состоянии UNHEALTHY
.
Как рекомендует автор, вам следует использовать rollback
функцию
Со временик тому времени, когда выпуск, сделанный оператором Helm, может завершиться с ошибкой, можно автоматизировать откат отказавшего выпуска, установив для .spec.rollback.enable
значение true на ресурсе HelmRelease.
Note: a successful rollback of a Helm chart containing a StatefulSet resource is known to be tricky, and one of the main reasons automated rollbacks are not enabled by default for all HelmReleases. Verify a manual rollback of your Helm chart does not cause any problems before enabling it.
Если включено, оператор Helmобнаружит неисправное обновление и выполнит откат, оно не будет пытаться выполнить новое обновление, пока не обнаружит изменение значений и / или диаграммы.
apiVersion: flux.weave.works/v1beta1
kind: HelmRelease
# metadata: ...
spec:
# Listed values are the defaults.
rollback:
# If set, will perform rollbacks for this release.
enable: false
# If set, will force resource update through delete/recreate if
# needed.
force: false
# Prevent hooks from running during rollback.
disableHooks: false
# Time in seconds to wait for any individual Kubernetes operation.
timeout: 300
# If set, will wait until all Pods, PVCs, Services, and minimum
# number of Pods of a Deployment are in a ready state before
# marking the release as successful. It will wait for as long
# as the set timeout.
wait: false