How to check if a Kubernetes object is fully deleted?

10/19/2018

I am trying to create an automated pipeline that would run multiple pods one after another on a namespace. The current issue is, between runs I want to wait for a pod to be fully deleted before running the next. Are there any ways to check if a given pod is fully deleted?

Current script:

kubectl delete -f pod.yaml
sleep 10
kubectl create -f pod.yaml
error when creating "pod.yaml": object is being deleted: pods "test-pod" already exists
-- ZPrime
kubernetes

4 Answers

10/19/2018

kubectl 1.11+ waits for the deletion to be completed before delete returns.

-- Jordan Liggitt
Source: StackOverflow

10/19/2018

You can do something like this:

kubectl delete -f pod.yaml
until kubectl get pod <pod-name> 2>&1 >/dev/null; do sleep 10; done
kubectl create -f pod.yaml

Basically, wait until kubectl get pod <pod-name> returns an error because it doesn't exist.

-- Rico
Source: StackOverflow

11/25/2018

In case you want to delete the pod immediately, use this.

kubectl delete pod NAME --grace-period=0 --force
-- Rajith
Source: StackOverflow

11/25/2018

Use --wait option, i.e.:

kubectl delete -f your.yaml --wait=true
-- pb100
Source: StackOverflow