feat: respect helmfile.lock with ad-hoc kustimzation (#1244)

* Resolve dependencies before releases are created

Signed-off-by: vlpav030 <vpav.030@gmail.com>

* Add test

Signed-off-by: vlpav030 <vpav.030@gmail.com>

---------

Signed-off-by: vlpav030 <vpav.030@gmail.com>
This commit is contained in:
Vladan Pavlovic 2023-12-27 12:25:30 +01:00 committed by GitHub
parent ca15d4db56
commit 22c05f9ed9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 63 additions and 8 deletions

View File

@ -1138,6 +1138,14 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre
selected = st.Releases selected = st.Releases
} }
if !opts.SkipResolve {
updated, err := st.ResolveDeps()
if err != nil {
return nil, []error{err}
}
*st = *updated
}
releases := releasesNeedCharts(selected) releases := releasesNeedCharts(selected)
var prepareChartInfoMutex sync.Mutex var prepareChartInfoMutex sync.Mutex
@ -1149,14 +1157,6 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre
jobQueue := make(chan *ReleaseSpec, len(releases)) jobQueue := make(chan *ReleaseSpec, len(releases))
results := make(chan *chartPrepareResult, 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 var builds []*chartPrepareResult
st.scatterGather( st.scatterGather(

View File

@ -0,0 +1,6 @@
localChartRepoServer:
enabled: true
port: 18083
chartifyTempDir: temp1
helmfileArgs:
- template

View File

@ -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

View File

@ -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

View 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"