@@ -311,7 +311,7 @@ func drainOrCordonIfNecessary(interruptionEventStore *interruptioneventstore.Sto
311
311
if nthConfig .CordonOnly || (drainEvent .IsRebalanceRecommendation () && ! nthConfig .EnableRebalanceDraining ) {
312
312
cordonNode (node , nodeName , drainEvent , metrics , recorder )
313
313
} else {
314
- cordonAndDrainNode (node , nodeName , metrics , recorder )
314
+ cordonAndDrainNode (node , nodeName , metrics , recorder , nthConfig . EnableSQSTerminationDraining )
315
315
}
316
316
317
317
interruptionEventStore .MarkAllAsProcessed (nodeName )
@@ -361,7 +361,7 @@ func cordonNode(node node.Node, nodeName string, drainEvent *monitor.Interruptio
361
361
}
362
362
}
363
363
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 ) {
365
365
err := node .CordonAndDrain (nodeName )
366
366
if err != nil {
367
367
if errors .IsNotFound (err ) {
@@ -370,7 +370,9 @@ func cordonAndDrainNode(node node.Node, nodeName string, metrics observability.M
370
370
log .Err (err ).Msg ("There was a problem while trying to cordon and drain the node" )
371
371
metrics .NodeActionsInc ("cordon-and-drain" , nodeName , err )
372
372
recorder .Emit (nodeName , observability .Warning , observability .CordonAndDrainErrReason , observability .CordonAndDrainErrMsgFmt , err .Error ())
373
- os .Exit (1 )
373
+ if ! sqsTerminationDraining {
374
+ os .Exit (1 )
375
+ }
374
376
}
375
377
} else {
376
378
log .Info ().Str ("node_name" , nodeName ).Msg ("Node successfully cordoned and drained" )
0 commit comments