fix #54499. Removed containers are not waiting

This commit is contained in:
David Ashpole 2017-10-25 16:33:00 -07:00
parent 671efe1255
commit 42a2a2fafe

View File

@ -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 // set status for Pods created on versions of kube older than 1.6
apiPodStatus.QOSClass = v1qos.GetPodQOS(pod) apiPodStatus.QOSClass = v1qos.GetPodQOS(pod)
oldPodStatus, found := kl.statusManager.GetPodStatus(pod.UID)
if !found {
oldPodStatus = pod.Status
}
apiPodStatus.ContainerStatuses = kl.convertToAPIContainerStatuses( apiPodStatus.ContainerStatuses = kl.convertToAPIContainerStatuses(
pod, podStatus, pod, podStatus,
pod.Status.ContainerStatuses, oldPodStatus.ContainerStatuses,
pod.Spec.Containers, pod.Spec.Containers,
len(pod.Spec.InitContainers) > 0, len(pod.Spec.InitContainers) > 0,
false, false,
) )
apiPodStatus.InitContainerStatuses = kl.convertToAPIContainerStatuses( apiPodStatus.InitContainerStatuses = kl.convertToAPIContainerStatuses(
pod, podStatus, pod, podStatus,
pod.Status.InitContainerStatuses, oldPodStatus.InitContainerStatuses,
pod.Spec.InitContainers, pod.Spec.InitContainers,
len(pod.Spec.InitContainers) > 0, len(pod.Spec.InitContainers) > 0,
true, true,
@ -1424,7 +1429,7 @@ func (kl *Kubelet) convertToAPIContainerStatuses(pod *v1.Pod, podStatus *kubecon
} }
oldStatus, found := oldStatuses[container.Name] oldStatus, found := oldStatuses[container.Name]
if found { if found {
if isInitContainer && oldStatus.State.Terminated != nil { if oldStatus.State.Terminated != nil {
// Do not update status on terminated init containers as // Do not update status on terminated init containers as
// they be removed at any time. // they be removed at any time.
status = &oldStatus status = &oldStatus