From 62fa6f3d012aa2ab872942cbbf36e33ef9041098 Mon Sep 17 00:00:00 2001 From: Sushil Kumar Date: Wed, 17 May 2017 14:07:26 -0700 Subject: [PATCH 1/2] helm reset --force would clean a failed tiller deployment - [ ] Fixes https://github.com/kubernetes/helm/issues/2441 --- cmd/helm/reset.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/cmd/helm/reset.go b/cmd/helm/reset.go index b1efe35ed..56a216735 100644 --- a/cmd/helm/reset.go +++ b/cmd/helm/reset.go @@ -54,10 +54,15 @@ func newResetCmd(client helm.Interface, out io.Writer) *cobra.Command { } cmd := &cobra.Command{ - Use: "reset", - Short: "uninstalls Tiller from a cluster", - Long: resetDesc, - PersistentPreRunE: setupConnection, + Use: "reset", + Short: "uninstalls Tiller from a cluster", + Long: resetDesc, + PersistentPreRunE: func(cmd *cobra.Command, args []string) error { + if err := setupConnection(cmd, args); !d.force && err != nil { + return err + } + return nil + }, RunE: func(cmd *cobra.Command, args []string) error { if len(args) != 0 { return errors.New("This command does not accept arguments") @@ -72,7 +77,7 @@ func newResetCmd(client helm.Interface, out io.Writer) *cobra.Command { } f := cmd.Flags() - f.BoolVarP(&d.force, "force", "f", false, "forces Tiller uninstall even if there are releases installed") + f.BoolVarP(&d.force, "force", "f", false, "forces Tiller uninstall even if there are releases installed, or if tiller is not in ready state") f.BoolVar(&d.removeHelmHome, "remove-helm-home", false, "if set deletes $HELM_HOME") return cmd @@ -91,11 +96,11 @@ func (d *resetCmd) run() error { res, err := d.client.ListReleases( helm.ReleaseListStatuses([]release.Status_Code{release.Status_DEPLOYED}), ) - if err != nil { + if !d.force && err != nil { return prettyError(err) } - if len(res.Releases) > 0 && !d.force { + if !d.force && res != nil && len(res.Releases) > 0 { return fmt.Errorf("there are still %d deployed releases (Tip: use --force)", len(res.Releases)) } From 71c1fe2c2497326279aaf82f40df7b56697e4440 Mon Sep 17 00:00:00 2001 From: Sushil Kumar Date: Thu, 25 May 2017 10:25:45 -0700 Subject: [PATCH 2/2] Updated docs for reset changes --- docs/helm/helm_reset.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/helm/helm_reset.md b/docs/helm/helm_reset.md index f51da9f7d..2a15cd281 100644 --- a/docs/helm/helm_reset.md +++ b/docs/helm/helm_reset.md @@ -18,7 +18,7 @@ helm reset ### Options ``` - -f, --force forces Tiller uninstall even if there are releases installed + -f, --force forces Tiller uninstall even if there are releases installed, or if tiller is not in ready state --remove-helm-home if set deletes $HELM_HOME --tls enable TLS for request --tls-ca-cert string path to TLS CA certificate file (default "$HELM_HOME/ca.pem") @@ -40,4 +40,4 @@ helm reset ### SEE ALSO * [helm](helm.md) - The Helm package manager for Kubernetes. -###### Auto generated by spf13/cobra on 17-May-2017 +###### Auto generated by spf13/cobra on 25-May-2017