From 8aa524cd93c68031951cde1275fad1c96b74aa05 Mon Sep 17 00:00:00 2001 From: Cyril Jouve Date: Tue, 26 Mar 2024 00:45:39 +0100 Subject: [PATCH] skip helm dep up for kustomizations (#1424) skip helm dep up deps for kustomizations Signed-off-by: Cyril Jouve --- pkg/state/state.go | 8 +++++--- test/integration/run.sh | 1 + .../test-cases/deps-kustomization-i-1402.sh | 9 +++++++++ .../deps-kustomization-i-1402/input/helmfile.yaml | 9 +++++++++ .../input/test/kustomization.yaml | 2 ++ .../deps-kustomization-i-1402/input/test/test.yml | 10 ++++++++++ 6 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 test/integration/test-cases/deps-kustomization-i-1402.sh create mode 100644 test/integration/test-cases/deps-kustomization-i-1402/input/helmfile.yaml create mode 100644 test/integration/test-cases/deps-kustomization-i-1402/input/test/kustomization.yaml create mode 100644 test/integration/test-cases/deps-kustomization-i-1402/input/test/test.yml diff --git a/pkg/state/state.go b/pkg/state/state.go index 8f7006a5..6829def0 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -2465,12 +2465,14 @@ func (st *HelmState) UpdateDeps(helm helmexec.Interface, includeTransitiveNeeds var errs []error for _, release := range releases { - if st.fs.DirectoryExistsAt(release.ChartPathOrName()) { + if !st.fs.DirectoryExistsAt(release.ChartPathOrName()) { + st.logger.Debugf("skipped updating dependencies for remote chart %s", release.Chart) + } else if !st.fs.FileExistsAt(filepath.Join(release.ChartPathOrName(), "Chart.yaml")) { + st.logger.Debugf("skipped updating dependencies for %s as it does not have a Chart.yaml", release.Chart) + } else { if err := helm.UpdateDeps(release.ChartPathOrName()); err != nil { errs = append(errs, err) } - } else { - st.logger.Debugf("skipped updating dependencies for remote chart %s", release.Chart) } } diff --git a/test/integration/run.sh b/test/integration/run.sh index 893bd39c..655f6049 100755 --- a/test/integration/run.sh +++ b/test/integration/run.sh @@ -93,6 +93,7 @@ ${kubectl} create namespace ${test_ns} || fail "Could not create namespace ${tes . ${dir}/test-cases/postrender.sh . ${dir}/test-cases/chartify.sh . ${dir}/test-cases/deps-mr-1011.sh +. ${dir}/test-cases/deps-kustomization-i-1402.sh # ALL DONE ----------------------------------------------------------------------------------------------------------- diff --git a/test/integration/test-cases/deps-kustomization-i-1402.sh b/test/integration/test-cases/deps-kustomization-i-1402.sh new file mode 100644 index 00000000..d76a65a9 --- /dev/null +++ b/test/integration/test-cases/deps-kustomization-i-1402.sh @@ -0,0 +1,9 @@ +deps_kustomization_i_1402="${cases_dir}/deps-kustomization-i-1402/input" + +config_file="helmfile.yaml" + +test_start "helmfile deps nonreg for #1402" + +${helmfile} -f ${deps_kustomization_i_1402}/${config_file} deps || fail "\"helmfile deps\" shouldn't fail" + +test_pass "helmfile deps nonreg for #1402" diff --git a/test/integration/test-cases/deps-kustomization-i-1402/input/helmfile.yaml b/test/integration/test-cases/deps-kustomization-i-1402/input/helmfile.yaml new file mode 100644 index 00000000..bf1df8de --- /dev/null +++ b/test/integration/test-cases/deps-kustomization-i-1402/input/helmfile.yaml @@ -0,0 +1,9 @@ +repositories: + # Only required because helmfile deps doesn't execute without them + - name: ingress-nginx + url: https://kubernetes.github.io/ingress-nginx + +releases: + - name: test + chart: ./test + diff --git a/test/integration/test-cases/deps-kustomization-i-1402/input/test/kustomization.yaml b/test/integration/test-cases/deps-kustomization-i-1402/input/test/kustomization.yaml new file mode 100644 index 00000000..b5bcb995 --- /dev/null +++ b/test/integration/test-cases/deps-kustomization-i-1402/input/test/kustomization.yaml @@ -0,0 +1,2 @@ +resources: + - test.yml diff --git a/test/integration/test-cases/deps-kustomization-i-1402/input/test/test.yml b/test/integration/test-cases/deps-kustomization-i-1402/input/test/test.yml new file mode 100644 index 00000000..ced7e13a --- /dev/null +++ b/test/integration/test-cases/deps-kustomization-i-1402/input/test/test.yml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: test +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 1G