When a cluster is detached from Kommander, there are objects that need to be cleaned up to restore the cluster to how it was before it was attached. This guide assumes that the recently detached cluster was clean originally. If it was already in use, you will need to check the requirements of running applications do not conflict with the below commands.
Firstly, delete all workspaces you have created:
k delete workspace xxxx
Now, delete the namespaces:
k delete namespace kommander-default-workspace
k delete namespace kommander-flux
Note: If the delete of the kommander-flux namespace "hangs", check the state from another terminal and you will see it is stuck waiting for a finalizer and may be tripping over this issue on Github.
k describe namespace kommander-flux
Name: kommander-flux
Labels: kubernetes.io/metadata.name=kommander-flux
Annotations: <none>
Status: Terminating
Conditions:
Type Status LastTransitionTime Reason Message
---- ------ ------------------ ------ -------
NamespaceDeletionDiscoveryFailure False Fri, 08 Apr 2022 10:26:10 +0000 ResourcesDiscovered All resources successfully discovered
NamespaceDeletionGroupVersionParsingFailure False Fri, 08 Apr 2022 10:26:10 +0000 ParsedGroupVersions All legacy kube types successfully parsed
NamespaceDeletionContentFailure False Fri, 08 Apr 2022 10:26:10 +0000 ContentDeleted All content successfully deleted, may be waiting on finalization
NamespaceContentRemaining True Fri, 08 Apr 2022 10:26:10 +0000 SomeResourcesRemain Some resources are remaining: gitrepositories.source.toolkit.fluxcd.io has 1 resource instances
NamespaceFinalizersRemaining True Fri, 08 Apr 2022 10:26:10 +0000 SomeFinalizersRemain Some content in the namespace has finalizers remaining: finalizers.fluxcd.io in 1 resource instances
No resource quota.
No LimitRange resource.
So, we need to manually remove the finalizer requirement from the object gitrepositories.source.toolkit.fluxcd.io:
k patch customresourcedefinition.apiextensions.k8s.io/gitrepositories.source.toolkit.fluxcd.io -p '{"metadata":{"finalizers":[]}}' --type=merge
After a few seconds, you should see the delete in your first terminal succeed and return you to your prompt.
With the namespaces now removed, we then need to remove the leftover non-namespace objects:
k delete customresourcedefinition.apiextensions.k8s.io/alerts.notification.toolkit.fluxcd.io
k delete customresourcedefinition.apiextensions.k8s.io/buckets.source.toolkit.fluxcd.io
k delete customresourcedefinition.apiextensions.k8s.io/gitrepositories.source.toolkit.fluxcd.io
k delete customresourcedefinition.apiextensions.k8s.io/helmcharts.source.toolkit.fluxcd.io
k delete customresourcedefinition.apiextensions.k8s.io/helmreleases.helm.toolkit.fluxcd.io
k delete customresourcedefinition.apiextensions.k8s.io/helmrepositories.source.toolkit.fluxcd.io
k delete customresourcedefinition.apiextensions.k8s.io/kustomizations.kustomize.toolkit.fluxcd.io
k delete customresourcedefinition.apiextensions.k8s.io/providers.notification.toolkit.fluxcd.io
k delete customresourcedefinition.apiextensions.k8s.io/receivers.notification.toolkit.fluxcd.iok delete apiservice.apiregistration.k8s.io/v1beta1.kustomize.toolkit.fluxcd.io
k delete apiservice.apiregistration.k8s.io/v1beta1.notification.toolkit.fluxcd.io
k delete apiservice.apiregistration.k8s.io/v1beta1.kustomize.toolkit.fluxcd.io
k delete apiservice.apiregistration.k8s.io/v1beta1.notification.toolkit.fluxcd.io
k delete apiservice.apiregistration.k8s.io/v1beta1.source.toolkit.fluxcd.io
k delete apiservice.apiregistration.k8s.io/v1beta2.kustomize.toolkit.fluxcd.io
k delete apiservice.apiregistration.k8s.io/v2beta1.helm.toolkit.fluxcd.iok delete clusterrolebinding.rbac.authorization.k8s.io/cluster-reconciler-kommander-flux
k delete clusterrolebinding.rbac.authorization.k8s.io/crd-controller-kommander-flux
k delete clusterrolebinding.rbac.authorization.k8s.io/dkp-credentials-user-kommander
k delete ClusterRole/crd-controller-kommander-fluxk delete clusterrole.rbac.authorization.k8s.io/crd-controller-kommander-flux
k delete clusterrole.rbac.authorization.k8s.io/kommander-cluster-federated-admin
k delete clusterrole.rbac.authorization.k8s.io/kommander-federated-admin
k delete clusterrole.rbac.authorization.k8s.io/kommander-federated-edit
k delete clusterrole.rbac.authorization.k8s.io/kommander-federated-view
Now your cluster should be cleaned up from any objects created by attaching it to Kommander.