From 6d309ed99e523f0416e867b96fedd07d69f54272 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. Kubernetes-commit: 909300b8be909c48a68900c407de03be95555409 --- pkg/cmd/drain/drain.go | 12 +++++++----- pkg/drain/drain.go | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pkg/cmd/drain/drain.go b/pkg/cmd/drain/drain.go index 3c7195179..9d2810315 100644 --- a/pkg/cmd/drain/drain.go +++ b/pkg/cmd/drain/drain.go @@ -289,11 +289,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 { @@ -328,6 +324,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/pkg/drain/drain.go b/pkg/drain/drain.go index 1763770ba..d846dd0f4 100644 --- a/pkg/drain/drain.go +++ b/pkg/drain/drain.go @@ -216,7 +216,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.