Enable helmfile-deps to limit helm-dep-up by selector (#1764)

Ref https://github.com/roboll/helmfile/issues/809#issuecomment-814423653

This is not what had been requested originally in #809 but anyway- This enables you to limit helm-dep-up run by helmfile-deps by selector. For example, `helmfile -l name=foo deps` should result in only the release named `foo` to be helm-dep-uped.
This commit is contained in:
Yusuke Kuoka 2021-04-09 09:49:57 +09:00 committed by GitHub
parent 2ff06a8abd
commit 74cd2bc147
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 1 deletions

View File

@ -2128,9 +2128,26 @@ func (st *HelmState) ResolveDeps() (*HelmState, error) {
// UpdateDeps wrapper for updating dependencies on the releases
func (st *HelmState) UpdateDeps(helm helmexec.Interface) []error {
var selected []ReleaseSpec
if len(st.Selectors) > 0 {
var err error
// This and releasesNeedCharts ensures that we run operations like helm-dep-build and prepare-hook calls only on
// releases that are (1) selected by the selectors and (2) to be installed.
selected, err = st.GetSelectedReleasesWithOverrides()
if err != nil {
return []error{err}
}
} else {
selected = st.Releases
}
releases := releasesNeedCharts(selected)
var errs []error
for _, release := range st.Releases {
for _, release := range releases {
if st.directoryExistsAt(release.Chart) {
if err := helm.UpdateDeps(release.Chart); err != nil {
errs = append(errs, err)