From 42a2a2fafe5b11611ca89f4a6c821ac00ad62ace Mon Sep 17 00:00:00 2001 From: David Ashpole Date: Wed, 25 Oct 2017 16:33:00 -0700 Subject: [PATCH] fix #54499. Removed containers are not waiting --- pkg/kubelet/kubelet_pods.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkg/kubelet/kubelet_pods.go b/pkg/kubelet/kubelet_pods.go index dfdb0f384d3..480c841e189 100644 --- a/pkg/kubelet/kubelet_pods.go +++ b/pkg/kubelet/kubelet_pods.go @@ -1348,16 +1348,21 @@ func (kl *Kubelet) convertStatusToAPIStatus(pod *v1.Pod, podStatus *kubecontaine // set status for Pods created on versions of kube older than 1.6 apiPodStatus.QOSClass = v1qos.GetPodQOS(pod) + oldPodStatus, found := kl.statusManager.GetPodStatus(pod.UID) + if !found { + oldPodStatus = pod.Status + } + apiPodStatus.ContainerStatuses = kl.convertToAPIContainerStatuses( pod, podStatus, - pod.Status.ContainerStatuses, + oldPodStatus.ContainerStatuses, pod.Spec.Containers, len(pod.Spec.InitContainers) > 0, false, ) apiPodStatus.InitContainerStatuses = kl.convertToAPIContainerStatuses( pod, podStatus, - pod.Status.InitContainerStatuses, + oldPodStatus.InitContainerStatuses, pod.Spec.InitContainers, len(pod.Spec.InitContainers) > 0, true, @@ -1424,7 +1429,7 @@ func (kl *Kubelet) convertToAPIContainerStatuses(pod *v1.Pod, podStatus *kubecon } oldStatus, found := oldStatuses[container.Name] if found { - if isInitContainer && oldStatus.State.Terminated != nil { + if oldStatus.State.Terminated != nil { // Do not update status on terminated init containers as // they be removed at any time. status = &oldStatus