diff --git a/pkg/controller/workspacetemplate/workspacetemplate_controller.go b/pkg/controller/workspacetemplate/workspacetemplate_controller.go index 4d143f0bd..3b1f94d6f 100644 --- a/pkg/controller/workspacetemplate/workspacetemplate_controller.go +++ b/pkg/controller/workspacetemplate/workspacetemplate_controller.go @@ -477,8 +477,19 @@ func (r *Reconciler) deleteHelmRepos(ctx context.Context, ws string) error { // deleteNamespacesInWorkspace Deletes the namespace associated with the workspace, which match the workspace label selector func (r *Reconciler) deleteNamespacesInWorkspace(ctx context.Context, template *tenantv1alpha2.WorkspaceTemplate) error { - namespace := &corev1.Namespace{} - return r.DeleteAllOf(ctx, namespace, client.MatchingLabels{tenantv1alpha1.WorkspaceLabel: template.Name}) + namespaceList := &corev1.NamespaceList{} + err := r.Client.List(ctx, namespaceList, client.MatchingLabels{tenantv1alpha1.WorkspaceLabel: template.Name}) + if err != nil { + return err + } + + for _, namespace := range namespaceList.Items { + err = r.Client.Delete(ctx, &namespace) + if err != nil { + return err + } + } + return nil } func workspaceRoleBindingChanger(workspaceRoleBinding *iamv1alpha2.WorkspaceRoleBinding, workspace, username, workspaceRoleName string) controllerutil.MutateFn { diff --git a/staging/src/kubesphere.io/api/types/v1beta1/register.go b/staging/src/kubesphere.io/api/types/v1beta1/register.go index 4096112a1..ec5e8566f 100644 --- a/staging/src/kubesphere.io/api/types/v1beta1/register.go +++ b/staging/src/kubesphere.io/api/types/v1beta1/register.go @@ -79,6 +79,8 @@ func init() { &FederatedUserList{}, &FederatedGroup{}, &FederatedGroupList{}, + &FederatedGroupBinding{}, + &FederatedGroupBindingList{}, &FederatedWorkspace{}, &FederatedWorkspaceList{}, &FederatedWorkspaceRole{},