From 4c289014a05669c376994868d8d91f7565a204b5 Mon Sep 17 00:00:00 2001 From: JulienBalestra Date: Thu, 4 Jan 2018 11:16:56 +0100 Subject: [PATCH] Kubelet provides an updated and complete status of local-static Pods --- pkg/kubelet/kubelet_getters.go | 10 +++++++++- pkg/kubelet/kubelet_pods.go | 19 ++++++++----------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/pkg/kubelet/kubelet_getters.go b/pkg/kubelet/kubelet_getters.go index 1b98f9189fb..d433ffcf069 100644 --- a/pkg/kubelet/kubelet_getters.go +++ b/pkg/kubelet/kubelet_getters.go @@ -142,7 +142,15 @@ func (kl *Kubelet) getPodContainerDir(podUID types.UID, ctrName string) string { // GetPods returns all pods bound to the kubelet and their spec, and the mirror // pods. func (kl *Kubelet) GetPods() []*v1.Pod { - return kl.podManager.GetPods() + pods := kl.podManager.GetPods() + // a kubelet running without apiserver requires an additional + // update of the static pod status. See #57106 + for _, p := range pods { + if status, ok := kl.statusManager.GetPodStatus(p.UID); ok { + p.Status = status + } + } + return pods } // GetRunningPods returns all pods running on kubelet from looking at the diff --git a/pkg/kubelet/kubelet_pods.go b/pkg/kubelet/kubelet_pods.go index 40340934920..31763ea4d9e 100644 --- a/pkg/kubelet/kubelet_pods.go +++ b/pkg/kubelet/kubelet_pods.go @@ -1359,18 +1359,15 @@ func (kl *Kubelet) generateAPIPodStatus(pod *v1.Pod, podStatus *kubecontainer.Po Status: v1.ConditionTrue, }) - if kl.kubeClient != nil { - hostIP, err := kl.getHostIPAnyWay() - if err != nil { - glog.V(4).Infof("Cannot get host IP: %v", err) - } else { - s.HostIP = hostIP.String() - if kubecontainer.IsHostNetworkPod(pod) && s.PodIP == "" { - s.PodIP = hostIP.String() - } - } + hostIP, err := kl.getHostIPAnyWay() + if err != nil { + glog.V(4).Infof("Cannot get host IP: %v", err) + return *s + } + s.HostIP = hostIP.String() + if kubecontainer.IsHostNetworkPod(pod) && s.PodIP == "" { + s.PodIP = hostIP.String() } - return *s }