parent
1831d3375f
commit
1bde201eae
10
main.go
10
main.go
|
|
@ -322,6 +322,11 @@ func main() {
|
||||||
Name: "delete",
|
Name: "delete",
|
||||||
Usage: "DEPRECATED: delete releases from state file (helm delete)",
|
Usage: "DEPRECATED: delete releases from state file (helm delete)",
|
||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
|
cli.IntFlag{
|
||||||
|
Name: "concurrency",
|
||||||
|
Value: 0,
|
||||||
|
Usage: "maximum number of concurrent helm processes to run, 0 is unlimited",
|
||||||
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "args",
|
Name: "args",
|
||||||
Value: "",
|
Value: "",
|
||||||
|
|
@ -340,6 +345,11 @@ func main() {
|
||||||
Name: "destroy",
|
Name: "destroy",
|
||||||
Usage: "deletes and then purges releases",
|
Usage: "deletes and then purges releases",
|
||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
|
cli.IntFlag{
|
||||||
|
Name: "concurrency",
|
||||||
|
Value: 0,
|
||||||
|
Usage: "maximum number of concurrent helm processes to run, 0 is unlimited",
|
||||||
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "args",
|
Name: "args",
|
||||||
Value: "",
|
Value: "",
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,7 @@ type DeleteConfigProvider interface {
|
||||||
|
|
||||||
interactive
|
interactive
|
||||||
loggingConfig
|
loggingConfig
|
||||||
|
concurrencyConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type DestroyConfigProvider interface {
|
type DestroyConfigProvider interface {
|
||||||
|
|
@ -82,6 +83,7 @@ type DestroyConfigProvider interface {
|
||||||
|
|
||||||
interactive
|
interactive
|
||||||
loggingConfig
|
loggingConfig
|
||||||
|
concurrencyConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type TestConfigProvider interface {
|
type TestConfigProvider interface {
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ Do you really want to delete?
|
||||||
if !interactive || interactive && r.askForConfirmation(msg) {
|
if !interactive || interactive && r.askForConfirmation(msg) {
|
||||||
r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...)
|
r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...)
|
||||||
|
|
||||||
errs = r.state.DeleteReleases(&affectedReleases, r.helm, purge)
|
errs = r.state.DeleteReleases(&affectedReleases, r.helm, c.Concurrency(), purge)
|
||||||
}
|
}
|
||||||
affectedReleases.DisplayAffectedReleases(c.Logger())
|
affectedReleases.DisplayAffectedReleases(c.Logger())
|
||||||
return errs
|
return errs
|
||||||
|
|
@ -109,7 +109,7 @@ Do you really want to delete?
|
||||||
if !interactive || interactive && r.askForConfirmation(msg) {
|
if !interactive || interactive && r.askForConfirmation(msg) {
|
||||||
r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...)
|
r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...)
|
||||||
|
|
||||||
errs = r.state.DeleteReleases(&affectedReleases, r.helm, true)
|
errs = r.state.DeleteReleases(&affectedReleases, r.helm, c.Concurrency(), true)
|
||||||
}
|
}
|
||||||
affectedReleases.DisplayAffectedReleases(c.Logger())
|
affectedReleases.DisplayAffectedReleases(c.Logger())
|
||||||
return errs
|
return errs
|
||||||
|
|
|
||||||
|
|
@ -845,8 +845,8 @@ func (st *HelmState) ReleaseStatuses(helm helmexec.Interface, workerLimit int) [
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteReleases wrapper for executing helm delete on the releases
|
// DeleteReleases wrapper for executing helm delete on the releases
|
||||||
func (st *HelmState) DeleteReleases(affectedReleases *AffectedReleases, helm helmexec.Interface, purge bool) []error {
|
func (st *HelmState) DeleteReleases(affectedReleases *AffectedReleases, helm helmexec.Interface, concurrency int, purge bool) []error {
|
||||||
return st.scatterGatherReleases(helm, len(st.Releases), func(release ReleaseSpec, workerIndex int) error {
|
return st.scatterGatherReleases(helm, concurrency, func(release ReleaseSpec, workerIndex int) error {
|
||||||
if !release.Desired() {
|
if !release.Desired() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2073,7 +2073,7 @@ func TestHelmState_Delete(t *testing.T) {
|
||||||
helm.lists[listKey{filter: "^" + name + "$", flags: tt.flags}] = name
|
helm.lists[listKey{filter: "^" + name + "$", flags: tt.flags}] = name
|
||||||
}
|
}
|
||||||
affectedReleases := AffectedReleases{}
|
affectedReleases := AffectedReleases{}
|
||||||
errs := state.DeleteReleases(&affectedReleases, helm, tt.purge)
|
errs := state.DeleteReleases(&affectedReleases, helm, 1, tt.purge)
|
||||||
if errs != nil {
|
if errs != nil {
|
||||||
if !tt.wantErr || len(affectedReleases.Failed) != 1 || affectedReleases.Failed[0].Name != release.Name {
|
if !tt.wantErr || len(affectedReleases.Failed) != 1 || affectedReleases.Failed[0].Name != release.Name {
|
||||||
t.Errorf("DeleteReleases() for %s error = %v, wantErr %v", tt.name, errs, tt.wantErr)
|
t.Errorf("DeleteReleases() for %s error = %v, wantErr %v", tt.name, errs, tt.wantErr)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue