@@ -34,9 +34,13 @@ type DeletionError struct {
3434 name string
3535}
3636
37- var (
37+ var deleteCmdOptions struct {
38+ kube struct {
39+ inCluster bool
40+ context string
41+ }
3842 revertTo string
39- )
43+ }
4044
4145// deleteCmd represents the status command
4246var deleteCmd = & cobra.Command {
@@ -50,27 +54,27 @@ var deleteCmd = &cobra.Command{
5054 },
5155 Run : func (cmd * cobra.Command , args []string ) {
5256 s := store .GetStore ()
57+ prepareLogger ()
58+ buildBasicStore ()
59+ extendStoreWithCodefershClient ()
60+ extendStoreWithKubeClient ()
5361 var errors []DeletionError
54- contextName := ""
55- kubeContextFlag := cmd .Flag ("kube-context-name" )
56- if kubeContextFlag != nil {
57- contextName = kubeContextFlag .Value .String ()
58- }
59- s .KubernetesAPI .InCluster = inCluster
62+ s .KubernetesAPI .InCluster = deleteCmdOptions .kube .inCluster
6063 for _ , name := range args {
6164 re , err := s .CodefreshAPI .Client .RuntimeEnvironments ().Get (name )
6265 errors = collectError (errors , err , name , "Get Runtime-Environment from Codefresh" )
6366
64- if revertTo != "" {
65- _ , err := s .CodefreshAPI .Client .RuntimeEnvironments ().Default (revertTo )
66- errors = collectError (errors , err , name , fmt .Sprintf ("Revert Runtime-Environment to: %s" , revertTo ))
67+ if deleteCmdOptions . revertTo != "" {
68+ _ , err := s .CodefreshAPI .Client .RuntimeEnvironments ().Default (deleteCmdOptions . revertTo )
69+ errors = collectError (errors , err , name , fmt .Sprintf ("Revert Runtime-Environment to: %s" , deleteCmdOptions . revertTo ))
6770 }
6871 deleted , err := s .CodefreshAPI .Client .RuntimeEnvironments ().Delete (name )
6972 errors = collectError (errors , err , name , "Delete Runtime-Environment from Codefresh" )
7073
7174 if deleted {
72- if contextName == "" {
73- contextName = re .RuntimeScheduler .Cluster .ClusterProvider .Selector
75+ contextName := re .RuntimeScheduler .Cluster .ClusterProvider .Selector
76+ if contextName != "" {
77+ contextName = deleteCmdOptions .kube .context
7478 }
7579 s .KubernetesAPI .ContextName = contextName
7680 s .KubernetesAPI .Namespace = re .RuntimeScheduler .Cluster .Namespace
@@ -83,6 +87,18 @@ var deleteCmd = &cobra.Command{
8387 })
8488 continue
8589 }
90+ if isUsingDefaultStorageClass (re .RuntimeScheduler .Pvcs .Dind .StorageClassName ) {
91+ err = runtimectl .GetOperator (runtimectl .VolumeProvisionerOperatorType ).Delete ()
92+ if err != nil {
93+ errors = append (errors , DeletionError {
94+ err : err ,
95+ name : name ,
96+ operation : "Delete volume provisioner related components" ,
97+ })
98+ continue
99+ }
100+ }
101+
86102 if re .Metadata .Agent {
87103 err = runtimectl .GetOperator (runtimectl .VenonaOperatorType ).Delete ()
88104 if err != nil {
@@ -94,6 +110,7 @@ var deleteCmd = &cobra.Command{
94110 continue
95111 }
96112 }
113+
97114 logrus .Infof ("Deleted %s" , name )
98115 }
99116
@@ -113,9 +130,9 @@ var deleteCmd = &cobra.Command{
113130
114131func init () {
115132 rootCmd .AddCommand (deleteCmd )
116- deleteCmd .Flags ().String ( "kube-context-name" , "" , "Set name to overwrite the context name saved in Codefresh" )
117- deleteCmd .Flags ().StringVar (& revertTo , "revert-to" , "" , "Set to the name of the runtime-environment to set as default" )
118- deleteCmd .Flags ().BoolVar (& inCluster , "in-cluster" , false , "Set flag if venona is been installed from inside a cluster" )
133+ deleteCmd .Flags ().StringVar ( & deleteCmdOptions . kube . context , "kube-context-name" , "" , "Set name to overwrite the context name saved in Codefresh" )
134+ deleteCmd .Flags ().StringVar (& deleteCmdOptions . revertTo , "revert-to" , "" , "Set to the name of the runtime-environment to set as default" )
135+ deleteCmd .Flags ().BoolVar (& deleteCmdOptions . kube . inCluster , "in-cluster" , false , "Set flag if venona is been installed from inside a cluster" )
119136}
120137
121138func collectError (errors []DeletionError , err error , reName string , op string ) []DeletionError {
0 commit comments