diff --git a/pkg/controller/application/appversion_contrlller.go b/pkg/controller/application/appversion_contrlller.go index f7bf7641a..e29d83d3f 100644 --- a/pkg/controller/application/appversion_contrlller.go +++ b/pkg/controller/application/appversion_contrlller.go @@ -66,6 +66,11 @@ func (r *AppVersionReconciler) Reconcile(ctx context.Context, req ctrl.Request) if err := r.Client.Get(ctx, req.NamespacedName, appVersion); err != nil { return reconcile.Result{}, client.IgnoreNotFound(err) } + if !controllerutil.ContainsFinalizer(appVersion, appv2.CleanupFinalizer) { + controllerutil.RemoveFinalizer(appVersion, appv2.StoreCleanFinalizer) + controllerutil.AddFinalizer(appVersion, appv2.CleanupFinalizer) + return ctrl.Result{}, r.Update(ctx, appVersion) + } //Delete app files, non-important logic, errors will not affect the main process if !appVersion.ObjectMeta.DeletionTimestamp.IsZero() { @@ -80,7 +85,7 @@ func (r *AppVersionReconciler) Reconcile(ctx context.Context, req ctrl.Request) func (r *AppVersionReconciler) deleteFile(ctx context.Context, appVersion *appv2.ApplicationVersion) error { defer func() { - controllerutil.RemoveFinalizer(appVersion, appv2.StoreCleanFinalizer) + controllerutil.RemoveFinalizer(appVersion, appv2.CleanupFinalizer) err := r.Update(ctx, appVersion) if err != nil { klog.Errorf("Failed to remove finalizer from appversion %s: %v", appVersion.Name, err) diff --git a/pkg/simple/client/application/helper.go b/pkg/simple/client/application/helper.go index 0622864bc..7cf45d512 100644 --- a/pkg/simple/client/application/helper.go +++ b/pkg/simple/client/application/helper.go @@ -219,7 +219,7 @@ func CreateOrUpdateAppVersion(ctx context.Context, client runtimeclient.Client, Maintainer: vRequest.Maintainers, PullUrl: vRequest.PullUrl, } - appVersion.Finalizers = []string{appv2.StoreCleanFinalizer} + appVersion.Finalizers = []string{appv2.CleanupFinalizer} labels := appVersion.GetLabels() if labels == nil { diff --git a/staging/src/kubesphere.io/api/application/v2/constants.go b/staging/src/kubesphere.io/api/application/v2/constants.go index 4099e27d6..adaa24749 100644 --- a/staging/src/kubesphere.io/api/application/v2/constants.go +++ b/staging/src/kubesphere.io/api/application/v2/constants.go @@ -38,6 +38,7 @@ const ( MaxImageWidth = 128 ApplicationNamespace = "extension-openpitrix" StoreCleanFinalizer = "storeCleanFinalizer.application.kubesphere.io" + CleanupFinalizer = "application.kubesphere.io/cleanup" SystemWorkspace = "system-workspace" // App review status: draft, submitted, passed, rejected, suspended, active ReviewStatusDraft = "draft"