diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fa561727..97190da0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -86,6 +86,11 @@ jobs: plugin-secrets-version: 4.6.5 plugin-diff-version: 3.12.5 extra-helmfile-flags: '--enable-live-output' + - helm-version: v4.0.0-beta.1 + kustomize-version: v5.4.3 + plugin-secrets-version: 4.6.5 + plugin-diff-version: 3.12.5 + extra-helmfile-flags: '' steps: - uses: actions/checkout@v5 - uses: actions/setup-go@v6 diff --git a/pkg/exectest/helm.go b/pkg/exectest/helm.go index 9daaf0ec..5857d398 100644 --- a/pkg/exectest/helm.go +++ b/pkg/exectest/helm.go @@ -210,7 +210,7 @@ func (helm *Helm) IsHelm3() bool { if helm.Version == nil { return helm.Helm3 } - return helm.Version.Major() == 3 + return helm.Version.Major() >= 3 } func (helm *Helm) GetVersion() helmexec.Version { diff --git a/pkg/helmexec/exec.go b/pkg/helmexec/exec.go index fd185b71..37b5c3ae 100644 --- a/pkg/helmexec/exec.go +++ b/pkg/helmexec/exec.go @@ -647,7 +647,7 @@ func (helm *execer) write(w io.Writer, out []byte) { } func (helm *execer) IsHelm3() bool { - return helm.version.Major() == 3 + return helm.version.Major() >= 3 } func (helm *execer) GetVersion() Version { diff --git a/test/integration/run.sh b/test/integration/run.sh index d0abedfb..41548fc6 100755 --- a/test/integration/run.sh +++ b/test/integration/run.sh @@ -30,6 +30,7 @@ export HELM_CONFIG_HOME="${helm_dir}/config" HELM_DIFF_VERSION="${HELM_DIFF_VERSION:-3.12.5}" HELM_GIT_VERSION="${HELM_GIT_VERSION:-1.3.0}" HELM_SECRETS_VERSION="${HELM_SECRETS_VERSION:-3.15.0}" +HELM_CURRENT_VERSION="$(${helm} version --short | grep -o 'v[0-9.]\+')" export GNUPGHOME="${PWD}/${dir}/.gnupg" export SOPS_PGP_FP="B2D6D7BBEC03B2E66571C8C00AD18E16CFDEF700" @@ -70,9 +71,15 @@ function cleanup() { set -e trap cleanup EXIT info "Using namespace: ${test_ns}" -info "Using Helm version:" $(${helm} version --short | grep -o 'v[0-9.]\+') -${helm} plugin ls | grep "^diff" || ${helm} plugin install https://github.com/databus23/helm-diff --version v${HELM_DIFF_VERSION} -${helm} plugin ls | grep "^helm-git" || ${helm} plugin install https://github.com/aslafy-z/helm-git --version v${HELM_GIT_VERSION} +info "Using Helm version:" ${HELM_CURRENT_VERSION} + +# if helm version is bigger or equal than v4.0.0, we need to set HELM_PLUGIN_INSTALL_EXTRA_ARGS to --verify=false +if [[ "${HELM_CURRENT_VERSION}" == v4* ]]; then + HELM_PLUGIN_INSTALL_EXTRA_ARGS="--verify=false" +fi + +${helm} plugin ls | grep "^diff" || ${helm} plugin install https://github.com/databus23/helm-diff --version v${HELM_DIFF_VERSION} ${HELM_PLUGIN_INSTALL_EXTRA_ARGS} +${helm} plugin ls | grep "^helm-git" || ${helm} plugin install https://github.com/aslafy-z/helm-git --version v${HELM_GIT_VERSION} ${HELM_PLUGIN_INSTALL_EXTRA_ARGS} info "Using Kustomize version: $(kustomize version --short | grep -o 'v[0-9.]\+')" ${kubectl} get namespace ${test_ns} &> /dev/null && warn "Namespace ${test_ns} exists, from a previous test run?" ${kubectl} create namespace ${test_ns} || fail "Could not create namespace ${test_ns}"