From 909300b8be909c48a68900c407de03be95555409 Mon Sep 17 00:00:00 2001 From: Sally O'Malley Date: Thu, 12 Sep 2019 14:31:09 -0400 Subject: [PATCH] When running `kubectl drain` in dry-run, list warnings and pods that would be deleted. --- staging/src/k8s.io/kubectl/pkg/cmd/drain/drain.go | 12 +++++++----- staging/src/k8s.io/kubectl/pkg/drain/drain.go | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/drain/drain.go b/staging/src/k8s.io/kubectl/pkg/cmd/drain/drain.go index f88fd1a1f71..d515c51098f 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/drain/drain.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/drain/drain.go @@ -288,11 +288,7 @@ func (o *DrainCmdOptions) RunDrain() error { var fatal error for _, info := range o.nodeInfos { - var err error - if !o.drainer.DryRun { - err = o.deleteOrEvictPodsSimple(info) - } - if err == nil || o.drainer.DryRun { + if err := o.deleteOrEvictPodsSimple(info); err == nil { drainedNodes.Insert(info.Name) printObj(info.Object, o.Out) } else { @@ -327,6 +323,12 @@ func (o *DrainCmdOptions) deleteOrEvictPodsSimple(nodeInfo *resource.Info) error if warnings := list.Warnings(); warnings != "" { fmt.Fprintf(o.ErrOut, "WARNING: %s\n", warnings) } + if o.drainer.DryRun { + for _, pod := range list.Pods() { + fmt.Fprintf(o.Out, "evicting pod %s/%s (dry run)\n", pod.Namespace, pod.Name) + } + return nil + } if err := o.drainer.DeleteOrEvictPods(list.Pods()); err != nil { pendingList, newErrs := o.drainer.GetPodsForDeletion(nodeInfo.Name) diff --git a/staging/src/k8s.io/kubectl/pkg/drain/drain.go b/staging/src/k8s.io/kubectl/pkg/drain/drain.go index d123dd33554..9b488cb8ab7 100644 --- a/staging/src/k8s.io/kubectl/pkg/drain/drain.go +++ b/staging/src/k8s.io/kubectl/pkg/drain/drain.go @@ -208,7 +208,7 @@ func (d *Helper) evictPods(pods []corev1.Pod, policyGroupVersion string, getPodF for _, pod := range pods { go func(pod corev1.Pod, returnCh chan error) { for { - fmt.Fprintf(d.Out, "evicting pod %q\n", pod.Name) + fmt.Fprintf(d.Out, "evicting pod %s/%s\n", pod.Namespace, pod.Name) select { case <-ctx.Done(): // return here or we'll leak a goroutine.