From 3bc47924a9f1ac2e144453a9859c04afa8b6841d Mon Sep 17 00:00:00 2001 From: Di Xu Date: Wed, 23 Aug 2017 17:25:16 +0800 Subject: [PATCH] fix bug on kubectl deleting uninitialized resources --- pkg/kubectl/delete.go | 5 +++++ pkg/kubectl/scale.go | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/pkg/kubectl/delete.go b/pkg/kubectl/delete.go index f481019075..0673b4bde6 100644 --- a/pkg/kubectl/delete.go +++ b/pkg/kubectl/delete.go @@ -404,6 +404,11 @@ func (reaper *DeploymentReaper) Stop(namespace, name string, timeout time.Durati if err != nil { return err } + if deployment.Initializers != nil { + var falseVar = false + nonOrphanOption := metav1.DeleteOptions{OrphanDependents: &falseVar} + return deployments.Delete(name, &nonOrphanOption) + } // Use observedGeneration to determine if the deployment controller noticed the pause. if err := deploymentutil.WaitForObservedDeploymentInternal(func() (*extensions.Deployment, error) { diff --git a/pkg/kubectl/scale.go b/pkg/kubectl/scale.go index 21bbcfe7c8..d01a129556 100644 --- a/pkg/kubectl/scale.go +++ b/pkg/kubectl/scale.go @@ -305,6 +305,9 @@ func (scaler *ReplicaSetScaler) Scale(namespace, name string, newSize uint, prec if err != nil { return err } + if rs.Initializers != nil { + return nil + } err = wait.Poll(waitForReplicas.Interval, waitForReplicas.Timeout, client.ReplicaSetHasDesiredReplicas(scaler.c, rs)) if err == wait.ErrWaitTimeout { @@ -373,6 +376,9 @@ func (scaler *StatefulSetScaler) Scale(namespace, name string, newSize uint, pre if err != nil { return err } + if job.Initializers != nil { + return nil + } err = wait.Poll(waitForReplicas.Interval, waitForReplicas.Timeout, client.StatefulSetHasDesiredReplicas(scaler.c, job)) if err == wait.ErrWaitTimeout { return fmt.Errorf("timed out waiting for %q to be synced", name)