Merge pull request #116482 from smarterclayton/no_mutate

kubelet: Do not mutate pods in the pod manager
This commit is contained in:
Kubernetes Prow Robot 2023-04-12 02:22:32 -07:00 committed by GitHub
commit 2f1db33dd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -181,11 +181,14 @@ func (kl *Kubelet) GetPods() []*v1.Pod {
pods := kl.podManager.GetPods()
// a kubelet running without apiserver requires an additional
// update of the static pod status. See #57106
for _, p := range pods {
for i, p := range pods {
if kubelettypes.IsStaticPod(p) {
if status, ok := kl.statusManager.GetPodStatus(p.UID); ok {
klog.V(2).InfoS("Pod status updated", "pod", klog.KObj(p), "status", status.Phase)
// do not mutate the cache
p = p.DeepCopy()
p.Status = status
pods[i] = p
}
}
}