From 4ae56074d5cd575c1c64a2622c433ff3ff4b71c1 Mon Sep 17 00:00:00 2001 From: yxxhero Date: Tue, 4 Feb 2025 15:37:40 +0800 Subject: [PATCH] fix tests Signed-off-by: yxxhero --- pkg/app/app_test.go | 2 + pkg/app/diff_test.go | 172 +----------------- .../non-existent_release_in_needs | 8 + .../upgrades_with_bad_selector | 33 ++++ ...with_good_selector_with_--skip-needs=false | 34 ++++ .../log | 40 +--- pkg/app/testdata/testdeps/smoke/log | 7 + .../testreadfromyaml_rendertemplatelog/log | 10 + pkg/app/two_pass_renderer_test.go | 4 +- 9 files changed, 101 insertions(+), 209 deletions(-) create mode 100644 pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs create mode 100644 pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector create mode 100644 pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false create mode 100644 pkg/app/testdata/testdeps/smoke/log create mode 100644 pkg/app/testdata/testreadfromyaml_rendertemplatelog/log diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index 7960c21f..5dd421a8 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -829,6 +829,7 @@ environments: default: values: - ns: INLINE_NS +--- releases: - name: bar chart: stable/grafana @@ -839,6 +840,7 @@ environments: default: values: - ns: INLINE_NS +--- releases: - name: baz chart: stable/envoy diff --git a/pkg/app/diff_test.go b/pkg/app/diff_test.go index 8ed72f04..3ee292cb 100644 --- a/pkg/app/diff_test.go +++ b/pkg/app/diff_test.go @@ -1006,74 +1006,7 @@ releases: upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - error: `in ./helmfile.yaml: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, - 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 - -err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies -changing working directory back to "/path/to" -`, + error: `in ./helmfile.yaml.gotmpl: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, }, { // see https://github.com/roboll/helmfile/issues/919#issuecomment-549831747 @@ -1112,72 +1045,6 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // 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[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml - -changing working directory back to "/path/to" -`, }, // // error cases @@ -1208,43 +1075,6 @@ releases: deleted: []exectest.Release{}, concurrency: 1, error: `in ./helmfile.yaml: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, - 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: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -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: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -merged environment: &{default map[] map[]} -1 release(s) matching name=foo found in helmfile.yaml - -err: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies -changing working directory back to "/path/to" -`, }, { name: "non-existent release in needs", diff --git a/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs b/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs new file mode 100644 index 00000000..34aaed69 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs @@ -0,0 +1,8 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs +2 release(s) found in helmfile.yaml + +err: release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector b/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector new file mode 100644 index 00000000..8e3e99cf --- /dev/null +++ b/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector @@ -0,0 +1,33 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.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[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false new file mode 100644 index 00000000..3be41c57 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false @@ -0,0 +1,34 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.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.gotmpl + +err: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log index b286816b..f29aa140 100644 --- a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log +++ b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" 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": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testdeps/smoke/log b/pkg/app/testdata/testdeps/smoke/log new file mode 100644 index 00000000..52b88928 --- /dev/null +++ b/pkg/app/testdata/testdeps/smoke/log @@ -0,0 +1,7 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +There are no repositories defined in your helmfile.yaml. +This means helmfile cannot update your dependencies or create a lock file. +See https://github.com/roboll/helmfile/issues/878 for more information. +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log b/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log new file mode 100644 index 00000000..db8157f1 --- /dev/null +++ b/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log @@ -0,0 +1,10 @@ +rendering starting for "": inherited=&{default map[] map[]}, overrode= +rendering result of "": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: + 6: + diff --git a/pkg/app/two_pass_renderer_test.go b/pkg/app/two_pass_renderer_test.go index c209c78a..aa5e7c94 100644 --- a/pkg/app/two_pass_renderer_test.go +++ b/pkg/app/two_pass_renderer_test.go @@ -220,8 +220,8 @@ releases: `) files := map[string]string{ - "/path/to/nonIgnoredFile": `release-a`, - "/path/to/values.yaml.gotmpl": defaultValuesYamlGotmpl, + "/path/to/nonIgnoredFile": `release-a`, + "/path/to/values.yaml": defaultValuesYamlGotmpl, } r, _, _ := makeLoader(files, "staging")