Al hacer limpieza de uno de los clústers de desarrollo, he borrado dos namespaces y los dos se han quedado en estado Terminating

k3os [~]$ k get ns
NAME                       STATUS        AGE
[...]
toolbox-argocd             Terminating   147d
toolbox-tekton-pipelines   Terminating   147d

He intentado varias cosas (incluso reiniciando la VM), pero los namespaces seguían sin eliminarse…

El problema es que hay “algo” que impide que el namespace se borre; puedes identificar ese algo lanzando un kubectl get ns ${nombre_namespace} -o yaml del namespace y buscando en la sección de metadata.finalizers.

[...]
metadata:
  finalizers:
  - controller.cattle.io/namespace-auth
[...]

Aunque no puedo borrar este elemento que bloquea el borrado del Namespace, sí que puedo editar el Namespace para eliminar el finalizer. Así Kubernetes cree que no hay nada que impida la eliminación del objeto.

Edito el objeto mediante kubectl edit ns toolbox-argocd y elimino la línea correspondiente a - controller.cattle.io/namespace-auth:

[...]
  finalizers:
[...]

Al guardar los cambios, compruebo de nuevo la lista de Namespaces para validar que el Namespace se ha borrado correctamente.