diff --git a/pkg/state/state.go b/pkg/state/state.go index b1765b46..adb5eabd 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1138,6 +1138,14 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre selected = st.Releases } + if !opts.SkipResolve { + updated, err := st.ResolveDeps() + if err != nil { + return nil, []error{err} + } + *st = *updated + } + releases := releasesNeedCharts(selected) var prepareChartInfoMutex sync.Mutex @@ -1149,14 +1157,6 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre jobQueue := make(chan *ReleaseSpec, len(releases)) results := make(chan *chartPrepareResult, len(releases)) - if !opts.SkipResolve { - updated, err := st.ResolveDeps() - if err != nil { - return nil, []error{err} - } - *st = *updated - } - var builds []*chartPrepareResult st.scatterGather( diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/config.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/config.yaml new file mode 100644 index 00000000..d6dc37ea --- /dev/null +++ b/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/config.yaml @@ -0,0 +1,6 @@ +localChartRepoServer: + enabled: true + port: 18083 +chartifyTempDir: temp1 +helmfileArgs: +- template diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml new file mode 100644 index 00000000..9ee019a8 --- /dev/null +++ b/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml @@ -0,0 +1,28 @@ +repositories: +- name: myrepo + url: http://localhost:18083/ + +--- +lockFilePath: test-lock-file + +releases: +- name: raw + chart: myrepo/raw + strategicMergePatches: + - apiVersion: v1 + kind: ConfigMap + metadata: + name: foo + data: + foo: baz + values: + - templates: + - | + chartVersion: {{`{{ .Chart.Version }}`}} + apiVersion: v1 + kind: ConfigMap + metadata: + name: foo + data: + foo: bar + diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/output.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/output.yaml new file mode 100644 index 00000000..d5d7aa26 --- /dev/null +++ b/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/output.yaml @@ -0,0 +1,14 @@ +Adding repo myrepo http://localhost:18083/ +"myrepo" has been added to your repositories + +Templating release=raw, chart=$WD/temp1/raw/raw +--- +# Source: raw/templates/patched_resources.yaml +apiVersion: v1 +chartVersion: 0.0.1 +data: + foo: baz +kind: ConfigMap +metadata: + name: foo + diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/test-lock-file b/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/test-lock-file new file mode 100644 index 00000000..206ed0c4 --- /dev/null +++ b/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/test-lock-file @@ -0,0 +1,7 @@ +version: 0.0.0-dev +dependencies: + - name: raw + repository: http://localhost:18083/ + version: 0.0.1 +digest: sha256:5401817b653c4eeb186cbfbb8d77dda6b72f84a548fc9cd128cbd478d5b2e705 +generated: "2022-10-12T20:17:15.98786845+03:00"