Skip to content

Commit 7c0439b

Browse files
author
firgavin
committed
Add flag to skip checking resource when fully deleting app
1 parent e7d9e9f commit 7c0439b

File tree

5 files changed

+28
-9
lines changed

5 files changed

+28
-9
lines changed

pkg/kapp/app/interfaces.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ type App interface {
2424

2525
CreateOrUpdate(map[string]string, bool) error
2626
Exists() (bool, string, error)
27-
Delete() error
27+
Delete(checkResource bool) error
2828
Rename(string, string) error
2929
RenamePrevApp(string, map[string]string, bool) error
3030

pkg/kapp/app/labeled_app.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func (a *LabeledApp) UpdateUsedGVsAndGKs([]schema.GroupVersion, []schema.GroupKi
4747
func (a *LabeledApp) CreateOrUpdate(labels map[string]string, isDiffRun bool) error { return nil }
4848
func (a *LabeledApp) Exists() (bool, string, error) { return true, "", nil }
4949

50-
func (a *LabeledApp) Delete() error {
50+
func (a *LabeledApp) Delete(checkResource bool) error {
5151
labelSelector, err := a.LabelSelector()
5252
if err != nil {
5353
return err
@@ -59,11 +59,13 @@ func (a *LabeledApp) Delete() error {
5959
}
6060

6161
if len(rs) > 0 {
62-
var resourceNames []string
63-
for _, res := range rs {
64-
resourceNames = append(resourceNames, res.Description())
62+
if checkResource {
63+
var resourceNames []string
64+
for _, res := range rs {
65+
resourceNames = append(resourceNames, res.Description())
66+
}
67+
return fmt.Errorf("Expected all resources to be gone, but found: %s", strings.Join(resourceNames, ", "))
6568
}
66-
return fmt.Errorf("Expected all resources to be gone, but found: %s", strings.Join(resourceNames, ", "))
6769
}
6870

6971
return nil

pkg/kapp/app/recorded_app.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ func (a *RecordedApp) Exists() (bool, string, error) {
353353
return true, "", nil
354354
}
355355

356-
func (a *RecordedApp) Delete() error {
356+
func (a *RecordedApp) Delete(checkResource bool) error {
357357
app, err := a.labeledApp()
358358
if err != nil {
359359
return err
@@ -364,7 +364,7 @@ func (a *RecordedApp) Delete() error {
364364
return fmt.Errorf("Deleting app changes: %w", err)
365365
}
366366

367-
err = app.Delete()
367+
err = app.Delete(checkResource)
368368
if err != nil {
369369
return err
370370
}

pkg/kapp/cmd/app/delete.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ type DeleteOptions struct {
2929
ApplyFlags ApplyFlags
3030
ResourceTypesFlags ResourceTypesFlags
3131
PrevAppFlags PrevAppFlags
32+
DeleteFlags DeleteFlags
3233
}
3334

3435
type changesSummary struct {
@@ -56,6 +57,7 @@ func NewDeleteCmd(o *DeleteOptions, flagsFactory cmdcore.FlagsFactory) *cobra.Co
5657
o.ApplyFlags.SetWithDefaults("", ApplyFlagsDeleteDefaults, cmd)
5758
o.ResourceTypesFlags.Set(cmd)
5859
o.PrevAppFlags.Set(cmd)
60+
o.DeleteFlags.Set(cmd)
5961
return cmd
6062
}
6163

@@ -157,7 +159,7 @@ func (o *DeleteOptions) Run() error {
157159
return err
158160
}
159161
if shouldFullyDeleteApp {
160-
return app.Delete()
162+
return app.Delete(o.DeleteFlags.DisableCheckingResourceDeletion)
161163
}
162164
return nil
163165
})

pkg/kapp/cmd/app/delete_flags.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Copyright 2020 VMware, Inc.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package app
5+
6+
import "github.com/spf13/cobra"
7+
8+
type DeleteFlags struct {
9+
DisableCheckingResourceDeletion bool
10+
}
11+
12+
func (s *DeleteFlags) Set(cmd *cobra.Command) {
13+
cmd.Flags().BoolVar(&s.DisableCheckingResourceDeletion, "dangerous-disable-checking-resource-deletion",
14+
false, "Skip checking resource deletion when fully deleting app")
15+
}

0 commit comments

Comments
 (0)