Skip to content

Commit eac2feb

Browse files
authored
add pods to webhook event and log pods on node (#447)
* add pods to webhook event and log pods on node * only add podlist when no errors when cordoning or draining
1 parent 5e4984f commit eac2feb

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

cmd/node-termination-handler.go

+20-13
Original file line numberDiff line numberDiff line change
@@ -309,9 +309,21 @@ func drainOrCordonIfNecessary(interruptionEventStore *interruptioneventstore.Sto
309309
}
310310

311311
if nthConfig.CordonOnly || (drainEvent.IsRebalanceRecommendation() && !nthConfig.EnableRebalanceDraining) {
312-
cordonNode(node, nodeName, drainEvent, metrics, recorder)
312+
err = cordonNode(node, nodeName, drainEvent, metrics, recorder)
313313
} else {
314-
cordonAndDrainNode(node, nodeName, metrics, recorder, nthConfig.EnableSQSTerminationDraining)
314+
err = cordonAndDrainNode(node, nodeName, metrics, recorder, nthConfig.EnableSQSTerminationDraining)
315+
}
316+
317+
if err != nil {
318+
podNameList, err := node.FetchPodNameList(nodeName)
319+
drainEvent.Pods = podNameList
320+
if err != nil {
321+
log.Err(err).Msgf("Unable to fetch running pods for node '%s' ", nodeName)
322+
}
323+
err = node.LogPods(podNameList, nodeName)
324+
if err != nil {
325+
log.Err(err).Msg("There was a problem while trying to log all pod names on the node")
326+
}
315327
}
316328

317329
interruptionEventStore.MarkAllAsProcessed(nodeName)
@@ -336,7 +348,7 @@ func runPreDrainTask(node node.Node, nodeName string, drainEvent *monitor.Interr
336348
metrics.NodeActionsInc("pre-drain", nodeName, err)
337349
}
338350

339-
func cordonNode(node node.Node, nodeName string, drainEvent *monitor.InterruptionEvent, metrics observability.Metrics, recorder observability.K8sEventRecorder) {
351+
func cordonNode(node node.Node, nodeName string, drainEvent *monitor.InterruptionEvent, metrics observability.Metrics, recorder observability.K8sEventRecorder) error {
340352
err := node.Cordon(nodeName)
341353
if err != nil {
342354
if errors.IsNotFound(err) {
@@ -346,23 +358,16 @@ func cordonNode(node node.Node, nodeName string, drainEvent *monitor.Interruptio
346358
recorder.Emit(nodeName, observability.Warning, observability.CordonErrReason, observability.CordonErrMsgFmt, err.Error())
347359
os.Exit(1)
348360
}
361+
return err
349362
} else {
350363
log.Info().Str("node_name", nodeName).Msg("Node successfully cordoned")
351-
podNameList, err := node.FetchPodNameList(nodeName)
352-
drainEvent.Pods = podNameList
353-
if err != nil {
354-
log.Err(err).Msgf("Unable to fetch running pods for node '%s' ", nodeName)
355-
}
356-
err = node.LogPods(podNameList, nodeName)
357-
if err != nil {
358-
log.Err(err).Msg("There was a problem while trying to log all pod names on the node")
359-
}
360364
metrics.NodeActionsInc("cordon", nodeName, err)
361365
recorder.Emit(nodeName, observability.Normal, observability.CordonReason, observability.CordonMsg)
362366
}
367+
return nil
363368
}
364369

365-
func cordonAndDrainNode(node node.Node, nodeName string, metrics observability.Metrics, recorder observability.K8sEventRecorder, sqsTerminationDraining bool) {
370+
func cordonAndDrainNode(node node.Node, nodeName string, metrics observability.Metrics, recorder observability.K8sEventRecorder, sqsTerminationDraining bool) error {
366371
err := node.CordonAndDrain(nodeName)
367372
if err != nil {
368373
if errors.IsNotFound(err) {
@@ -375,11 +380,13 @@ func cordonAndDrainNode(node node.Node, nodeName string, metrics observability.M
375380
os.Exit(1)
376381
}
377382
}
383+
return err
378384
} else {
379385
log.Info().Str("node_name", nodeName).Msg("Node successfully cordoned and drained")
380386
metrics.NodeActionsInc("cordon-and-drain", nodeName, err)
381387
recorder.Emit(nodeName, observability.Normal, observability.CordonAndDrainReason, observability.CordonAndDrainMsg)
382388
}
389+
return nil
383390
}
384391

385392
func runPostDrainTask(node node.Node, nodeName string, drainEvent *monitor.InterruptionEvent, metrics observability.Metrics, recorder observability.K8sEventRecorder) {

0 commit comments

Comments
 (0)