diff --git a/pkg/controller/namespace/namespace_controller.go b/pkg/controller/namespace/namespace_controller.go index 0ca9ad7be..af2a2c331 100644 --- a/pkg/controller/namespace/namespace_controller.go +++ b/pkg/controller/namespace/namespace_controller.go @@ -192,11 +192,12 @@ func (r *Reconciler) bindWorkspace(ctx context.Context, logger logr.Logger, name } func (r *Reconciler) unbindWorkspace(ctx context.Context, logger logr.Logger, namespace *corev1.Namespace) error { - if k8sutil.IsControlledBy(namespace.OwnerReferences, tenantv1alpha1.ResourceKindWorkspace, "") || len(namespace.Labels) > 0 { + _, hasWorkspaceLabel := namespace.Labels[tenantv1alpha1.WorkspaceLabel] + if hasWorkspaceLabel || k8sutil.IsControlledBy(namespace.OwnerReferences, tenantv1alpha1.ResourceKindWorkspace, "") { ns := namespace.DeepCopy() wsName := k8sutil.GetWorkspaceOwnerName(ns.OwnerReferences) - if _, ok := namespace.Labels[tenantv1alpha1.WorkspaceLabel]; ok { + if hasWorkspaceLabel { wsName = namespace.Labels[tenantv1alpha1.WorkspaceLabel] } diff --git a/pkg/controller/workspacetemplate/workspacetemplate_controller.go b/pkg/controller/workspacetemplate/workspacetemplate_controller.go index 5135b8fcb..a4a6a9879 100644 --- a/pkg/controller/workspacetemplate/workspacetemplate_controller.go +++ b/pkg/controller/workspacetemplate/workspacetemplate_controller.go @@ -125,10 +125,7 @@ func (r *Reconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) { // remove our finalizer from the list and update it. workspaceTemplate.ObjectMeta.Finalizers = sliceutil.RemoveString(workspaceTemplate.ObjectMeta.Finalizers, func(item string) bool { - return item == workspaceTemplateFinalizer - }) - workspaceTemplate.ObjectMeta.Finalizers = sliceutil.RemoveString(workspaceTemplate.ObjectMeta.Finalizers, func(item string) bool { - return item == orphanFinalizer + return item == workspaceTemplateFinalizer || item == orphanFinalizer }) logger.V(4).Info("update workspace template")