Consider Pod Phase in IsReadyPod (#1080)
This commit is contained in:
committed by
Ta-Ching Chen
parent
6893403ba7
commit
1806259637
@@ -120,12 +120,26 @@ func IsReadyPod(pod *apiv1.Pod) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// pod is not in Running Phase. It can be in Pending,
|
||||
// Succeeded, Failed, Unknown. In some cases the pod can be in
|
||||
// different sate than Running, for example Kubernetes sets a
|
||||
// pod to Termination while k8s waits for the grace period of
|
||||
// the pod, even if all the containers are in Ready state.
|
||||
if pod.Status.Phase != apiv1.PodRunning {
|
||||
return false
|
||||
}
|
||||
|
||||
// pod is in "Terminating" status if deletionTimestamp is not nil
|
||||
// https://github.com/kubernetes/kubernetes/issues/61376
|
||||
if pod.ObjectMeta.DeletionTimestamp != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// pod does not have an IP address allocated to it yet
|
||||
if pod.Status.PodIP == "" {
|
||||
return false
|
||||
}
|
||||
|
||||
for _, cStatus := range pod.Status.ContainerStatuses {
|
||||
if !cStatus.Ready {
|
||||
return false
|
||||
|
||||
Reference in New Issue
Block a user