Skip to content

Commit c6c18c8

Browse files
committed
event pod event when node not ready
1 parent f9250c4 commit c6c18c8

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

pkg/controller/nodelifecycle/node_lifecycle_controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -858,7 +858,7 @@ func (nc *Controller) monitorNodeHealth() error {
858858
nodeutil.RecordNodeStatusChange(nc.recorder, node, "NodeNotReady")
859859
fallthrough
860860
case needsRetry && observedReadyCondition.Status != v1.ConditionTrue:
861-
if err = nodeutil.MarkPodsNotReady(nc.kubeClient, pods, node.Name); err != nil {
861+
if err = nodeutil.MarkPodsNotReady(nc.kubeClient, nc.recorder, pods, node.Name); err != nil {
862862
utilruntime.HandleError(fmt.Errorf("unable to mark all pods NotReady on node %v: %v; queuing for retry", node.Name, err))
863863
nc.nodesToRetry.Store(node.Name, struct{}{})
864864
continue
@@ -1341,7 +1341,7 @@ func (nc *Controller) processPod(podItem podUpdateItem) {
13411341
}
13421342

13431343
if currentReadyCondition.Status != v1.ConditionTrue {
1344-
if err := nodeutil.MarkPodsNotReady(nc.kubeClient, pods, nodeName); err != nil {
1344+
if err := nodeutil.MarkPodsNotReady(nc.kubeClient, nc.recorder, pods, nodeName); err != nil {
13451345
klog.Warningf("Unable to mark pod %+v NotReady on node %v: %v.", podItem, nodeName, err)
13461346
nc.podUpdateQueue.AddRateLimited(podItem)
13471347
}

pkg/controller/util/node/controller_utils.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func SetPodTerminationReason(kubeClient clientset.Interface, pod *v1.Pod, nodeNa
118118

119119
// MarkPodsNotReady updates ready status of given pods running on
120120
// given node from master return true if success
121-
func MarkPodsNotReady(kubeClient clientset.Interface, pods []*v1.Pod, nodeName string) error {
121+
func MarkPodsNotReady(kubeClient clientset.Interface, recorder record.EventRecorder, pods []*v1.Pod, nodeName string) error {
122122
klog.V(2).Infof("Update ready status of pods on node [%v]", nodeName)
123123

124124
errMsg := []string{}
@@ -136,6 +136,7 @@ func MarkPodsNotReady(kubeClient clientset.Interface, pods []*v1.Pod, nodeName s
136136
if !utilpod.UpdatePodCondition(&pod.Status, &cond) {
137137
break
138138
}
139+
139140
klog.V(2).Infof("Updating ready status of pod %v to false", pod.Name)
140141
_, err := kubeClient.CoreV1().Pods(pod.Namespace).UpdateStatus(context.TODO(), pod, metav1.UpdateOptions{})
141142
if err != nil {
@@ -147,6 +148,8 @@ func MarkPodsNotReady(kubeClient clientset.Interface, pods []*v1.Pod, nodeName s
147148
klog.Warningf("Failed to update status for pod %q: %v", format.Pod(pod), err)
148149
errMsg = append(errMsg, fmt.Sprintf("%v", err))
149150
}
151+
// record NodeNotReady event after updateStatus to make sure pod still exists
152+
recorder.Event(pod, v1.EventTypeWarning, "NodeNotReady", "Node is not ready")
150153
break
151154
}
152155
}

0 commit comments

Comments
 (0)