Skip to content

Commit 7536c71

Browse files
committed
When UseAPIServerCacheToListPods is true, don't call kubectl's RunNodeDrain
1 parent 1aa3d7a commit 7536c71

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

pkg/node/node.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,15 +114,12 @@ func (n Node) CordonAndDrain(nodeName string, reason string, recorder recorderIn
114114
if err != nil {
115115
return err
116116
}
117+
var pods *corev1.PodList
117118
// Delete all pods on the node
118119
log.Info().Msg("Draining the node")
119-
node, err := n.fetchKubernetesNode(nodeName)
120-
if err != nil {
121-
return err
122-
}
123120
// Emit events for all pods that will be evicted
124121
if recorder != nil {
125-
pods, err := n.fetchAllPods(nodeName)
122+
pods, err = n.fetchAllPods(nodeName)
126123
if err == nil {
127124
for _, pod := range pods.Items {
128125
podRef := &corev1.ObjectReference{
@@ -139,7 +136,14 @@ func (n Node) CordonAndDrain(nodeName string, reason string, recorder recorderIn
139136
}
140137
}
141138
}
142-
err = drain.RunNodeDrain(n.drainHelper, node.Name)
139+
if n.nthConfig.UseAPIServerCacheToListPods {
140+
if pods != nil {
141+
err = n.drainHelper.DeleteOrEvictPods(pods.Items)
142+
}
143+
} else {
144+
// RunNodeDrain does an etcd quorum-read to list all pods on this node
145+
err = drain.RunNodeDrain(n.drainHelper, nodeName)
146+
}
143147
if err != nil {
144148
return err
145149
}

0 commit comments

Comments
 (0)