diff --git a/pkg/app/app.go b/pkg/app/app.go index 96fde0e5..a09b3047 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -960,13 +960,17 @@ func withDAG(templated *state.HelmState, helm helmexec.Interface, logger *zap.Su return false, []error{err} } - return withBatches(templated, batches, helm, logger, converge) + return withBatches(opts.Purpose, templated, batches, helm, logger, converge) } -func withBatches(templated *state.HelmState, batches [][]state.Release, helm helmexec.Interface, logger *zap.SugaredLogger, converge func(*state.HelmState, helmexec.Interface) (bool, []error)) (bool, []error) { +func withBatches(purpose string, templated *state.HelmState, batches [][]state.Release, helm helmexec.Interface, logger *zap.SugaredLogger, converge func(*state.HelmState, helmexec.Interface) (bool, []error)) (bool, []error) { numBatches := len(batches) - logger.Debugf("processing %d groups of releases in this order:\n%s", numBatches, printBatches(batches)) + if purpose == "" { + purpose = "processing" + } + + logger.Debugf("%s %d groups of releases in this order:\n%s", purpose, numBatches, printBatches(batches)) any := false @@ -983,7 +987,7 @@ func withBatches(templated *state.HelmState, batches [][]state.Release, helm hel releaseIds = append(releaseIds, state.ReleaseToID(&release)) } - logger.Debugf("processing releases in group %d/%d: %s", i+1, numBatches, strings.Join(releaseIds, ", ")) + logger.Debugf("%s releases in group %d/%d: %s", purpose, i+1, numBatches, strings.Join(releaseIds, ", ")) batchSt := *templated batchSt.Releases = targets @@ -1360,32 +1364,33 @@ Do you really want to apply? st.Releases = selectedAndNeededReleases if !interactive || interactive && r.askForConfirmation(confMsg) { + if _, preapplyErrors := withDAG(st, helm, a.Logger, state.PlanOptions{Purpose: "invoking preapply hooks for", Reverse: true, SelectedReleases: toApplyWithNeeds, SkipNeeds: true}, a.WrapWithoutSelector(func(subst *state.HelmState, helm helmexec.Interface) []error { + for _, r := range subst.Releases { + release := r + if _, err := st.TriggerPreapplyEvent(&release, "apply"); err != nil { + return []error{err} + } + } + + return nil + })); len(preapplyErrors) > 0 { + return true, false, preapplyErrors + } + r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...) // We deleted releases by traversing the DAG in reverse order if len(releasesToBeDeleted) > 0 { _, deletionErrs := withDAG(st, helm, a.Logger, state.PlanOptions{Reverse: true, SelectedReleases: toDelete, SkipNeeds: true}, a.WrapWithoutSelector(func(subst *state.HelmState, helm helmexec.Interface) []error { - var ( - rs []state.ReleaseSpec - preapplyErrors []error - ) + var rs []state.ReleaseSpec for _, r := range subst.Releases { release := r if r2, ok := releasesToBeDeleted[state.ReleaseToID(&release)]; ok { - if _, err := st.TriggerPreapplyEvent(&r2, "apply"); err != nil { - preapplyErrors = append(applyErrs, err) - continue - } - rs = append(rs, r2) } } - if len(preapplyErrors) > 0 { - return preapplyErrors - } - subst.Releases = rs return subst.DeleteReleasesForSync(&affectedReleases, helm, c.Concurrency()) @@ -1399,27 +1404,15 @@ Do you really want to apply? // We upgrade releases by traversing the DAG if len(releasesToBeUpdated) > 0 { _, updateErrs := withDAG(st, helm, a.Logger, state.PlanOptions{SelectedReleases: toUpdate, Reverse: false, SkipNeeds: true, IncludeTransitiveNeeds: c.IncludeTransitiveNeeds()}, a.WrapWithoutSelector(func(subst *state.HelmState, helm helmexec.Interface) []error { - var ( - rs []state.ReleaseSpec - preapplyErrors []error - ) + var rs []state.ReleaseSpec for _, r := range subst.Releases { release := r if r2, ok := releasesToBeUpdated[state.ReleaseToID(&release)]; ok { - if _, err := st.TriggerPreapplyEvent(&r2, "apply"); err != nil { - preapplyErrors = append(applyErrs, err) - continue - } - rs = append(rs, r2) } } - if len(preapplyErrors) > 0 { - return preapplyErrors - } - subst.Releases = rs syncOpts := &state.SyncOpts{ diff --git a/pkg/app/app_apply_hooks_test.go b/pkg/app/app_apply_hooks_test.go index 3fff1f86..dd29e7d4 100644 --- a/pkg/app/app_apply_hooks_test.go +++ b/pkg/app/app_apply_hooks_test.go @@ -165,7 +165,7 @@ func TestApply_hooks(t *testing.T) { t.Errorf("unexpected log:\nDIFF\n%s\nEOD", diff) } } else { - assertEqualsToSnapshot(t, "log", bs.String()) + assertLogEqualsToSnapshot(t, bs.String()) } } diff --git a/pkg/app/app_apply_nokubectx_test.go b/pkg/app/app_apply_nokubectx_test.go index c4526d28..43d17ca2 100644 --- a/pkg/app/app_apply_nokubectx_test.go +++ b/pkg/app/app_apply_nokubectx_test.go @@ -165,6 +165,8 @@ func TestApply_3(t *testing.T) { if exists { t.Errorf("unexpected log:\nDIFF\n%s\nEOD", diff) } + } else { + assertLogEqualsToSnapshot(t, bs.String()) } } @@ -218,89 +220,6 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - my-release (incubator/raw) UPDATED - -processing 2 groups of releases in this order: -GROUP RELEASES -1 default/external-secrets -2 default/my-release - -processing releases in group 1/2: default/external-secrets -processing releases in group 2/2: default/my-release - -UPDATED RELEASES: -NAME CHART VERSION -external-secrets incubator/raw 3.1.0 -my-release incubator/raw 3.1.0 - -changing working directory back to "/path/to" -`, }) }) @@ -350,85 +269,6 @@ releases: }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - -processing 1 groups of releases in this order: -GROUP RELEASES -1 default/external-secrets - -processing releases in group 1/1: default/external-secrets - -UPDATED RELEASES: -NAME CHART VERSION -external-secrets incubator/raw 3.1.0 - -changing working directory back to "/path/to" -`, }) }) @@ -485,93 +325,6 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - kubernetes-external-secrets (incubator/raw) UPDATED - my-release (incubator/raw) UPDATED - -processing 3 groups of releases in this order: -GROUP RELEASES -1 kube-system/kubernetes-external-secrets -2 default/external-secrets -3 default/my-release - -processing releases in group 1/3: kube-system/kubernetes-external-secrets -processing releases in group 2/3: default/external-secrets -processing releases in group 3/3: default/my-release - -UPDATED RELEASES: -NAME CHART VERSION -kubernetes-external-secrets incubator/raw 3.1.0 -external-secrets incubator/raw 3.1.0 -my-release incubator/raw 3.1.0 - -changing working directory back to "/path/to" -`, }) }) @@ -625,89 +378,6 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - my-release (incubator/raw) UPDATED - -processing 2 groups of releases in this order: -GROUP RELEASES -1 default/external-secrets -2 default/my-release - -processing releases in group 1/2: default/external-secrets -processing releases in group 2/2: default/my-release - -UPDATED RELEASES: -NAME CHART VERSION -external-secrets incubator/raw 3.1.0 -my-release incubator/raw 3.1.0 - -changing working directory back to "/path/to" -`, }) }) @@ -764,101 +434,6 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - kubernetes-external-secrets (incubator/raw) DELETED - my-release (incubator/raw) UPDATED - -processing 1 groups of releases in this order: -GROUP RELEASES -1 kube-system/kubernetes-external-secrets - -processing releases in group 1/1: kube-system/kubernetes-external-secrets -processing 2 groups of releases in this order: -GROUP RELEASES -1 default/external-secrets -2 default/my-release - -processing releases in group 1/2: default/external-secrets -processing releases in group 2/2: default/my-release - -UPDATED RELEASES: -NAME CHART VERSION -external-secrets incubator/raw 3.1.0 -my-release incubator/raw 3.1.0 - - -DELETED RELEASES: -NAME -kubernetes-external-secrets -changing working directory back to "/path/to" -`, }) }) @@ -913,91 +488,6 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - my-release (incubator/raw) UPDATED - -processing 2 groups of releases in this order: -GROUP RELEASES -1 default/external-secrets -2 default/my-release - -processing releases in group 1/2: default/external-secrets -processing releases in group 2/2: default/my-release - -UPDATED RELEASES: -NAME CHART VERSION -external-secrets incubator/raw 3.1.0 -my-release incubator/raw 3.1.0 - -changing working directory back to "/path/to" -`, }) }) diff --git a/pkg/app/app_apply_test.go b/pkg/app/app_apply_test.go index b927f9f0..5e9f6e81 100644 --- a/pkg/app/app_apply_test.go +++ b/pkg/app/app_apply_test.go @@ -166,7 +166,7 @@ func TestApply_2(t *testing.T) { t.Errorf("unexpected log:\nDIFF\n%s\nEOD", diff) } } else { - assertEqualsToSnapshot(t, "log", bs.String()) + assertLogEqualsToSnapshot(t, bs.String()) } } @@ -220,89 +220,6 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - my-release (incubator/raw) UPDATED - -processing 2 groups of releases in this order: -GROUP RELEASES -1 default/default/external-secrets -2 default/default/my-release - -processing releases in group 1/2: default/default/external-secrets -processing releases in group 2/2: default/default/my-release - -UPDATED RELEASES: -NAME CHART VERSION -external-secrets incubator/raw 3.1.0 -my-release incubator/raw 3.1.0 - -changing working directory back to "/path/to" -`, }) }) @@ -352,85 +269,6 @@ releases: }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - -processing 1 groups of releases in this order: -GROUP RELEASES -1 default/default/external-secrets - -processing releases in group 1/1: default/default/external-secrets - -UPDATED RELEASES: -NAME CHART VERSION -external-secrets incubator/raw 3.1.0 - -changing working directory back to "/path/to" -`, }) }) @@ -487,93 +325,6 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - kubernetes-external-secrets (incubator/raw) UPDATED - my-release (incubator/raw) UPDATED - -processing 3 groups of releases in this order: -GROUP RELEASES -1 default/kube-system/kubernetes-external-secrets -2 default/default/external-secrets -3 default/default/my-release - -processing releases in group 1/3: default/kube-system/kubernetes-external-secrets -processing releases in group 2/3: default/default/external-secrets -processing releases in group 3/3: default/default/my-release - -UPDATED RELEASES: -NAME CHART VERSION -kubernetes-external-secrets incubator/raw 3.1.0 -external-secrets incubator/raw 3.1.0 -my-release incubator/raw 3.1.0 - -changing working directory back to "/path/to" -`, }) }) @@ -627,89 +378,6 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - my-release (incubator/raw) UPDATED - -processing 2 groups of releases in this order: -GROUP RELEASES -1 default/default/external-secrets -2 default/default/my-release - -processing releases in group 1/2: default/default/external-secrets -processing releases in group 2/2: default/default/my-release - -UPDATED RELEASES: -NAME CHART VERSION -external-secrets incubator/raw 3.1.0 -my-release incubator/raw 3.1.0 - -changing working directory back to "/path/to" -`, }) }) @@ -766,101 +434,6 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - kubernetes-external-secrets (incubator/raw) DELETED - my-release (incubator/raw) UPDATED - -processing 1 groups of releases in this order: -GROUP RELEASES -1 default/kube-system/kubernetes-external-secrets - -processing releases in group 1/1: default/kube-system/kubernetes-external-secrets -processing 2 groups of releases in this order: -GROUP RELEASES -1 default/default/external-secrets -2 default/default/my-release - -processing releases in group 1/2: default/default/external-secrets -processing releases in group 2/2: default/default/my-release - -UPDATED RELEASES: -NAME CHART VERSION -external-secrets incubator/raw 3.1.0 -my-release incubator/raw 3.1.0 - - -DELETED RELEASES: -NAME -kubernetes-external-secrets -changing working directory back to "/path/to" -`, }) }) @@ -915,91 +488,6 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - my-release (incubator/raw) UPDATED - -processing 2 groups of releases in this order: -GROUP RELEASES -1 default/default/external-secrets -2 default/default/my-release - -processing releases in group 1/2: default/default/external-secrets -processing releases in group 2/2: default/default/my-release - -UPDATED RELEASES: -NAME CHART VERSION -external-secrets incubator/raw 3.1.0 -my-release incubator/raw 3.1.0 - -changing working directory back to "/path/to" -`, }) }) @@ -1053,85 +541,6 @@ serviceC 4 Fri Nov 1 08:40:07 2019 DEPLOYED chart-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: serviceA - 5: chart: my/chart - 6: needs: - 7: - serviceB - 8: - 9: - name: serviceB -10: chart: my/chart -11: needs: -12: - serviceC -13: -14: - name: serviceC -15: chart: my/chart -16: -17: - name: serviceD -18: chart: my/chart -19: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: serviceA - 5: chart: my/chart - 6: needs: - 7: - serviceB - 8: - 9: - name: serviceB -10: chart: my/chart -11: needs: -12: - serviceC -13: -14: - name: serviceC -15: chart: my/chart -16: -17: - name: serviceD -18: chart: my/chart -19: - -merged environment: &{default map[] map[]} -3 release(s) matching name=serviceA found in helmfile.yaml - -Affected releases are: - serviceA (my/chart) UPDATED - serviceB (my/chart) UPDATED - serviceC (my/chart) UPDATED - -processing 3 groups of releases in this order: -GROUP RELEASES -1 default//serviceC -2 default//serviceB -3 default//serviceA - -processing releases in group 1/3: default//serviceC -processing releases in group 2/3: default//serviceB -processing releases in group 3/3: default//serviceA - -UPDATED RELEASES: -NAME CHART VERSION -serviceC my/chart 3.1.0 -serviceB my/chart 3.1.0 -serviceA my/chart 3.1.0 - -changing working directory back to "/path/to" -`, }) }) diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index 56257c15..2d867b7a 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -3011,72 +3011,6 @@ baz 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart3-3.1.0 3.1.0 defau }, deleted: []exectest.Release{}, concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - -merged environment: &{default map[] map[]} -3 release(s) found in helmfile.yaml - -Affected releases are: - bar (stable/mychart2) UPDATED - baz (stable/mychart3) UPDATED - foo (stable/mychart1) UPDATED - -processing 2 groups of releases in this order: -GROUP RELEASES -1 default//baz, default//bar -2 default//foo - -processing releases in group 1/2: default//baz, default//bar -processing releases in group 2/2: default//foo -getting deployed release version failed: Failed to get the version for: mychart1 - -UPDATED RELEASES: -NAME CHART VERSION -baz stable/mychart3 3.1.0 -bar stable/mychart2 3.1.0 -foo stable/mychart1 - -changing working directory back to "/path/to" -`, }, // // install with upgrade and --skip-diff-on-install @@ -3121,72 +3055,6 @@ baz 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart3-3.1.0 3.1.0 defau }, deleted: []exectest.Release{}, concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - -merged environment: &{default map[] map[]} -3 release(s) found in helmfile.yaml - -Affected releases are: - bar (stable/mychart2) UPDATED - baz (stable/mychart3) UPDATED - foo (stable/mychart1) UPDATED - -processing 2 groups of releases in this order: -GROUP RELEASES -1 default//baz, default//bar -2 default//foo - -processing releases in group 1/2: default//baz, default//bar -processing releases in group 2/2: default//foo -getting deployed release version failed: Failed to get the version for: mychart1 - -UPDATED RELEASES: -NAME CHART VERSION -baz stable/mychart3 3.1.0 -bar stable/mychart2 3.1.0 -foo stable/mychart1 - -changing working directory back to "/path/to" -`, }, // // upgrades @@ -3399,67 +3267,6 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: namespace: ns2 - 5: tillerNamespace: tns2 - 6: needs: - 7: - tns1/foo - 8: - name: foo - 9: chart: stable/mychart1 -10: namespace: ns1 -11: tillerNamespace: tns1 -12: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: namespace: ns2 - 5: tillerNamespace: tns2 - 6: needs: - 7: - tns1/foo - 8: - name: foo - 9: chart: stable/mychart1 -10: namespace: ns1 -11: tillerNamespace: tns1 -12: - -merged environment: &{default map[] map[]} -2 release(s) found in helmfile.yaml - -Affected releases are: - bar (stable/mychart2) UPDATED - foo (stable/mychart1) UPDATED - -processing 2 groups of releases in this order: -GROUP RELEASES -1 default/tns1/foo -2 default/tns2/bar - -processing releases in group 1/2: default/tns1/foo -processing releases in group 2/2: default/tns2/bar - -UPDATED RELEASES: -NAME CHART VERSION -foo stable/mychart1 3.1.0 -bar stable/mychart2 3.1.0 - -changing working directory back to "/path/to" -`, }, // // deletes: deleting all releases in the correct order @@ -3724,89 +3531,6 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -Affected releases are: - external-secrets (incubator/raw) UPDATED - my-release (incubator/raw) UPDATED - -processing 2 groups of releases in this order: -GROUP RELEASES -1 default/default/external-secrets -2 default/default/my-release - -processing releases in group 1/2: default/default/external-secrets -processing releases in group 2/2: default/default/my-release - -UPDATED RELEASES: -NAME CHART VERSION -external-secrets incubator/raw 3.1.0 -my-release incubator/raw 3.1.0 - -changing working directory back to "/path/to" -`, }, { // see https://github.com/roboll/helmfile/issues/919#issuecomment-549831747 @@ -4353,7 +4077,7 @@ changing working directory back to "/path/to" t.Errorf("unexpected log for data defined %s:\nDIFF\n%s\nEOD", tc.loc, diff) } } else { - assertEqualsToSnapshot(t, "log", bs.String()) + assertLogEqualsToSnapshot(t, bs.String()) } }) } diff --git a/pkg/app/snapshot_test.go b/pkg/app/snapshot_test.go index b109f74e..b36ea6e1 100644 --- a/pkg/app/snapshot_test.go +++ b/pkg/app/snapshot_test.go @@ -10,6 +10,12 @@ import ( "github.com/google/go-cmp/cmp" ) +func assertLogEqualsToSnapshot(t *testing.T, data string) { + t.Helper() + + assertEqualsToSnapshot(t, "log", data) +} + func assertEqualsToSnapshot(t *testing.T, name string, data string) { type thisPkgLocator struct{} diff --git a/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log index fb2a598c..b5920210 100644 --- a/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log @@ -38,6 +38,13 @@ Affected releases are: bar (stable/mychart2) DELETED foo (stable/mychart1) UPDATED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default//bar +2 default//foo + +invoking preapply hooks for releases in group 1/2: default//bar +invoking preapply hooks for releases in group 2/2: default//foo processing 1 groups of releases in this order: GROUP RELEASES 1 default//bar diff --git a/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log index 759c97c6..58646152 100644 --- a/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log @@ -38,6 +38,13 @@ Affected releases are: bar (stable/mychart2) DELETED foo (stable/mychart1) UPDATED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default//foo +2 default//bar + +invoking preapply hooks for releases in group 1/2: default//foo +invoking preapply hooks for releases in group 2/2: default//bar processing 1 groups of releases in this order: GROUP RELEASES 1 default//bar diff --git a/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log index 6e283d18..a5c9aefc 100644 --- a/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log @@ -40,6 +40,13 @@ Affected releases are: bar (stable/mychart2) DELETED foo (stable/mychart1) DELETED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default//bar +2 default//foo + +invoking preapply hooks for releases in group 1/2: default//bar +invoking preapply hooks for releases in group 2/2: default//foo processing 2 groups of releases in this order: GROUP RELEASES 1 default//bar diff --git a/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log index fc2d2d79..79fd557b 100644 --- a/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log @@ -40,6 +40,13 @@ Affected releases are: bar (stable/mychart2) DELETED foo (stable/mychart1) DELETED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default//foo +2 default//bar + +invoking preapply hooks for releases in group 1/2: default//foo +invoking preapply hooks for releases in group 2/2: default//bar processing 2 groups of releases in this order: GROUP RELEASES 1 default//foo diff --git a/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log index cd549569..44cf1b57 100644 --- a/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log @@ -38,6 +38,13 @@ Affected releases are: bar (stable/mychart2) UPDATED foo (stable/mychart1) DELETED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default//bar +2 default//foo + +invoking preapply hooks for releases in group 1/2: default//bar +invoking preapply hooks for releases in group 2/2: default//foo processing 1 groups of releases in this order: GROUP RELEASES 1 default//foo diff --git a/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log index a5885a58..a03c04c3 100644 --- a/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log @@ -38,6 +38,13 @@ Affected releases are: bar (stable/mychart2) UPDATED foo (stable/mychart1) DELETED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default//foo +2 default//bar + +invoking preapply hooks for releases in group 1/2: default//foo +invoking preapply hooks for releases in group 2/2: default//bar processing 1 groups of releases in this order: GROUP RELEASES 1 default//foo diff --git a/pkg/app/testdata/testapply/helm2:_upgrade_when_tns2/bar_needs_tns1/foo/log b/pkg/app/testdata/testapply/helm2:_upgrade_when_tns2/bar_needs_tns1/foo/log new file mode 100644 index 00000000..8009ba64 --- /dev/null +++ b/pkg/app/testdata/testapply/helm2:_upgrade_when_tns2/bar_needs_tns1/foo/log @@ -0,0 +1,67 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: namespace: ns2 + 5: tillerNamespace: tns2 + 6: needs: + 7: - tns1/foo + 8: - name: foo + 9: chart: stable/mychart1 +10: namespace: ns1 +11: tillerNamespace: tns1 +12: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: namespace: ns2 + 5: tillerNamespace: tns2 + 6: needs: + 7: - tns1/foo + 8: - name: foo + 9: chart: stable/mychart1 +10: namespace: ns1 +11: tillerNamespace: tns1 +12: + +merged environment: &{default map[] map[]} +2 release(s) found in helmfile.yaml + +Affected releases are: + bar (stable/mychart2) UPDATED + foo (stable/mychart1) UPDATED + +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/tns2/bar +2 default/tns1/foo + +invoking preapply hooks for releases in group 1/2: default/tns2/bar +invoking preapply hooks for releases in group 2/2: default/tns1/foo +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/tns1/foo +2 default/tns2/bar + +processing releases in group 1/2: default/tns1/foo +processing releases in group 2/2: default/tns2/bar + +UPDATED RELEASES: +NAME CHART VERSION +foo stable/mychart1 3.1.0 +bar stable/mychart2 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/helm2_upgrade_when_tns1/foo_needs_tns2/bar/log b/pkg/app/testdata/testapply/helm2_upgrade_when_tns1/foo_needs_tns2/bar/log index 22ae35df..e954f517 100644 --- a/pkg/app/testdata/testapply/helm2_upgrade_when_tns1/foo_needs_tns2/bar/log +++ b/pkg/app/testdata/testapply/helm2_upgrade_when_tns1/foo_needs_tns2/bar/log @@ -44,6 +44,13 @@ Affected releases are: bar (stable/mychart2) UPDATED foo (stable/mychart1) UPDATED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/tns1/foo +2 default/tns2/bar + +invoking preapply hooks for releases in group 1/2: default/tns1/foo +invoking preapply hooks for releases in group 2/2: default/tns2/bar processing 2 groups of releases in this order: GROUP RELEASES 1 default/tns2/bar diff --git a/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log b/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log new file mode 100644 index 00000000..63c2b747 --- /dev/null +++ b/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log @@ -0,0 +1,72 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: stable/mychart3 + 4: disableValidationOnInstall: true + 5: - name: foo + 6: chart: stable/mychart1 + 7: disableValidationOnInstall: true + 8: needs: + 9: - bar +10: - name: bar +11: chart: stable/mychart2 +12: disableValidation: true +13: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: stable/mychart3 + 4: disableValidationOnInstall: true + 5: - name: foo + 6: chart: stable/mychart1 + 7: disableValidationOnInstall: true + 8: needs: + 9: - bar +10: - name: bar +11: chart: stable/mychart2 +12: disableValidation: true +13: + +merged environment: &{default map[] map[]} +3 release(s) found in helmfile.yaml + +Affected releases are: + bar (stable/mychart2) UPDATED + baz (stable/mychart3) UPDATED + foo (stable/mychart1) UPDATED + +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default//foo +2 default//baz, default//bar + +invoking preapply hooks for releases in group 1/2: default//foo +invoking preapply hooks for releases in group 2/2: default//baz, default//bar +processing 2 groups of releases in this order: +GROUP RELEASES +1 default//baz, default//bar +2 default//foo + +processing releases in group 1/2: default//baz, default//bar +processing releases in group 2/2: default//foo +getting deployed release version failed: Failed to get the version for: mychart1 + +UPDATED RELEASES: +NAME CHART VERSION +baz stable/mychart3 3.1.0 +bar stable/mychart2 3.1.0 +foo stable/mychart1 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log b/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log new file mode 100644 index 00000000..63c2b747 --- /dev/null +++ b/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log @@ -0,0 +1,72 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: stable/mychart3 + 4: disableValidationOnInstall: true + 5: - name: foo + 6: chart: stable/mychart1 + 7: disableValidationOnInstall: true + 8: needs: + 9: - bar +10: - name: bar +11: chart: stable/mychart2 +12: disableValidation: true +13: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: stable/mychart3 + 4: disableValidationOnInstall: true + 5: - name: foo + 6: chart: stable/mychart1 + 7: disableValidationOnInstall: true + 8: needs: + 9: - bar +10: - name: bar +11: chart: stable/mychart2 +12: disableValidation: true +13: + +merged environment: &{default map[] map[]} +3 release(s) found in helmfile.yaml + +Affected releases are: + bar (stable/mychart2) UPDATED + baz (stable/mychart3) UPDATED + foo (stable/mychart1) UPDATED + +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default//foo +2 default//baz, default//bar + +invoking preapply hooks for releases in group 1/2: default//foo +invoking preapply hooks for releases in group 2/2: default//baz, default//bar +processing 2 groups of releases in this order: +GROUP RELEASES +1 default//baz, default//bar +2 default//foo + +processing releases in group 1/2: default//baz, default//bar +processing releases in group 2/2: default//foo +getting deployed release version failed: Failed to get the version for: mychart1 + +UPDATED RELEASES: +NAME CHART VERSION +baz stable/mychart3 3.1.0 +bar stable/mychart2 3.1.0 +foo stable/mychart1 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/install/log b/pkg/app/testdata/testapply/install/log index c43ac830..431bbf69 100644 --- a/pkg/app/testdata/testapply/install/log +++ b/pkg/app/testdata/testapply/install/log @@ -41,6 +41,13 @@ Affected releases are: baz (stable/mychart3) UPDATED foo (stable/mychart1) UPDATED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default//foo +2 default//baz, default//bar + +invoking preapply hooks for releases in group 1/2: default//foo +invoking preapply hooks for releases in group 2/2: default//baz, default//bar processing 2 groups of releases in this order: GROUP RELEASES 1 default//baz, default//bar diff --git a/pkg/app/testdata/testapply/smoke/log b/pkg/app/testdata/testapply/smoke/log index 7a27d168..4f491886 100644 --- a/pkg/app/testdata/testapply/smoke/log +++ b/pkg/app/testdata/testapply/smoke/log @@ -135,6 +135,19 @@ Affected releases are: logging (charts/fluent-bit) UPDATED servicemesh (charts/istio) UPDATED +invoking preapply hooks for 5 groups of releases in this order: +GROUP RELEASES +1 default//frontend-v1, default//frontend-v2, default//frontend-v3 +2 default//backend-v1, default//backend-v2 +3 default//anotherbackend +4 default//database, default//servicemesh +5 default//logging, default//front-proxy + +invoking preapply hooks for releases in group 1/5: default//frontend-v1, default//frontend-v2, default//frontend-v3 +invoking preapply hooks for releases in group 2/5: default//backend-v1, default//backend-v2 +invoking preapply hooks for releases in group 3/5: default//anotherbackend +invoking preapply hooks for releases in group 4/5: default//database, default//servicemesh +invoking preapply hooks for releases in group 5/5: default//logging, default//front-proxy processing 2 groups of releases in this order: GROUP RELEASES 1 default//frontend-v1 diff --git a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log index 341fcf6a..4c800ebf 100644 --- a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log +++ b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log @@ -36,6 +36,13 @@ Affected releases are: bar (stable/mychart2) UPDATED foo (stable/mychart1) UPDATED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/testNamespace/bar +2 default/testNamespace/foo + +invoking preapply hooks for releases in group 1/2: default/testNamespace/bar +invoking preapply hooks for releases in group 2/2: default/testNamespace/foo processing 2 groups of releases in this order: GROUP RELEASES 1 default/testNamespace/foo diff --git a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log index 151fefaa..b3a32c95 100644 --- a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log @@ -36,6 +36,13 @@ Affected releases are: bar (stable/mychart2) UPDATED foo (stable/mychart1) UPDATED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default//bar +2 default//foo + +invoking preapply hooks for releases in group 1/2: default//bar +invoking preapply hooks for releases in group 2/2: default//foo processing 2 groups of releases in this order: GROUP RELEASES 1 default//foo diff --git a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log index eb1a7796..ef4a3f62 100644 --- a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log +++ b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log @@ -36,6 +36,13 @@ Affected releases are: bar (stable/mychart2) UPDATED foo (stable/mychart1) UPDATED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/testNamespace/foo +2 default/testNamespace/bar + +invoking preapply hooks for releases in group 1/2: default/testNamespace/foo +invoking preapply hooks for releases in group 2/2: default/testNamespace/bar processing 2 groups of releases in this order: GROUP RELEASES 1 default/testNamespace/bar diff --git a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log index e77cda0d..a8a99ba8 100644 --- a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log @@ -36,6 +36,13 @@ Affected releases are: bar (stable/mychart2) UPDATED foo (stable/mychart1) UPDATED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default//foo +2 default//bar + +invoking preapply hooks for releases in group 1/2: default//foo +invoking preapply hooks for releases in group 2/2: default//bar processing 2 groups of releases in this order: GROUP RELEASES 1 default//bar diff --git a/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log b/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log index cb2a3ea4..7e99abab 100644 --- a/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log +++ b/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log @@ -40,6 +40,13 @@ Affected releases are: bar (stable/mychart2) UPDATED foo (stable/mychart1) UPDATED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/ns1/foo +2 default/ns2/bar + +invoking preapply hooks for releases in group 1/2: default/ns1/foo +invoking preapply hooks for releases in group 2/2: default/ns2/bar processing 2 groups of releases in this order: GROUP RELEASES 1 default/ns2/bar diff --git a/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log b/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log index 721d8989..059c3d06 100644 --- a/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log +++ b/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log @@ -40,6 +40,13 @@ Affected releases are: bar (stable/mychart2) UPDATED foo (stable/mychart1) UPDATED +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/ns2/bar +2 default/ns1/foo + +invoking preapply hooks for releases in group 1/2: default/ns2/bar +invoking preapply hooks for releases in group 2/2: default/ns1/foo processing 2 groups of releases in this order: GROUP RELEASES 1 default/ns1/foo diff --git a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log new file mode 100644 index 00000000..3ca93c80 --- /dev/null +++ b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log @@ -0,0 +1,89 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + my-release (incubator/raw) UPDATED + +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/default/my-release +2 default/default/external-secrets + +invoking preapply hooks for releases in group 1/2: default/default/my-release +invoking preapply hooks for releases in group 2/2: default/default/external-secrets +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/default/external-secrets +2 default/default/my-release + +processing releases in group 1/2: default/default/external-secrets +processing releases in group 2/2: default/default/my-release + +UPDATED RELEASES: +NAME CHART VERSION +external-secrets incubator/raw 3.1.0 +my-release incubator/raw 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log b/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log index 24ad3af8..1caa2793 100644 --- a/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log +++ b/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log @@ -53,6 +53,11 @@ merged environment: &{default map[] map[]} Affected releases are: foo (incubator/raw) UPDATED +invoking preapply hooks for 1 groups of releases in this order: +GROUP RELEASES +1 default/default/foo + +invoking preapply hooks for releases in group 1/1: default/default/foo processing 1 groups of releases in this order: GROUP RELEASES 1 default/default/foo diff --git a/pkg/app/testdata/testapply_2/include-transitive-needs=true/log b/pkg/app/testdata/testapply_2/include-transitive-needs=true/log new file mode 100644 index 00000000..7e7bb8c2 --- /dev/null +++ b/pkg/app/testdata/testapply_2/include-transitive-needs=true/log @@ -0,0 +1,87 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: serviceA + 5: chart: my/chart + 6: needs: + 7: - serviceB + 8: + 9: - name: serviceB +10: chart: my/chart +11: needs: +12: - serviceC +13: +14: - name: serviceC +15: chart: my/chart +16: +17: - name: serviceD +18: chart: my/chart +19: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: serviceA + 5: chart: my/chart + 6: needs: + 7: - serviceB + 8: + 9: - name: serviceB +10: chart: my/chart +11: needs: +12: - serviceC +13: +14: - name: serviceC +15: chart: my/chart +16: +17: - name: serviceD +18: chart: my/chart +19: + +merged environment: &{default map[] map[]} +3 release(s) matching name=serviceA found in helmfile.yaml + +Affected releases are: + serviceA (my/chart) UPDATED + serviceB (my/chart) UPDATED + serviceC (my/chart) UPDATED + +invoking preapply hooks for 3 groups of releases in this order: +GROUP RELEASES +1 default//serviceA +2 default//serviceB +3 default//serviceC + +invoking preapply hooks for releases in group 1/3: default//serviceA +invoking preapply hooks for releases in group 2/3: default//serviceB +invoking preapply hooks for releases in group 3/3: default//serviceC +processing 3 groups of releases in this order: +GROUP RELEASES +1 default//serviceC +2 default//serviceB +3 default//serviceA + +processing releases in group 1/3: default//serviceC +processing releases in group 2/3: default//serviceB +processing releases in group 3/3: default//serviceA + +UPDATED RELEASES: +NAME CHART VERSION +serviceC my/chart 3.1.0 +serviceB my/chart 3.1.0 +serviceA my/chart 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log b/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log index 21dfd3f8..31ee4bbc 100644 --- a/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log +++ b/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log @@ -57,6 +57,11 @@ merged environment: &{default map[] map[]} Affected releases are: foo (incubator/raw) UPDATED +invoking preapply hooks for 1 groups of releases in this order: +GROUP RELEASES +1 default/default/foo + +invoking preapply hooks for releases in group 1/1: default/default/foo processing 1 groups of releases in this order: GROUP RELEASES 1 default/default/foo diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log new file mode 100644 index 00000000..acb843a9 --- /dev/null +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log @@ -0,0 +1,95 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + kubernetes-external-secrets (incubator/raw) UPDATED + my-release (incubator/raw) UPDATED + +invoking preapply hooks for 3 groups of releases in this order: +GROUP RELEASES +1 default/default/my-release +2 default/default/external-secrets +3 default/kube-system/kubernetes-external-secrets + +invoking preapply hooks for releases in group 1/3: default/default/my-release +invoking preapply hooks for releases in group 2/3: default/default/external-secrets +invoking preapply hooks for releases in group 3/3: default/kube-system/kubernetes-external-secrets +processing 3 groups of releases in this order: +GROUP RELEASES +1 default/kube-system/kubernetes-external-secrets +2 default/default/external-secrets +3 default/default/my-release + +processing releases in group 1/3: default/kube-system/kubernetes-external-secrets +processing releases in group 2/3: default/default/external-secrets +processing releases in group 3/3: default/default/my-release + +UPDATED RELEASES: +NAME CHART VERSION +kubernetes-external-secrets incubator/raw 3.1.0 +external-secrets incubator/raw 3.1.0 +my-release incubator/raw 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log new file mode 100644 index 00000000..9944d926 --- /dev/null +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log @@ -0,0 +1,91 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + my-release (incubator/raw) UPDATED + +invoking preapply hooks for 3 groups of releases in this order: +GROUP RELEASES +1 default/default/my-release +2 default/default/external-secrets +3 default/kube-system/kubernetes-external-secrets + +invoking preapply hooks for releases in group 1/3: default/default/my-release +invoking preapply hooks for releases in group 2/3: default/default/external-secrets +invoking preapply hooks for releases in group 3/3: default/kube-system/kubernetes-external-secrets +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/default/external-secrets +2 default/default/my-release + +processing releases in group 1/2: default/default/external-secrets +processing releases in group 2/2: default/default/my-release + +UPDATED RELEASES: +NAME CHART VERSION +external-secrets incubator/raw 3.1.0 +my-release incubator/raw 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log new file mode 100644 index 00000000..4a940be8 --- /dev/null +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log @@ -0,0 +1,103 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + kubernetes-external-secrets (incubator/raw) DELETED + my-release (incubator/raw) UPDATED + +invoking preapply hooks for 3 groups of releases in this order: +GROUP RELEASES +1 default/default/my-release +2 default/default/external-secrets +3 default/kube-system/kubernetes-external-secrets + +invoking preapply hooks for releases in group 1/3: default/default/my-release +invoking preapply hooks for releases in group 2/3: default/default/external-secrets +invoking preapply hooks for releases in group 3/3: default/kube-system/kubernetes-external-secrets +processing 1 groups of releases in this order: +GROUP RELEASES +1 default/kube-system/kubernetes-external-secrets + +processing releases in group 1/1: default/kube-system/kubernetes-external-secrets +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/default/external-secrets +2 default/default/my-release + +processing releases in group 1/2: default/default/external-secrets +processing releases in group 2/2: default/default/my-release + +UPDATED RELEASES: +NAME CHART VERSION +external-secrets incubator/raw 3.1.0 +my-release incubator/raw 3.1.0 + + +DELETED RELEASES: +NAME +kubernetes-external-secrets +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log new file mode 100644 index 00000000..809c27b7 --- /dev/null +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log @@ -0,0 +1,93 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + my-release (incubator/raw) UPDATED + +invoking preapply hooks for 3 groups of releases in this order: +GROUP RELEASES +1 default/default/my-release +2 default/default/external-secrets +3 default/kube-system/kubernetes-external-secrets + +invoking preapply hooks for releases in group 1/3: default/default/my-release +invoking preapply hooks for releases in group 2/3: default/default/external-secrets +invoking preapply hooks for releases in group 3/3: default/kube-system/kubernetes-external-secrets +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/default/external-secrets +2 default/default/my-release + +processing releases in group 1/2: default/default/external-secrets +processing releases in group 2/2: default/default/my-release + +UPDATED RELEASES: +NAME CHART VERSION +external-secrets incubator/raw 3.1.0 +my-release incubator/raw 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_2/skip-needs=true/log b/pkg/app/testdata/testapply_2/skip-needs=true/log new file mode 100644 index 00000000..3ca93c80 --- /dev/null +++ b/pkg/app/testdata/testapply_2/skip-needs=true/log @@ -0,0 +1,89 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + my-release (incubator/raw) UPDATED + +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/default/my-release +2 default/default/external-secrets + +invoking preapply hooks for releases in group 1/2: default/default/my-release +invoking preapply hooks for releases in group 2/2: default/default/external-secrets +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/default/external-secrets +2 default/default/my-release + +processing releases in group 1/2: default/default/external-secrets +processing releases in group 2/2: default/default/my-release + +UPDATED RELEASES: +NAME CHART VERSION +external-secrets incubator/raw 3.1.0 +my-release incubator/raw 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log b/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log new file mode 100644 index 00000000..5aef569a --- /dev/null +++ b/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log @@ -0,0 +1,85 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/default/my-release +2 default/default/external-secrets + +invoking preapply hooks for releases in group 1/2: default/default/my-release +invoking preapply hooks for releases in group 2/2: default/default/external-secrets +processing 1 groups of releases in this order: +GROUP RELEASES +1 default/default/external-secrets + +processing releases in group 1/1: default/default/external-secrets + +UPDATED RELEASES: +NAME CHART VERSION +external-secrets incubator/raw 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log new file mode 100644 index 00000000..2c4ec014 --- /dev/null +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log @@ -0,0 +1,95 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + kubernetes-external-secrets (incubator/raw) UPDATED + my-release (incubator/raw) UPDATED + +invoking preapply hooks for 3 groups of releases in this order: +GROUP RELEASES +1 default/my-release +2 default/external-secrets +3 kube-system/kubernetes-external-secrets + +invoking preapply hooks for releases in group 1/3: default/my-release +invoking preapply hooks for releases in group 2/3: default/external-secrets +invoking preapply hooks for releases in group 3/3: kube-system/kubernetes-external-secrets +processing 3 groups of releases in this order: +GROUP RELEASES +1 kube-system/kubernetes-external-secrets +2 default/external-secrets +3 default/my-release + +processing releases in group 1/3: kube-system/kubernetes-external-secrets +processing releases in group 2/3: default/external-secrets +processing releases in group 3/3: default/my-release + +UPDATED RELEASES: +NAME CHART VERSION +kubernetes-external-secrets incubator/raw 3.1.0 +external-secrets incubator/raw 3.1.0 +my-release incubator/raw 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log new file mode 100644 index 00000000..12f96fcf --- /dev/null +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log @@ -0,0 +1,91 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + my-release (incubator/raw) UPDATED + +invoking preapply hooks for 3 groups of releases in this order: +GROUP RELEASES +1 default/my-release +2 default/external-secrets +3 kube-system/kubernetes-external-secrets + +invoking preapply hooks for releases in group 1/3: default/my-release +invoking preapply hooks for releases in group 2/3: default/external-secrets +invoking preapply hooks for releases in group 3/3: kube-system/kubernetes-external-secrets +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/external-secrets +2 default/my-release + +processing releases in group 1/2: default/external-secrets +processing releases in group 2/2: default/my-release + +UPDATED RELEASES: +NAME CHART VERSION +external-secrets incubator/raw 3.1.0 +my-release incubator/raw 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log new file mode 100644 index 00000000..98cfd27e --- /dev/null +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log @@ -0,0 +1,103 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + kubernetes-external-secrets (incubator/raw) DELETED + my-release (incubator/raw) UPDATED + +invoking preapply hooks for 3 groups of releases in this order: +GROUP RELEASES +1 default/my-release +2 default/external-secrets +3 kube-system/kubernetes-external-secrets + +invoking preapply hooks for releases in group 1/3: default/my-release +invoking preapply hooks for releases in group 2/3: default/external-secrets +invoking preapply hooks for releases in group 3/3: kube-system/kubernetes-external-secrets +processing 1 groups of releases in this order: +GROUP RELEASES +1 kube-system/kubernetes-external-secrets + +processing releases in group 1/1: kube-system/kubernetes-external-secrets +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/external-secrets +2 default/my-release + +processing releases in group 1/2: default/external-secrets +processing releases in group 2/2: default/my-release + +UPDATED RELEASES: +NAME CHART VERSION +external-secrets incubator/raw 3.1.0 +my-release incubator/raw 3.1.0 + + +DELETED RELEASES: +NAME +kubernetes-external-secrets +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log new file mode 100644 index 00000000..8c7a0433 --- /dev/null +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log @@ -0,0 +1,93 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + my-release (incubator/raw) UPDATED + +invoking preapply hooks for 3 groups of releases in this order: +GROUP RELEASES +1 default/my-release +2 default/external-secrets +3 kube-system/kubernetes-external-secrets + +invoking preapply hooks for releases in group 1/3: default/my-release +invoking preapply hooks for releases in group 2/3: default/external-secrets +invoking preapply hooks for releases in group 3/3: kube-system/kubernetes-external-secrets +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/external-secrets +2 default/my-release + +processing releases in group 1/2: default/external-secrets +processing releases in group 2/2: default/my-release + +UPDATED RELEASES: +NAME CHART VERSION +external-secrets incubator/raw 3.1.0 +my-release incubator/raw 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_3/skip-needs=true/log b/pkg/app/testdata/testapply_3/skip-needs=true/log new file mode 100644 index 00000000..b1bb1187 --- /dev/null +++ b/pkg/app/testdata/testapply_3/skip-needs=true/log @@ -0,0 +1,89 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + my-release (incubator/raw) UPDATED + +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/my-release +2 default/external-secrets + +invoking preapply hooks for releases in group 1/2: default/my-release +invoking preapply hooks for releases in group 2/2: default/external-secrets +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/external-secrets +2 default/my-release + +processing releases in group 1/2: default/external-secrets +processing releases in group 2/2: default/my-release + +UPDATED RELEASES: +NAME CHART VERSION +external-secrets incubator/raw 3.1.0 +my-release incubator/raw 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log b/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log new file mode 100644 index 00000000..97dc3aff --- /dev/null +++ b/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log @@ -0,0 +1,85 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +Affected releases are: + external-secrets (incubator/raw) UPDATED + +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/my-release +2 default/external-secrets + +invoking preapply hooks for releases in group 1/2: default/my-release +invoking preapply hooks for releases in group 2/2: default/external-secrets +processing 1 groups of releases in this order: +GROUP RELEASES +1 default/external-secrets + +processing releases in group 1/1: default/external-secrets + +UPDATED RELEASES: +NAME CHART VERSION +external-secrets incubator/raw 3.1.0 + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_hooks/hooks_are_not_run_on_alreadyd_uninstalled_release/log b/pkg/app/testdata/testapply_hooks/hooks_are_not_run_on_alreadyd_uninstalled_release/log index ac333ffe..75c88b6b 100644 --- a/pkg/app/testdata/testapply_hooks/hooks_are_not_run_on_alreadyd_uninstalled_release/log +++ b/pkg/app/testdata/testapply_hooks/hooks_are_not_run_on_alreadyd_uninstalled_release/log @@ -5,6 +5,9 @@ hook[prepare] logs | hook[preapply] logs | foo hook[preapply] logs | +hook[preapply] logs | bar +hook[preapply] logs | + hook[presync] logs | foo hook[presync] logs | diff --git a/pkg/app/testdata/testapply_hooks/hooks_are_run_on_to-be-uninstalled_release/log b/pkg/app/testdata/testapply_hooks/hooks_are_run_on_to-be-uninstalled_release/log index c79da665..0f285254 100644 --- a/pkg/app/testdata/testapply_hooks/hooks_are_run_on_to-be-uninstalled_release/log +++ b/pkg/app/testdata/testapply_hooks/hooks_are_run_on_to-be-uninstalled_release/log @@ -2,15 +2,15 @@ hook[prepare] logs | foo hook[prepare] logs | +hook[preapply] logs | foo +hook[preapply] logs | + hook[preapply] logs | bar hook[preapply] logs | hook[presync] logs | bar hook[presync] logs | -hook[preapply] logs | foo -hook[preapply] logs | - hook[presync] logs | foo hook[presync] logs | diff --git a/pkg/state/state_run.go b/pkg/state/state_run.go index 0500a1e7..3a89197f 100644 --- a/pkg/state/state_run.go +++ b/pkg/state/state_run.go @@ -100,6 +100,7 @@ func (st *HelmState) iterateOnReleases(helm helmexec.Interface, concurrency int, } type PlanOptions struct { + Purpose string Reverse bool IncludeNeeds bool IncludeTransitiveNeeds bool