kubectl: deprecate --delete-local-data
The option --delete-local-data according with users is not clear. This patch deprecate --delete-local-data in favor of --delete-emptydir-data. Reference: https://github.com/kubernetes/kubernetes/issues/80228 Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com> Kubernetes-commit: 625e47aaa2769d221c59e5b9b05b4ac97212719b
This commit is contained in:
parent
c614d36750
commit
56ea9621b7
|
@ -187,7 +187,9 @@ func NewCmdDrain(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobr
|
||||||
}
|
}
|
||||||
cmd.Flags().BoolVar(&o.drainer.Force, "force", o.drainer.Force, "Continue even if there are pods not managed by a ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet.")
|
cmd.Flags().BoolVar(&o.drainer.Force, "force", o.drainer.Force, "Continue even if there are pods not managed by a ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet.")
|
||||||
cmd.Flags().BoolVar(&o.drainer.IgnoreAllDaemonSets, "ignore-daemonsets", o.drainer.IgnoreAllDaemonSets, "Ignore DaemonSet-managed pods.")
|
cmd.Flags().BoolVar(&o.drainer.IgnoreAllDaemonSets, "ignore-daemonsets", o.drainer.IgnoreAllDaemonSets, "Ignore DaemonSet-managed pods.")
|
||||||
cmd.Flags().BoolVar(&o.drainer.DeleteLocalData, "delete-local-data", o.drainer.DeleteLocalData, "Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained).")
|
cmd.Flags().BoolVar(&o.drainer.DeleteEmptyDirData, "delete-local-data", o.drainer.DeleteEmptyDirData, "Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained).")
|
||||||
|
cmd.Flags().MarkDeprecated("delete-local-data", "This option is deprecated and will be deleted. Use --delete-emptydir-data.")
|
||||||
|
cmd.Flags().BoolVar(&o.drainer.DeleteEmptyDirData, "delete-emptydir-data", o.drainer.DeleteEmptyDirData, "Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained).")
|
||||||
cmd.Flags().IntVar(&o.drainer.GracePeriodSeconds, "grace-period", o.drainer.GracePeriodSeconds, "Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used.")
|
cmd.Flags().IntVar(&o.drainer.GracePeriodSeconds, "grace-period", o.drainer.GracePeriodSeconds, "Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used.")
|
||||||
cmd.Flags().DurationVar(&o.drainer.Timeout, "timeout", o.drainer.Timeout, "The length of time to wait before giving up, zero means infinite")
|
cmd.Flags().DurationVar(&o.drainer.Timeout, "timeout", o.drainer.Timeout, "The length of time to wait before giving up, zero means infinite")
|
||||||
cmd.Flags().StringVarP(&o.drainer.Selector, "selector", "l", o.drainer.Selector, "Selector (label query) to filter on")
|
cmd.Flags().StringVarP(&o.drainer.Selector, "selector", "l", o.drainer.Selector, "Selector (label query) to filter on")
|
||||||
|
|
|
@ -626,6 +626,16 @@ func TestDrain(t *testing.T) {
|
||||||
expected: cordonedNode,
|
expected: cordonedNode,
|
||||||
pods: []corev1.Pod{jobPod},
|
pods: []corev1.Pod{jobPod},
|
||||||
rcs: []corev1.ReplicationController{rc},
|
rcs: []corev1.ReplicationController{rc},
|
||||||
|
args: []string{"node", "--force", "--delete-emptydir-data=true"},
|
||||||
|
expectFatal: false,
|
||||||
|
expectDelete: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description: "Ensure compatibility for --delete-local-data until fully deprecated",
|
||||||
|
node: node,
|
||||||
|
expected: cordonedNode,
|
||||||
|
pods: []corev1.Pod{jobPod},
|
||||||
|
rcs: []corev1.ReplicationController{rc},
|
||||||
args: []string{"node", "--force", "--delete-local-data=true"},
|
args: []string{"node", "--force", "--delete-local-data=true"},
|
||||||
expectFatal: false,
|
expectFatal: false,
|
||||||
expectDelete: true,
|
expectDelete: true,
|
||||||
|
@ -690,11 +700,11 @@ func TestDrain(t *testing.T) {
|
||||||
expectDelete: true,
|
expectDelete: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
description: "pod with EmptyDir and --delete-local-data",
|
description: "pod with EmptyDir and --delete-emptydir-data",
|
||||||
node: node,
|
node: node,
|
||||||
expected: cordonedNode,
|
expected: cordonedNode,
|
||||||
pods: []corev1.Pod{emptydirPod},
|
pods: []corev1.Pod{emptydirPod},
|
||||||
args: []string{"node", "--force", "--delete-local-data=true"},
|
args: []string{"node", "--force", "--delete-emptydir-data=true"},
|
||||||
expectFatal: false,
|
expectFatal: false,
|
||||||
expectDelete: true,
|
expectDelete: true,
|
||||||
},
|
},
|
||||||
|
|
|
@ -52,7 +52,7 @@ type Helper struct {
|
||||||
GracePeriodSeconds int
|
GracePeriodSeconds int
|
||||||
IgnoreAllDaemonSets bool
|
IgnoreAllDaemonSets bool
|
||||||
Timeout time.Duration
|
Timeout time.Duration
|
||||||
DeleteLocalData bool
|
DeleteEmptyDirData bool
|
||||||
Selector string
|
Selector string
|
||||||
PodSelector string
|
PodSelector string
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ import (
|
||||||
const (
|
const (
|
||||||
daemonSetFatal = "DaemonSet-managed Pods (use --ignore-daemonsets to ignore)"
|
daemonSetFatal = "DaemonSet-managed Pods (use --ignore-daemonsets to ignore)"
|
||||||
daemonSetWarning = "ignoring DaemonSet-managed Pods"
|
daemonSetWarning = "ignoring DaemonSet-managed Pods"
|
||||||
localStorageFatal = "Pods with local storage (use --delete-local-data to override)"
|
localStorageFatal = "Pods with local storage (use --delete-emptydir-data to override)"
|
||||||
localStorageWarning = "deleting Pods with local storage"
|
localStorageWarning = "deleting Pods with local storage"
|
||||||
unmanagedFatal = "Pods not managed by ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet (use --force to override)"
|
unmanagedFatal = "Pods not managed by ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet (use --force to override)"
|
||||||
unmanagedWarning = "deleting Pods not managed by ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet"
|
unmanagedWarning = "deleting Pods not managed by ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet"
|
||||||
|
@ -218,7 +218,7 @@ func (d *Helper) localStorageFilter(pod corev1.Pod) PodDeleteStatus {
|
||||||
if pod.Status.Phase == corev1.PodSucceeded || pod.Status.Phase == corev1.PodFailed {
|
if pod.Status.Phase == corev1.PodSucceeded || pod.Status.Phase == corev1.PodFailed {
|
||||||
return MakePodDeleteStatusOkay()
|
return MakePodDeleteStatusOkay()
|
||||||
}
|
}
|
||||||
if !d.DeleteLocalData {
|
if !d.DeleteEmptyDirData {
|
||||||
return MakePodDeleteStatusWithError(localStorageFatal)
|
return MakePodDeleteStatusWithError(localStorageFatal)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue