Skip to content

Commit 2b83ecc

Browse files
committed
fix: Make sure to cordon nodes before draining them if they're not unschedulable
1 parent cf5ea03 commit 2b83ecc

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

k8s/client.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,13 @@ func (k *Client) Drain(nodeName string, ignoreDaemonSets, deleteEmptyDirData boo
146146
log.Printf("[%s][DRAINER] evicted pod %s/%s", nodeName, pod.Namespace, pod.Name)
147147
},
148148
}
149+
if !node.Spec.Unschedulable {
150+
// Cordon the node if it's not already unschedulable
151+
if err := drain.RunCordonOrUncordon(drainer, node, true); err != nil {
152+
log.Printf("[%s][DRAINER] Failed to cordon node: %v", node.Name, err)
153+
return err
154+
}
155+
}
149156
if err := drain.RunNodeDrain(drainer, node.Name); err != nil {
150157
log.Printf("[%s][DRAINER] Failed to drain node: %v", node.Name, err)
151158
return err

0 commit comments

Comments
 (0)