From dbdf006fb5f2f07c70afb8fed3a1f579af1e87be Mon Sep 17 00:00:00 2001 From: Sekfung Lau Date: Tue, 21 Feb 2023 14:42:28 +0800 Subject: [PATCH] fix: can not re-upgrade helm application in a failed state (#5543) --- .../openpitrix/helmrelease/helm_release_controller.go | 9 ++++++++- pkg/models/openpitrix/release.go | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pkg/controller/openpitrix/helmrelease/helm_release_controller.go b/pkg/controller/openpitrix/helmrelease/helm_release_controller.go index 45838a5cf..fee9b9609 100644 --- a/pkg/controller/openpitrix/helmrelease/helm_release_controller.go +++ b/pkg/controller/openpitrix/helmrelease/helm_release_controller.go @@ -179,9 +179,16 @@ func (r *ReconcileHelmRelease) reconcile(instance *v1alpha1.HelmRelease) (reconc var err error switch instance.Status.State { - case v1alpha1.HelmStatusDeleting, v1alpha1.HelmStatusFailed: + case v1alpha1.HelmStatusDeleting: // no operation return reconcile.Result{}, nil + case v1alpha1.HelmStatusFailed: + // Release used to be failed, but instance.Status.Version not equal to instance.Spec.Version + if instance.Status.Version != instance.Spec.Version { + return r.createOrUpgradeHelmRelease(instance, true) + } else { + return reconcile.Result{}, nil + } case v1alpha1.HelmStatusActive: // Release used to be active, but instance.Status.Version not equal to instance.Spec.Version if instance.Status.Version != instance.Spec.Version { diff --git a/pkg/models/openpitrix/release.go b/pkg/models/openpitrix/release.go index d3042104b..7ee38d3e2 100644 --- a/pkg/models/openpitrix/release.go +++ b/pkg/models/openpitrix/release.go @@ -102,7 +102,7 @@ func (c *releaseOperator) UpgradeApplication(request UpgradeClusterRequest) erro } switch oldRls.Status.State { - case v1alpha1.StateActive, v1alpha1.HelmStatusUpgraded, v1alpha1.HelmStatusCreated: + case v1alpha1.StateActive, v1alpha1.HelmStatusUpgraded, v1alpha1.HelmStatusCreated, v1alpha1.HelmStatusFailed: // no operation default: return errors.New("can not upgrade application now")