diff --git a/controller/appcontroller.go b/controller/appcontroller.go index 3e56010358..3277d9e7b2 100644 --- a/controller/appcontroller.go +++ b/controller/appcontroller.go @@ -1206,7 +1206,7 @@ func (ctrl *ApplicationController) finalizeApplicationDeletion(app *appv1.Applic if err != nil { logCtx.Warnf("Unable to get destination cluster: %v", err) app.UnSetCascadedDeletion() - app.UnSetPostDeleteFinalizer() + app.UnSetPostDeleteFinalizerAll() if err := ctrl.updateFinalizers(app); err != nil { return err } diff --git a/pkg/apis/application/v1alpha1/types.go b/pkg/apis/application/v1alpha1/types.go index 293d7965ab..39cccf322f 100644 --- a/pkg/apis/application/v1alpha1/types.go +++ b/pkg/apis/application/v1alpha1/types.go @@ -3316,6 +3316,14 @@ func (app *Application) SetPostDeleteFinalizer(stage ...string) { setFinalizer(&app.ObjectMeta, strings.Join(append([]string{PostDeleteFinalizerName}, stage...), "/"), true) } +func (app *Application) UnSetPostDeleteFinalizerAll() { + for _, finalizer := range app.Finalizers { + if strings.HasPrefix(finalizer, PostDeleteFinalizerName) { + setFinalizer(&app.ObjectMeta, finalizer, false) + } + } +} + func (app *Application) UnSetPostDeleteFinalizer(stage ...string) { setFinalizer(&app.ObjectMeta, strings.Join(append([]string{PostDeleteFinalizerName}, stage...), "/"), false) }