@@ -311,7 +311,7 @@ func drainOrCordonIfNecessary(interruptionEventStore *interruptioneventstore.Sto
311311 if nthConfig .CordonOnly || (drainEvent .IsRebalanceRecommendation () && ! nthConfig .EnableRebalanceDraining ) {
312312 cordonNode (node , nodeName , drainEvent , metrics , recorder )
313313 } else {
314- cordonAndDrainNode (node , nodeName , metrics , recorder )
314+ cordonAndDrainNode (node , nodeName , metrics , recorder , nthConfig . EnableSQSTerminationDraining )
315315 }
316316
317317 interruptionEventStore .MarkAllAsProcessed (nodeName )
@@ -361,7 +361,7 @@ func cordonNode(node node.Node, nodeName string, drainEvent *monitor.Interruptio
361361 }
362362}
363363
364- func cordonAndDrainNode (node node.Node , nodeName string , metrics observability.Metrics , recorder observability.K8sEventRecorder ) {
364+ func cordonAndDrainNode (node node.Node , nodeName string , metrics observability.Metrics , recorder observability.K8sEventRecorder , sqsTerminationDraining bool ) {
365365 err := node .CordonAndDrain (nodeName )
366366 if err != nil {
367367 if errors .IsNotFound (err ) {
@@ -370,7 +370,9 @@ func cordonAndDrainNode(node node.Node, nodeName string, metrics observability.M
370370 log .Err (err ).Msg ("There was a problem while trying to cordon and drain the node" )
371371 metrics .NodeActionsInc ("cordon-and-drain" , nodeName , err )
372372 recorder .Emit (nodeName , observability .Warning , observability .CordonAndDrainErrReason , observability .CordonAndDrainErrMsgFmt , err .Error ())
373- os .Exit (1 )
373+ if ! sqsTerminationDraining {
374+ os .Exit (1 )
375+ }
374376 }
375377 } else {
376378 log .Info ().Str ("node_name" , nodeName ).Msg ("Node successfully cordoned and drained" )
0 commit comments