Sometimes, I found some namespace stuck at the “Terminating” phase. Not just it’s annoying but it also led to other Kubernetes objects stuck at the same phase too, even if said objects aren’t part of this problematic namespace. I’ve found a solution in the Stackoverflow1Namespace “stuck” as Terminating to easily remove these problematic namespaces.
#!/bin/sh
for ns in $(kubectl get ns --field-selector status.phase=Terminating -o jsonpath='{.items[*].metadata.name}')
do
kubectl get ns $ns -ojson | jq '.spec.finalizers = []' | kubectl replace --raw "/api/v1/namespaces/$ns/finalize" -f -
done
for ns in $(kubectl get ns --field-selector status.phase=Terminating -o jsonpath='{.items[*].metadata.name}')
do
kubectl get ns $ns -ojson | jq '.metadata.finalizers = []' | kubectl replace --raw "/api/v1/namespaces/$ns/finalize" -f -
done