From 0a8d7aadc0e756c19e98f3f30b9ef76e496cdbcb Mon Sep 17 00:00:00 2001 From: Pingan2017 Date: Mon, 20 May 2019 19:07:24 +0800 Subject: [PATCH] update LastTransitionTime for pod ready condition when node become notready --- pkg/controller/util/node/BUILD | 1 + pkg/controller/util/node/controller_utils.go | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/controller/util/node/BUILD b/pkg/controller/util/node/BUILD index 4b860e68ffc..c875ccf674c 100644 --- a/pkg/controller/util/node/BUILD +++ b/pkg/controller/util/node/BUILD @@ -6,6 +6,7 @@ go_library( importpath = "k8s.io/kubernetes/pkg/controller/util/node", visibility = ["//visibility:public"], deps = [ + "//pkg/api/v1/pod:go_default_library", "//pkg/apis/core:go_default_library", "//pkg/controller:go_default_library", "//pkg/kubelet/util/format:go_default_library", diff --git a/pkg/controller/util/node/controller_utils.go b/pkg/controller/util/node/controller_utils.go index d919e7177a2..da17b5696b5 100644 --- a/pkg/controller/util/node/controller_utils.go +++ b/pkg/controller/util/node/controller_utils.go @@ -32,6 +32,7 @@ import ( "k8s.io/api/core/v1" clientset "k8s.io/client-go/kubernetes" appsv1listers "k8s.io/client-go/listers/apps/v1" + utilpod "k8s.io/kubernetes/pkg/api/v1/pod" api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/kubelet/util/format" @@ -134,9 +135,12 @@ func MarkAllPodsNotReady(kubeClient clientset.Interface, node *v1.Node) error { continue } - for i, cond := range pod.Status.Conditions { + for _, cond := range pod.Status.Conditions { if cond.Type == v1.PodReady { - pod.Status.Conditions[i].Status = v1.ConditionFalse + cond.Status = v1.ConditionFalse + if !utilpod.UpdatePodCondition(&pod.Status, &cond) { + break + } klog.V(2).Infof("Updating ready status of pod %v to false", pod.Name) _, err := kubeClient.CoreV1().Pods(pod.Namespace).UpdateStatus(&pod) if err != nil {