@@ -3,8 +3,10 @@ package cmd
33import (
44 "github.com/covexo/devspace/pkg/devspace/config/configutil"
55 helmClient "github.com/covexo/devspace/pkg/devspace/deploy/helm"
6+ deployKubectl "github.com/covexo/devspace/pkg/devspace/deploy/kubectl"
67 "github.com/covexo/devspace/pkg/devspace/kubectl"
78 "github.com/covexo/devspace/pkg/util/log"
9+ "k8s.io/client-go/kubernetes"
810
911 "github.com/spf13/cobra"
1012)
@@ -43,30 +45,72 @@ your project, use: devspace reset
4345// Run executes the down command logic
4446func (cmd * DownCmd ) Run (cobraCmd * cobra.Command , args []string ) {
4547 log .StartFileLogging ()
46- config := configutil .GetConfig ()
47-
48- releaseName := * config .DevSpace .Release .Name
4948 kubectl , err := kubectl .NewClient ()
50-
5149 if err != nil {
5250 log .Fatalf ("Unable to create new kubectl client: %s" , err .Error ())
5351 }
5452
55- client , err := helmClient .NewClient (kubectl , false )
53+ deleteDevSpace (kubectl )
54+ }
5655
57- if err != nil {
58- log .Fatalf ("Unable to initialize helm client: %s" , err .Error ())
59- }
56+ func deleteDevSpace (kubectl * kubernetes.Clientset ) {
57+ var err error
58+ var client * helmClient.ClientWrapper
59+
60+ config := configutil .GetConfig ()
61+
62+ if config .DevSpace .Deploy != nil {
63+ for _ , deployConfig := range * config .DevSpace .Deploy {
64+ // Delete kubectl engine
65+ if deployConfig .Engine != nil && deployConfig .Engine .Kubectl != nil {
66+ kubectlDeployConfig , err := deployKubectl .New (config , deployConfig )
67+ if err != nil {
68+ log .Warnf ("Unable to create kubectl deploy config: %v" , err )
69+ continue
70+ }
71+
72+ log .StartWait ("Deleting kubectl deployment" )
73+ err = kubectlDeployConfig .Delete ()
74+ log .StopWait ()
75+ if err != nil {
76+ log .Warnf ("Error deleting kubectl manifests: %v" , err )
77+ }
78+
79+ log .Donef ("Successfully deleted kubectl deployment" )
80+ } else {
81+ // Delete with helm engine
82+ defaultReleaseName := configutil .GetDefaultDevSpaceDefaultReleaseName (config )
83+
84+ releaseName := defaultReleaseName
85+ if deployConfig .Engine != nil && deployConfig .Engine .Helm != nil && deployConfig .Engine .Helm .Release != nil {
86+ releaseName = deployConfig .Engine .Helm .Release
87+ }
88+
89+ if client == nil {
90+ isDeployed := helmClient .IsTillerDeployed (kubectl )
91+ if isDeployed == false {
92+ continue
93+ }
94+
95+ client , err = helmClient .NewClient (kubectl , false )
96+ if err != nil {
97+ log .Warnf ("Unable to initialize helm client: %s" , err .Error ())
98+ continue
99+ }
100+ }
60101
61- log .StartWait ("Deleting release " + releaseName )
62- res , err := client .DeleteRelease (releaseName , true )
63- log .StopWait ()
102+ log .StartWait ("Deleting release " + * releaseName )
103+ res , err := client .DeleteRelease (* releaseName , true )
104+ log .StopWait ()
64105
65- if res != nil && res .Info != "" {
66- log .Donef ("Successfully deleted release %s: %s" , releaseName , res .Info )
67- } else if err != nil {
68- log .Donef ("Error deleting release %s: %s" , releaseName , err .Error ())
69- } else {
70- log .Donef ("Successfully deleted release %s" , releaseName )
106+ if res != nil && res .Info != "" {
107+ log .Donef ("Successfully deleted release %s: %s" , releaseName , res .Info )
108+ } else if err != nil {
109+ log .Warnf ("Error deleting release %s: %s" , releaseName , err .Error ())
110+ } else {
111+ log .Donef ("Successfully deleted release %s" , releaseName )
112+ }
113+ }
114+ }
71115 }
72116}
0 commit comments