Skip to content

Commit 02bd568

Browse files
authored
Merge pull request #10926 from prezha/fix-node-drain-timeout
add additional options to avoid node drain or delete getting stuck
2 parents 700ff6a + b1353c5 commit 02bd568

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

pkg/minikube/node/node.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ func drainNode(cc config.ClusterConfig, name string) (*config.Node, error) {
108108
// ref: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#drain
109109
kubectl := kapi.KubectlBinaryPath(cc.KubernetesConfig.KubernetesVersion)
110110
cmd := exec.Command("sudo", "KUBECONFIG=/var/lib/minikube/kubeconfig", kubectl, "drain", m,
111-
"--force", "--grace-period=1", "--disable-eviction", "--ignore-daemonsets", "--delete-emptydir-data")
111+
"--force", "--grace-period=1", "--skip-wait-for-delete-timeout=1", "--disable-eviction", "--ignore-daemonsets", "--delete-emptydir-data", "--delete-local-data")
112112
if _, err := runner.RunCmd(cmd); err != nil {
113113
klog.Warningf("unable to drain node %q: %v", name, err)
114114
} else {
@@ -121,10 +121,14 @@ func drainNode(cc config.ClusterConfig, name string) (*config.Node, error) {
121121
return n, err
122122
}
123123

124-
err = client.CoreV1().Nodes().Delete(context.Background(), m, v1.DeleteOptions{})
124+
// set 'GracePeriodSeconds: 0' option to delete node immediately (ie, w/o waiting)
125+
var grace *int64
126+
err = client.CoreV1().Nodes().Delete(context.Background(), m, v1.DeleteOptions{GracePeriodSeconds: grace})
125127
if err != nil {
128+
klog.Errorf("unable to delete node %q: %v", name, err)
126129
return n, err
127130
}
131+
klog.Infof("successfully deleted node %q", name)
128132

129133
cc.Nodes = append(cc.Nodes[:index], cc.Nodes[index+1:]...)
130134
return n, config.SaveProfile(viper.GetString(config.ProfileName), &cc)

0 commit comments

Comments
 (0)