add additional options to avoid node drain or delete getting stuck

pull/10926/head
Predrag Rogic 2021-03-25 13:47:52 +00:00
parent d0afd8b9ec
commit b1353c5a6a
No known key found for this signature in database
GPG Key ID: F1FF5748C4855229
1 changed files with 6 additions and 2 deletions

View File

@ -108,7 +108,7 @@ func drainNode(cc config.ClusterConfig, name string) (*config.Node, error) {
// ref: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#drain
kubectl := kapi.KubectlBinaryPath(cc.KubernetesConfig.KubernetesVersion)
cmd := exec.Command("sudo", "KUBECONFIG=/var/lib/minikube/kubeconfig", kubectl, "drain", m,
"--force", "--grace-period=1", "--disable-eviction", "--ignore-daemonsets", "--delete-emptydir-data")
"--force", "--grace-period=1", "--skip-wait-for-delete-timeout=1", "--disable-eviction", "--ignore-daemonsets", "--delete-emptydir-data", "--delete-local-data")
if _, err := runner.RunCmd(cmd); err != nil {
klog.Warningf("unable to drain node %q: %v", name, err)
} else {
@ -121,10 +121,14 @@ func drainNode(cc config.ClusterConfig, name string) (*config.Node, error) {
return n, err
}
err = client.CoreV1().Nodes().Delete(context.Background(), m, v1.DeleteOptions{})
// set 'GracePeriodSeconds: 0' option to delete node immediately (ie, w/o waiting)
var grace *int64
err = client.CoreV1().Nodes().Delete(context.Background(), m, v1.DeleteOptions{GracePeriodSeconds: grace})
if err != nil {
klog.Errorf("unable to delete node %q: %v", name, err)
return n, err
}
klog.Infof("successfully deleted node %q", name)
cc.Nodes = append(cc.Nodes[:index], cc.Nodes[index+1:]...)
return n, config.SaveProfile(viper.GetString(config.ProfileName), &cc)