Esta pregunta es un seguimiento de: ¿Cómo enumerar realmente todos los objetos de un espacio de nombres inexistente?
Larga historia corta:
$ kubectl get namespaces NAME STATUS AGE argo Active 27d default Active 27d kube-node-lease Active 27d kube-public Active 27d kube-system Active 27d $ kubectl get eventbus -n argo-events NAME AGE default 17h $ kubectl get eventsource -n argo-events NAME AGE pubsub-event-source 14h
Hay dos recursos en el espacio de nombres argo-events que en realidad ya no existen porque los eliminé y esperaba que desaparecieran con todos los recursos. Obviamente algo no funcionó como se esperaba.
Ahora (después de enumerar potencialmente más objetos, primera pregunta), realmente quiero deshacerme de esos recursos porque parecen bloquear una redistribución.
Pero esto ...
$ kubectl delete eventbus default -n argo-events eventbus.argoproj.io "default" deleted ^C $ kubectl delete eventsource pubsub-event-source -n argo-events eventsource.argoproj.io "pubsub-event-source" deleted ^C
... no funciona.
Entonces, ¿cómo fuerzo su eliminación?
ACTUALIZAR:
$ kubectl describe eventbus default -n argo-events | grep -A 3 final f:finalizers: .: v:"eventbus-controller": f:status: $ kubectl describe eventsource pubsub-event-source -n argo-events | grep -A 3 final f:finalizers: .: v:"eventsource-controller": f:spec:
Esto funcionó:
$ kubectl create namespace argo-events namespace/argo-events created $ kubectl patch eventsource/pubsub-event-source -p '{"metadata":{"finalizers":[]}}' --type=merge -n argo-events eventsource.argoproj.io/pubsub-event-source patched $ kubectl patch eventbus/default -p '{"metadata":{"finalizers":[]}}' --type=merge -n argo-events eventbus.argoproj.io/default patched $ kubectl delete namespace argo-events namespace "argo-events" deleted
Si alguien encuentra esta respuesta y sabe por qué funciona, agregue una explicación en un comentario. Eso sería genial, gracias.
Qué pasa:
kubectl delete eventsource pubsub-event-source -n argo-events --grace-period=0 --force
?