Scenario
Namespace won't terminate
$ kubectl describe ns flux-system Name: flux-system Labels: app.kubernetes.io/instance=flux-system app.kubernetes.io/part-of=flux app.kubernetes.io/version=v0.28.2 kubernetes.io/metadata.name=flux-system kustomize.toolkit.fluxcd.io/name=flux-system kustomize.toolkit.fluxcd.io/namespace=flux-system pod-security.kubernetes.io/warn=restricted pod-security.kubernetes.io/warn-version=latest Annotations: <none> Status: Terminating Conditions: Type Status LastTransitionTime Reason Message ---- ------ ------------------ ------ ------- NamespaceDeletionDiscoveryFailure False Mon, 30 Jan 2023 08:39:28 -0500 ResourcesDiscovered All resources successfully discovered NamespaceDeletionGroupVersionParsingFailure False Fri, 27 Jan 2023 16:36:06 -0500 ParsedGroupVersions All legacy kube types successfully parsed NamespaceDeletionContentFailure False Fri, 27 Jan 2023 16:36:06 -0500 ContentDeleted All content successfully deleted, may be waiting on finalization NamespaceContentRemaining True Fri, 27 Jan 2023 16:36:06 -0500 SomeResourcesRemain Some resources are remaining: gitrepositories.source.toolkit.fluxcd.io has 1 resource instances, helmcharts.source.toolkit.fluxcd.io has 3 resource instances NamespaceFinalizersRemaining True Fri, 27 Jan 2023 16:36:06 -0500 SomeFinalizersRemain Some content in the namespace has finalizers remaining: finalizers.fluxcd.io in 4 resource instances No resource quota. No LimitRange resource.
Find the CRDS
$ kubectl get crds NAME CREATED AT gitrepositories.source.toolkit.fluxcd.io 2022-09-01T22:08:23Z helmcharts.source.toolkit.fluxcd.io 2022-09-01T22:08:22Z volumesnapshotclasses.snapshot.storage.k8s.io 2022-09-01T21:38:23Z volumesnapshotcontents.snapshot.storage.k8s.io 2022-09-01T21:38:23Z volumesnapshots.snapshot.storage.k8s.io 2022-09-01T21:38:23Z
Get the instances of helm charts
$ kubectl -n flux-system get helmcharts NAME CHART VERSION SOURCE KIND SOURCE NAME AGE READY STATUS flux-system-apiserver-subscription apiserver-subscription 22.0.1-2506283 HelmRepository ncydacrcandidates 103d False failed to get source: HelmRepository.source.toolkit.fluxcd.io "ncydacrcandidates" not found flux-system-config-provider config-provider 22.0.1-2506283 HelmRepository ncydacrcandidates 150d False failed to get source: HelmRepository.source.toolkit.fluxcd.io "ncydacrcandidates" not found flux-system-dashboard-5g-security dashboard-5g-security 22.0.1-2506283 HelmRepository ncydacrcandidates 150d False failed to get source: HelmRepository.source.toolkit.fluxcd.io "ncydacrcandidates" not found
Get the instances of gitrepositories
$ kubectl -n flux-system get gitrepositories NAME URL AGE READY STATUS flux-system ssh://git@10.0.2.4/ncyd/ncyd_flux_ottawa_team1_integration_test.git 150d True stored artifact for revision 'main/d4ffbcf4ade0a551a3f8b47637516e95d2e766b0'
Delete the instances
$ kubectl -n flux-system delete gitrepository flux-system gitrepository.source.toolkit.fluxcd.io "flux-system" deleted ...
Edit Finalizers of Instances
$ kubectl -n flux-system edit gitrepository flux-system
Name: flux-system Namespace: flux-system Labels: <none> Annotations: reconcile.fluxcd.io/requestedAt: 2023-01-27T16:37:26.4522483-05:00 API Version: source.toolkit.fluxcd.io/v1beta2 Kind: GitRepository Metadata: Creation Timestamp: 2022-09-01T22:08:38Z Deletion Grace Period Seconds: 0 Deletion Timestamp: 2023-01-27T21:36:00Z Finalizers: finalizers.fluxcd.io Generation: 2
Delete LINE under Finalizers 'finalizers.fluxcd.io' and save.
Repeat above for other Instances.
Verify that the Namespace is now Deleted
kubectl describe ns flux-system Error from server (NotFound): namespaces "flux-system" not found