Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package helmfile for openSUSE:Factory checked in at 2023-08-12 15:07:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/helmfile (Old) and /work/SRC/openSUSE:Factory/.helmfile.new.11712 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "helmfile" Sat Aug 12 15:07:06 2023 rev:43 rq:1103589 version:0.155.1 Changes: -------- --- /work/SRC/openSUSE:Factory/helmfile/helmfile.changes 2023-07-06 18:29:37.871493346 +0200 +++ /work/SRC/openSUSE:Factory/.helmfile.new.11712/helmfile.changes 2023-08-12 15:07:15.802918835 +0200 @@ -1,0 +2,31 @@ +Sat Aug 12 09:05:31 UTC 2023 - Manfred Hollstein <manfre...@gmx.net> + +- Update to version 0.155.1: + What's Changed + * feat: add --insecure-skip-tls-verify support for helmfile + template by @yxxhero in #916 + * feat: Allow to skip diff output on release base by @jkroepke + in #906 + * build(deps): bump golang.org/x/term from 0.9.0 to 0.10.0 by + @dependabot in #918 + * build(deps): bump helm.sh/helm/v3 from 3.12.1 to 3.12.2 by + @dependabot in #930 + * build(deps): bump github.com/docker/docker from + 23.0.1+incompatible to 23.0.3+incompatible by @dependabot in #932 + * bump helm to v3.12.2 by @yxxhero in #933 + * build(deps): bump k8s.io/apimachinery from 0.27.3 to 0.27.4 + by @dependabot in #936 + * build(deps): bump github.com/helmfile/vals from 0.25.0 to + 0.26.0 by @dependabot in #938 + * Cancel rendering helmfile parts once the missing env is + detected in the previous part by @mumoshu in #941 + * fix typo by @lucasfcnunes in #940 + * fix: oci pull directory conflict when download twice by + @yxxhero in #914 + * feat: add insecure support for oci repo by @yxxhero in #921 + * add bug to exempt labels on git stale.yml by @lucasfcnunes + in #942 + * build(deps): bump github.com/helmfile/vals from 0.26.0 to + 0.26.1 by @dependabot in #944 + +------------------------------------------------------------------- Old: ---- helmfile-0.155.0.tar.gz New: ---- helmfile-0.155.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ helmfile.spec ++++++ --- /var/tmp/diff_new_pack.te7WSt/_old 2023-08-12 15:07:16.826925451 +0200 +++ /var/tmp/diff_new_pack.te7WSt/_new 2023-08-12 15:07:16.830925476 +0200 @@ -17,9 +17,9 @@ # -%define git_commit aedcc4373ed9f8153d332f6bbcf93a4cd5e0223b +%define git_commit c19f220f06aa6c68cacad90d6c3271a1cd637766 Name: helmfile -Version: 0.155.0 +Version: 0.155.1 Release: 0 Summary: Deploy Kubernetes Helm Charts License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.te7WSt/_old 2023-08-12 15:07:16.862925683 +0200 +++ /var/tmp/diff_new_pack.te7WSt/_new 2023-08-12 15:07:16.866925709 +0200 @@ -5,7 +5,7 @@ <param name="exclude">.git</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> - <param name="revision">v0.155.0</param> + <param name="revision">v0.155.1</param> <param name="changesgenerate">enable</param> </service> <service name="recompress" mode="disabled"> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.te7WSt/_old 2023-08-12 15:07:16.886925838 +0200 +++ /var/tmp/diff_new_pack.te7WSt/_new 2023-08-12 15:07:16.890925864 +0200 @@ -1,5 +1,5 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/helmfile/helmfile.git</param> - <param name="changesrevision">aedcc4373ed9f8153d332f6bbcf93a4cd5e0223b</param></service></servicedata> + <param name="changesrevision">c19f220f06aa6c68cacad90d6c3271a1cd637766</param></service></servicedata> ++++++ helmfile-0.155.0.tar.gz -> helmfile-0.155.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/.github/stale.yml new/helmfile-0.155.1/.github/stale.yml --- old/helmfile-0.155.0/.github/stale.yml 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/.github/stale.yml 2023-07-25 00:00:14.000000000 +0200 @@ -4,9 +4,10 @@ daysUntilClose: 7 # Issues with these labels will never be considered stale exemptLabels: - - in progress + - in progress - pinned - security + - bug # Label to use when marking an issue as stale staleLabel: wontfix # Comment to post when marking an issue as stale. Set to `false` to disable diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/.github/workflows/ci.yaml new/helmfile-0.155.1/.github/workflows/ci.yaml --- old/helmfile-0.155.0/.github/workflows/ci.yaml 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/.github/workflows/ci.yaml 2023-07-25 00:00:14.000000000 +0200 @@ -75,20 +75,20 @@ plugin-diff-version: 3.8.1 extra-helmfile-flags: v1mode: - - helm-version: v3.12.1 + - helm-version: v3.12.2 kustomize-version: v4.4.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.7.0 extra-helmfile-flags: v1mode: - - helm-version: v3.12.1 + - helm-version: v3.12.2 kustomize-version: v4.5.7 plugin-secrets-version: 4.0.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: v1mode: # Helmfile v1 - - helm-version: v3.12.1 + - helm-version: v3.12.2 kustomize-version: v4.5.7 plugin-secrets-version: 4.0.0 plugin-diff-version: 3.8.1 @@ -96,7 +96,7 @@ v1mode: "true" # In case you need to test some optional helmfile features, # enable it via extra-helmfile-flags below. - - helm-version: v3.12.1 + - helm-version: v3.12.2 kustomize-version: v4.5.7 plugin-secrets-version: 4.0.0 plugin-diff-version: 3.8.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/Dockerfile new/helmfile-0.155.1/Dockerfile --- old/helmfile-0.155.0/Dockerfile 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/Dockerfile 2023-07-25 00:00:14.000000000 +0200 @@ -30,7 +30,7 @@ ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.12.1" +ARG HELM_VERSION="v3.12.2" ENV HELM_VERSION="${HELM_VERSION}" ARG HELM_LOCATION="https://get.helm.sh" ARG HELM_FILENAME="helm-${HELM_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" @@ -38,8 +38,8 @@ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="1a7074f58ef7190f74ce6db5db0b70e355a655e2013c4d5db2317e63fa9e3dea" ;; \ - "linux/arm64") HELM_SHA256="50548d4fedef9d8d01d1ed5a2dd5c849271d1017127417dc4c7ef6777ae68f7e" ;; \ + "linux/amd64") HELM_SHA256="2b6efaa009891d3703869f4be80ab86faa33fa83d9d5ff2f6492a8aebe97b219" ;; \ + "linux/arm64") HELM_SHA256="cfafbae85c31afde88c69f0e5053610c8c455826081c1b2d665d9b44c31b3759" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/Dockerfile.debian-stable-slim new/helmfile-0.155.1/Dockerfile.debian-stable-slim --- old/helmfile-0.155.0/Dockerfile.debian-stable-slim 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/Dockerfile.debian-stable-slim 2023-07-25 00:00:14.000000000 +0200 @@ -35,7 +35,7 @@ ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.12.1" +ARG HELM_VERSION="v3.12.2" ENV HELM_VERSION="${HELM_VERSION}" ARG HELM_LOCATION="https://get.helm.sh" ARG HELM_FILENAME="helm-${HELM_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" @@ -43,8 +43,8 @@ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="1a7074f58ef7190f74ce6db5db0b70e355a655e2013c4d5db2317e63fa9e3dea" ;; \ - "linux/arm64") HELM_SHA256="50548d4fedef9d8d01d1ed5a2dd5c849271d1017127417dc4c7ef6777ae68f7e" ;; \ + "linux/amd64") HELM_SHA256="2b6efaa009891d3703869f4be80ab86faa33fa83d9d5ff2f6492a8aebe97b219" ;; \ + "linux/arm64") HELM_SHA256="cfafbae85c31afde88c69f0e5053610c8c455826081c1b2d665d9b44c31b3759" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/Dockerfile.ubuntu new/helmfile-0.155.1/Dockerfile.ubuntu --- old/helmfile-0.155.0/Dockerfile.ubuntu 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/Dockerfile.ubuntu 2023-07-25 00:00:14.000000000 +0200 @@ -35,7 +35,7 @@ ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.12.1" +ARG HELM_VERSION="v3.12.2" ENV HELM_VERSION="${HELM_VERSION}" ARG HELM_LOCATION="https://get.helm.sh" ARG HELM_FILENAME="helm-${HELM_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" @@ -43,8 +43,8 @@ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="1a7074f58ef7190f74ce6db5db0b70e355a655e2013c4d5db2317e63fa9e3dea" ;; \ - "linux/arm64") HELM_SHA256="50548d4fedef9d8d01d1ed5a2dd5c849271d1017127417dc4c7ef6777ae68f7e" ;; \ + "linux/amd64") HELM_SHA256="2b6efaa009891d3703869f4be80ab86faa33fa83d9d5ff2f6492a8aebe97b219" ;; \ + "linux/arm64") HELM_SHA256="cfafbae85c31afde88c69f0e5053610c8c455826081c1b2d665d9b44c31b3759" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/docs/index.md new/helmfile-0.155.1/docs/index.md --- old/helmfile-0.155.0/docs/index.md 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/docs/index.md 2023-07-25 00:00:14.000000000 +0200 @@ -315,6 +315,9 @@ cascade: "background" # insecureSkipTLSVerify is true if the TLS verification should be skipped when fetching remote chart insecureSkipTLSVerify: false + # suppressDiff skip the helm diff output. Useful for charts which produces large not helpful diff, default: false + suppressDiff: false + # Local chart example - name: grafana # name of this release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/docs/proposals/towards-1.0.md new/helmfile-0.155.1/docs/proposals/towards-1.0.md --- old/helmfile-0.155.0/docs/proposals/towards-1.0.md 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/docs/proposals/towards-1.0.md 2023-07-25 00:00:14.000000000 +0200 @@ -75,7 +75,7 @@ ### Remove `HELMFILE_SKIP_INSECURE_TEMPLATE_FUNCTIONS` in favor of `HELMFILE_DISABLE_INSECURE_FEATURES` - - This option didn't make much sense in practical. Generally, you'd want to disable all the insecure features altogether to make your deployment secure, or not disable any features. Disabling all is already possible via `HELMFILE_DISABLE_INSECURE_FEATURES `. In addition, `HELMFILE_SKIP_INSECURE_TEMPLATE_FUNCTIONS` literally made every insecure template function to silently skipped without any error or warning, which made debugging unnecessarily hard when the user accidentally used an insecure function. + - This option didn't make much sense in practice. Generally, you'd want to disable all the insecure features altogether to make your deployment secure, or not disable any features. Disabling all is already possible via `HELMFILE_DISABLE_INSECURE_FEATURES `. In addition, `HELMFILE_SKIP_INSECURE_TEMPLATE_FUNCTIONS` literally made every insecure template function to silently skipped without any error or warning, which made debugging unnecessarily hard when the user accidentally used an insecure function. - See https://github.com/helmfile/helmfile/pull/564 for more context. ### The long deprecated `charts.yaml` has been finally removed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/go.mod new/helmfile-0.155.1/go.mod --- old/helmfile-0.155.0/go.mod 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/go.mod 2023-07-25 00:00:14.000000000 +0200 @@ -14,7 +14,7 @@ github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.1 github.com/helmfile/chartify v0.14.0 - github.com/helmfile/vals v0.25.0 + github.com/helmfile/vals v0.26.1 github.com/imdario/mergo v0.3.16 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 @@ -25,10 +25,10 @@ go.uber.org/multierr v1.11.0 go.uber.org/zap v1.24.0 golang.org/x/sync v0.3.0 - golang.org/x/term v0.9.0 + golang.org/x/term v0.10.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.12.1 - k8s.io/apimachinery v0.27.3 + helm.sh/helm/v3 v3.12.2 + k8s.io/apimachinery v0.27.4 ) replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 @@ -107,7 +107,7 @@ go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect - golang.org/x/sys v0.9.0 // indirect + golang.org/x/sys v0.10.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.0.0-20220411224347-583f2d630306 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect @@ -165,9 +165,9 @@ github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/containerd/containerd v1.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.3 // indirect - github.com/docker/cli v20.10.21+incompatible // indirect + github.com/docker/cli v23.0.1+incompatible // indirect github.com/docker/distribution v2.8.2+incompatible // indirect - github.com/docker/docker v20.10.24+incompatible // indirect + github.com/docker/docker v23.0.3+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect @@ -243,7 +243,7 @@ k8s.io/klog/v2 v2.90.1 // indirect k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect - oras.land/oras-go v1.2.2 // indirect + oras.land/oras-go v1.2.3 // indirect sigs.k8s.io/kustomize/api v0.13.2 // indirect sigs.k8s.io/kustomize/kyaml v0.14.1 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/go.sum new/helmfile-0.155.1/go.sum --- old/helmfile-0.155.0/go.sum 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/go.sum 2023-07-25 00:00:14.000000000 +0200 @@ -375,12 +375,12 @@ github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2 h1:aBfCb7iqHmDEIp6fBvC/hQUddQfg+3qdYjwzaiP9Hnc= github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c= -github.com/docker/cli v20.10.21+incompatible h1:qVkgyYUnOLQ98LtXBrwd/duVqPT2X4SHndOuGsfwyhU= -github.com/docker/cli v20.10.21+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v23.0.1+incompatible h1:LRyWITpGzl2C9e9uGxzisptnxAn1zfZKXy13Ul2Q5oM= +github.com/docker/cli v23.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE= -github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v23.0.3+incompatible h1:9GhVsShNWz1hO//9BNg/dpMnZW25KydO4wtVxWAIbho= +github.com/docker/docker v23.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= @@ -657,8 +657,8 @@ github.com/hashicorp/yamux v0.0.0-20211028200310-0bc27b27de87/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/helmfile/chartify v0.14.0 h1:uKGF+Qpx8pdLDHoaGY4HnOD68P8R3+bjEIH3PVJbDmA= github.com/helmfile/chartify v0.14.0/go.mod h1:DxbZoZed5bq27zr9+rZ5rV8g4Lr9dWoZVp5VzDx6pO4= -github.com/helmfile/vals v0.25.0 h1:ZW1ABvY+SwUbCnl4HolsAqklcqEPVVuxMwiNEIPzwtA= -github.com/helmfile/vals v0.25.0/go.mod h1:Umvg1mKqazaUBjOl74I0u25obw34w603YxoPlhDIvtc= +github.com/helmfile/vals v0.26.1 h1:AWdwDxS/q/7LAwYiEDgQ4WRdrmFcIaw3vvfeqdQlSGs= +github.com/helmfile/vals v0.26.1/go.mod h1:Umvg1mKqazaUBjOl74I0u25obw34w603YxoPlhDIvtc= github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f h1:7LYC+Yfkj3CTRcShK0KOL/w6iTiKyqqBA9a41Wnggw8= github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f/go.mod h1:pFlLw2CfqZiIBOx6BuCeRLCrfxBJipTY0nIOF/VbGcI= github.com/howeyc/gopass v0.0.0-20210920133722-c8aef6fb66ef h1:A9HsByNhogrvm9cWb28sjiS3i7tcKCkflWFEkHfuAgM= @@ -1180,14 +1180,14 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= -golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.9.0 h1:GRRCnKYhdQrD8kfRAdQ6Zcw1P0OcELxGLKJvtjVMZ28= -golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= +golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1517,8 +1517,8 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= -helm.sh/helm/v3 v3.12.1 h1:lzU7etZX24A6BTMXYQF3bFq0ECfD8s+fKlNBBL8AbEc= -helm.sh/helm/v3 v3.12.1/go.mod h1:qhmSY9kcX7yH1xebe+FDMZa7E5NAeZ+LvK5j1gSln48= +helm.sh/helm/v3 v3.12.2 h1:kFyDBr/mgJUlyGzVTCieG4wW0zmo7fcNRWK0+FKkxqU= +helm.sh/helm/v3 v3.12.2/go.mod h1:v1PMayudIfZAvec3Wp4wAErensvK/rv5fu/xCiE6t3I= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1528,8 +1528,8 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.27.2 h1:+H17AJpUMvl+clT+BPnKf0E3ksMAzoBBg7CntpSuADo= k8s.io/api v0.27.2/go.mod h1:ENmbocXfBT2ADujUXcBhHV55RIT31IIEvkntP6vZKS4= -k8s.io/apimachinery v0.27.3 h1:Ubye8oBufD04l9QnNtW05idcOe9Z3GQN8+7PqmuVcUM= -k8s.io/apimachinery v0.27.3/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= +k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= +k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= k8s.io/cli-runtime v0.27.2 h1:9HI8gfReNujKXt16tGOAnb8b4NZ5E+e0mQQHKhFGwYw= k8s.io/cli-runtime v0.27.2/go.mod h1:9UecpyPDTkhiYY4d9htzRqN+rKomJgyb4wi0OfrmCjw= k8s.io/client-go v0.27.2 h1:vDLSeuYvCHKeoQRhCXjxXO45nHVv2Ip4Fe0MfioMrhE= @@ -1540,8 +1540,8 @@ k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -oras.land/oras-go v1.2.2 h1:0E9tOHUfrNH7TCDk5KU0jVBEzCqbfdyuVfGmJ7ZeRPE= -oras.land/oras-go v1.2.2/go.mod h1:Apa81sKoZPpP7CDciE006tSZ0x3Q3+dOoBcMZ/aNxvw= +oras.land/oras-go v1.2.3 h1:v8PJl+gEAntI1pJ/LCrDgsuk+1PKVavVEPsYIHFE5uY= +oras.land/oras-go v1.2.3/go.mod h1:M/uaPdYklze0Vf3AakfarnpoEckvw0ESbRdN8Z1vdJg= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/app/app_test.go new/helmfile-0.155.1/pkg/app/app_test.go --- old/helmfile-0.155.0/pkg/app/app_test.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/app/app_test.go 2023-07-25 00:00:14.000000000 +0200 @@ -2445,7 +2445,7 @@ return nil } -func (helm *mockHelmExec) ChartExport(chart string, path string, flags ...string) error { +func (helm *mockHelmExec) ChartExport(chart string, path string) error { return nil } @@ -2476,7 +2476,7 @@ func (helm *mockHelmExec) UpdateRepo() error { return nil } -func (helm *mockHelmExec) RegistryLogin(name string, username string, password string) error { +func (helm *mockHelmExec) RegistryLogin(name, username, password, caFile, certFile, keyFile string, skipTLSVerify bool) error { return nil } func (helm *mockHelmExec) SyncRelease(context helmexec.HelmContext, name, chart string, flags ...string) error { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/app/desired_state_file_loader.go new/helmfile-0.155.1/pkg/app/desired_state_file_loader.go --- old/helmfile-0.155.0/pkg/app/desired_state_file_loader.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/app/desired_state_file_loader.go 2023-07-25 00:00:14.000000000 +0200 @@ -241,15 +241,33 @@ env = &finalState.Env ld.logger.Debugf("merged environment: %v", env) + + if len(finalState.Environments) == 0 { + continue + } + + // At this point, we are sure that the env has been + // read from the vanilla or rendered YAML document. + // We can now check if the env is defined in it and fail accordingly. + // See https://github.com/helmfile/helmfile/issues/913 + + // We defer the missing env detection and failure until + // all the helmfile parts are loaded and merged. + // Otherwise, any single helmfile part missing the env would fail the whole helmfile run. + // That's problematic, because each helmfile part is supposed to be incomplete, and + // they become complete only after merging all the parts. + // See https://github.com/helmfile/helmfile/issues/807 for the rationale of this. + if _, ok := finalState.Environments[env.Name]; evaluateBases && env.Name != state.DefaultEnv && !ok { + return nil, &state.StateLoadError{ + Msg: fmt.Sprintf("failed to read %s", finalState.FilePath), + Cause: &state.UndefinedEnvError{Env: env.Name}, + } + } } - // We defer the missing env detection and failure until - // all the helmfile parts are loaded and merged. - // Otherwise, any single helmfile part missing the env would fail the whole helmfile run. - // That's problematic, because each helmfile part is supposed to be incomplete, and - // they become complete only after merging all the parts. - // See https://github.com/helmfile/helmfile/issues/807 for the rationale of this. - if _, ok := finalState.Environments[env.Name]; evaluateBases && env.Name != state.DefaultEnv && !ok { + // If environments are not defined in the helmfile at all although the env is specified, + // it's a missing env situation. Let's fail. + if len(finalState.Environments) == 0 && evaluateBases && env.Name != state.DefaultEnv { return nil, &state.StateLoadError{ Msg: fmt.Sprintf("failed to read %s", finalState.FilePath), Cause: &state.UndefinedEnvError{Env: env.Name}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/app/init.go new/helmfile-0.155.1/pkg/app/init.go --- old/helmfile-0.155.0/pkg/app/init.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/app/init.go 2023-07-25 00:00:14.000000000 +0200 @@ -18,7 +18,7 @@ const ( HelmRequiredVersion = "v3.10.3" - HelmRecommendedVersion = "v3.12.1" + HelmRecommendedVersion = "v3.12.2" HelmDiffRecommendedVersion = "v3.8.1" HelmSecretsRecommendedVersion = "v4.1.1" HelmGitRecommendedVersion = "v0.12.0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/app/init_test.go new/helmfile-0.155.1/pkg/app/init_test.go --- old/helmfile-0.155.0/pkg/app/init_test.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/app/init_test.go 2023-07-25 00:00:14.000000000 +0200 @@ -5,7 +5,7 @@ "net/http" "net/http/httptest" "os" - "path" + "path/filepath" "regexp" "testing" ) @@ -55,9 +55,9 @@ for _, c := range cases { t.Run(c.name, func(t *testing.T) { dir := t.TempDir() - downfile := path.Join(dir, "down.txt") + downfile := filepath.Join(dir, "down.txt") if c.filepath != "" { - downfile = path.Join(dir, c.filepath) + downfile = filepath.Join(dir, c.filepath) } ts = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/exectest/helm.go new/helmfile-0.155.1/pkg/exectest/helm.go --- old/helmfile-0.155.0/pkg/exectest/helm.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/exectest/helm.go 2023-07-25 00:00:14.000000000 +0200 @@ -101,7 +101,7 @@ func (helm *Helm) UpdateRepo() error { return nil } -func (helm *Helm) RegistryLogin(name string, username string, password string) error { +func (helm *Helm) RegistryLogin(name, username, password, caFile, certFile, keyFile string, skipTLSVerify bool) error { return nil } func (helm *Helm) SyncRelease(context helmexec.HelmContext, name, chart string, flags ...string) error { @@ -198,7 +198,7 @@ func (helm *Helm) ChartPull(chart string, path string, flags ...string) error { return nil } -func (helm *Helm) ChartExport(chart string, path string, flags ...string) error { +func (helm *Helm) ChartExport(chart string, path string) error { return nil } func (helm *Helm) IsHelm3() bool { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/filesystem/fs_test.go new/helmfile-0.155.1/pkg/filesystem/fs_test.go --- old/helmfile-0.155.0/pkg/filesystem/fs_test.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/filesystem/fs_test.go 2023-07-25 00:00:14.000000000 +0200 @@ -4,7 +4,7 @@ "errors" "io/fs" "os" - "path" + "path/filepath" "strings" "testing" ) @@ -102,7 +102,7 @@ for _, c := range cases { t.Run(c.name, func(t *testing.T) { dir := t.TempDir() - yamlPath := path.Join(dir, c.path) + yamlPath := filepath.Join(dir, c.path) dfs := DefaultFileSystem() tmpfile, err := os.Create(yamlPath) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/helmexec/exec.go new/helmfile-0.155.1/pkg/helmexec/exec.go --- old/helmfile-0.155.0/pkg/helmexec/exec.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/helmexec/exec.go 2023-07-25 00:00:14.000000000 +0200 @@ -205,18 +205,37 @@ return err } -func (helm *execer) RegistryLogin(repository string, username string, password string) error { - helm.logger.Info("Logging in to registry") +func (helm *execer) RegistryLogin(repository, username, password, caFile, certFile, keyFile string, skipTLSVerify bool) error { + if username == "" || password == "" { + return nil + } + + buffer := bytes.Buffer{} args := []string{ "registry", "login", repository, - "--username", - username, - "--password-stdin", } - buffer := bytes.Buffer{} + helmVersionConstraint, _ := semver.NewConstraint(">= 3.12.0") + if helmVersionConstraint.Check(helm.version) { + // in the 3.12.0 version, the registry login support --key-file --cert-file and --ca-file + // https://github.com/helm/helm/releases/tag/v3.12.0 + if certFile != "" && keyFile != "" { + args = append(args, "--cert-file", certFile, "--key-file", keyFile) + } + if caFile != "" { + args = append(args, "--ca-file", caFile) + } + } + + if skipTLSVerify { + args = append(args, "--insecure") + } + + args = append(args, "--username", username, "--password-stdin", password) buffer.Write([]byte(fmt.Sprintf("%s\n", password))) + + helm.logger.Info("Logging in to registry") out, err := helm.execStdIn(args, map[string]string{"HELM_EXPERIMENTAL_OCI": "1"}, &buffer) helm.info(out) return err @@ -468,15 +487,16 @@ // https://github.com/helm/helm/releases/tag/v3.7.0 ociChartURL, ociChartTag := resolveOciChart(chart) helmArgs = []string{"pull", ociChartURL, "--version", ociChartTag, "--destination", path, "--untar"} + helmArgs = append(helmArgs, flags...) } else { helmArgs = []string{"chart", "pull", chart} } - out, err := helm.exec(append(helmArgs, flags...), map[string]string{"HELM_EXPERIMENTAL_OCI": "1"}, nil) + out, err := helm.exec(helmArgs, map[string]string{"HELM_EXPERIMENTAL_OCI": "1"}, nil) helm.info(out) return err } -func (helm *execer) ChartExport(chart string, path string, flags ...string) error { +func (helm *execer) ChartExport(chart string, path string) error { helmVersionConstraint, _ := semver.NewConstraint(">= 3.7.0") if helmVersionConstraint.Check(helm.version) { // in the 3.7.0 version, the chart export has been removed @@ -486,7 +506,8 @@ var helmArgs []string helm.logger.Infof("Exporting %v", chart) helmArgs = []string{"chart", "export", chart, "--destination", path} - out, err := helm.exec(append(helmArgs, flags...), map[string]string{"HELM_EXPERIMENTAL_OCI": "1"}, nil) + // no extra flags for before v3.7.0, details in helm chart export --help + out, err := helm.exec(helmArgs, map[string]string{"HELM_EXPERIMENTAL_OCI": "1"}, nil) helm.info(out) return err } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/helmexec/exec_test.go new/helmfile-0.155.1/pkg/helmexec/exec_test.go --- old/helmfile-0.155.0/pkg/helmexec/exec_test.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/helmexec/exec_test.go 2023-07-25 00:00:14.000000000 +0200 @@ -755,7 +755,7 @@ chartPath: "path1", chartFlags: []string{"--untar", "--untardir", "/tmp/dir"}, listResult: `Pulling chart -exec: helm --kube-context dev chart pull chart --untar --untardir /tmp/dir +exec: helm --kube-context dev chart pull chart `, }, { @@ -802,7 +802,6 @@ helmVersion string chartName string chartPath string - chartFlags []string listResult string expectedError string }{ @@ -812,9 +811,8 @@ helmVersion: "v3.6.0", chartName: "chart", chartPath: "path1", - chartFlags: []string{"--untar", "--untardir", "/tmp/dir"}, listResult: `Exporting chart -exec: helm --kube-context dev chart export chart --destination path1 --untar --untardir /tmp/dir +exec: helm --kube-context dev chart export chart --destination path1 `, expectedError: "", }, @@ -830,7 +828,7 @@ kubeContext: "dev", runner: &mockRunner{}, } - err := helm.ChartExport(tt.chartName, tt.chartPath, tt.chartFlags...) + err := helm.ChartExport(tt.chartName, tt.chartPath) if err != nil { t.Errorf("unexpected error: %v", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/helmexec/helmexec.go new/helmfile-0.155.1/pkg/helmexec/helmexec.go --- old/helmfile-0.155.0/pkg/helmexec/helmexec.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/helmexec/helmexec.go 2023-07-25 00:00:14.000000000 +0200 @@ -18,7 +18,7 @@ AddRepo(name, repository, cafile, certfile, keyfile, username, password string, managed string, passCredentials, skipTLSVerify bool) error UpdateRepo() error - RegistryLogin(name string, username string, password string) error + RegistryLogin(name, username, password, caFile, certFile, keyFile string, skipTLSVerify bool) error BuildDeps(name, chart string, flags ...string) error UpdateDeps(chart string) error SyncRelease(context HelmContext, name, chart string, flags ...string) error @@ -26,7 +26,7 @@ TemplateRelease(name, chart string, flags ...string) error Fetch(chart string, flags ...string) error ChartPull(chart string, path string, flags ...string) error - ChartExport(chart string, path string, flags ...string) error + ChartExport(chart string, path string) error Lint(name, chart string, flags ...string) error ReleaseStatus(context HelmContext, name string, flags ...string) error DeleteRelease(context HelmContext, name string, flags ...string) error diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/state/state.go new/helmfile-0.155.1/pkg/state/state.go --- old/helmfile-0.155.0/pkg/state/state.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/state/state.go 2023-07-25 00:00:14.000000000 +0200 @@ -8,7 +8,6 @@ "fmt" "io" "os" - "path" "path/filepath" "regexp" "sort" @@ -365,6 +364,9 @@ // Inherit is used to inherit a release template from a release or another release template Inherit Inherits `yaml:"inherit,omitempty"` + + // SuppressDiff skip the helm diff output. Useful for charts which produces large not helpful diff. + SuppressDiff *bool `yaml:"suppressDiff,omitempty"` } func (r *Inherits) UnmarshalYAML(unmarshal func(any) error) error { @@ -428,7 +430,7 @@ // MissingFileHandlerDebug is the debug returned when a file is missing const MissingFileHandlerDebug = "Debug" -var DefaultFetchOutputDirTemplate = path.Join( +var DefaultFetchOutputDirTemplate = filepath.Join( "{{ .OutputDir }}{{ if .Release.Namespace }}", "{{ .Release.Namespace }}{{ end }}{{ if .Release.KubeContext }}", "{{ .Release.KubeContext }}{{ end }}", @@ -499,7 +501,7 @@ IsHelm3() bool AddRepo(name, repository, cafile, certfile, keyfile, username, password string, managed string, passCredentials, skipTLSVerify bool) error UpdateRepo() error - RegistryLogin(name string, username string, password string) error + RegistryLogin(name, username, password, caFile, certFile, keyFile string, skipTLSVerify bool) error } func (st *HelmState) SyncRepos(helm RepoUpdater, shouldSkip map[string]bool) ([]string, error) { @@ -512,9 +514,7 @@ username, password := gatherUsernamePassword(repo.Name, repo.Username, repo.Password) var err error if repo.OCI { - if username != "" && password != "" { - err = helm.RegistryLogin(repo.URL, username, password) - } + err = helm.RegistryLogin(repo.URL, username, password, repo.CaFile, repo.CertFile, repo.KeyFile, repo.SkipTLSVerify) } else { err = helm.AddRepo(repo.Name, repo.URL, repo.CaFile, repo.CertFile, repo.KeyFile, username, password, repo.Managed, repo.PassCredentials, repo.SkipTLSVerify) } @@ -1690,6 +1690,7 @@ errors []*ReleaseError files []string upgradeDueToSkippedDiff bool + suppressDiff bool } func (st *HelmState) commonDiffFlags(detailedExitCode bool, stripTrailingCR bool, includeTests bool, suppress []string, suppressSecrets bool, showSecrets bool, noHooks bool, opt *DiffOpts) []string { @@ -1814,8 +1815,13 @@ st.ApplyOverrides(release) + suppressDiff := false + if release.SuppressDiff != nil && *release.SuppressDiff { + suppressDiff = true + } + if opt.SkipDiffOnInstall && !isInstalled(release) { - results <- diffPrepareResult{release: release, upgradeDueToSkippedDiff: true} + results <- diffPrepareResult{release: release, upgradeDueToSkippedDiff: true, suppressDiff: suppressDiff} continue } @@ -1849,9 +1855,9 @@ for i, e := range errs { rsErrs[i] = newReleaseFailedError(release, e) } - results <- diffPrepareResult{errors: rsErrs, files: files} + results <- diffPrepareResult{errors: rsErrs, files: files, suppressDiff: suppressDiff} } else { - results <- diffPrepareResult{release: release, flags: flags, errors: []*ReleaseError{}, files: files} + results <- diffPrepareResult{release: release, flags: flags, errors: []*ReleaseError{}, files: files, suppressDiff: suppressDiff} } } }, @@ -1976,9 +1982,15 @@ flags := prep.flags release := prep.release buf := &bytes.Buffer{} + + releaseSuppressDiff := suppressDiff + if prep.suppressDiff { + releaseSuppressDiff = true + } + if prep.upgradeDueToSkippedDiff { results <- diffResult{release, &ReleaseError{ReleaseSpec: release, err: nil, Code: HelmDiffExitCodeChanged}, buf} - } else if err := helm.DiffRelease(st.createHelmContextWithWriter(release, buf), release.Name, normalizeChart(st.basePath, release.ChartPathOrName()), suppressDiff, flags...); err != nil { + } else if err := helm.DiffRelease(st.createHelmContextWithWriter(release, buf), release.Name, normalizeChart(st.basePath, release.ChartPathOrName()), releaseSuppressDiff, flags...); err != nil { switch e := err.(type) { case helmexec.ExitError: // Propagate any non-zero exit status from the external command like `helm` that is failed under the hood @@ -2566,6 +2578,7 @@ } flags = st.appendPostRenderFlags(flags, release, postRenderer) flags = st.appendApiVersionsFlags(flags, release, kubeVersion) + flags = st.appendChartDownloadTLSFlags(flags, release) common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex) if err != nil { @@ -3461,15 +3474,34 @@ pathElems = append(pathElems, release.Name, chartName, chartVersion) - chartPath := path.Join(pathElems...) + chartPath := filepath.Join(pathElems...) - err := helm.ChartPull(qualifiedChartName, chartPath) - if err != nil { - return nil, err - } - err = helm.ChartExport(qualifiedChartName, chartPath) - if err != nil { - return nil, err + if st.fs.DirectoryExistsAt(chartPath) { + st.logger.Debugf("chart already exists at %s", chartPath) + } else { + flags := []string{} + repo, _ := st.GetRepositoryAndNameFromChartName(release.Chart) + if repo != nil { + if repo.CaFile != "" { + flags = append(flags, "--ca-file", repo.CaFile) + } + if repo.CertFile != "" && repo.KeyFile != "" { + flags = append(flags, "--cert-file", repo.CertFile, "--key-file", repo.KeyFile) + } + if repo.SkipTLSVerify { + flags = append(flags, "--insecure-skip-tls-verify") + } + } + + err := helm.ChartPull(qualifiedChartName, chartPath, flags...) + if err != nil { + return nil, err + } + + err = helm.ChartExport(qualifiedChartName, chartPath) + if err != nil { + return nil, err + } } fullChartPath, err := findChartDirectory(chartPath) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/state/temp_test.go new/helmfile-0.155.1/pkg/state/temp_test.go --- old/helmfile-0.155.0/pkg/state/temp_test.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/state/temp_test.go 2023-07-25 00:00:14.000000000 +0200 @@ -38,39 +38,39 @@ run(testcase{ subject: "baseline", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, - want: "foo-values-58d856f487", + want: "foo-values-7884dc8d7c", }) run(testcase{ subject: "different bytes content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: []byte(`{"k":"v"}`), - want: "foo-values-6d96d874f6", + want: "foo-values-67d6bbf498", }) run(testcase{ subject: "different map content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: map[string]any{"k": "v"}, - want: "foo-values-77cdb7dbb6", + want: "foo-values-5d86d867b", }) run(testcase{ subject: "different chart", release: ReleaseSpec{Name: "foo", Chart: "stable/envoy"}, - want: "foo-values-66cd476bbb", + want: "foo-values-5c47fc4b6d", }) run(testcase{ subject: "different name", release: ReleaseSpec{Name: "bar", Chart: "incubator/raw"}, - want: "bar-values-5d59565d5b", + want: "bar-values-7c87d9b8b", }) run(testcase{ subject: "specific ns", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw", Namespace: "myns"}, - want: "myns-foo-values-644b7dfd78", + want: "myns-foo-values-7fbc456bb4", }) for id, n := range ids { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/pkg/testutil/mocks.go new/helmfile-0.155.1/pkg/testutil/mocks.go --- old/helmfile-0.155.0/pkg/testutil/mocks.go 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/pkg/testutil/mocks.go 2023-07-25 00:00:14.000000000 +0200 @@ -50,7 +50,7 @@ helm.doPanic() return nil } -func (helm *noCallHelmExec) ChartExport(chart string, path string, flags ...string) error { +func (helm *noCallHelmExec) ChartExport(chart string, path string) error { helm.doPanic() return nil } @@ -85,7 +85,7 @@ helm.doPanic() return nil } -func (helm *noCallHelmExec) RegistryLogin(name string, username string, password string) error { +func (helm *noCallHelmExec) RegistryLogin(name, username, password, caFile, certFile, keyFile string, skipTLSVerify bool) error { helm.doPanic() return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/config.yaml new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/config.yaml --- old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/config.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/config.yaml 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,5 @@ +chartifyTempDir: environment_missing_in_subhelmfile +helmfileArgs: +- --environment +- test +- template diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml --- old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,15 @@ +environments: + prod: + values: + - foo: prod + +--- + +releases: +- name: raw + chart: ../../../charts/raw-0.0.1 + values: + - templates: + - | + subhelmfile: {{ .Values.foo }} + envName: {{ .Values.envName }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml --- old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,15 @@ +environments: + test: + values: + - foo: test + +--- + +releases: +- name: raw + chart: ../../../charts/raw-0.0.1 + values: + - templates: + - | + subhelmfile: {{ .Values.foo }} + envName: {{ .Values.envName }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml --- old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,12 @@ +environments: + test: + values: + - test.yaml.gotmpl +--- +helmfiles: +- path: helmfiles/test.yaml + values: + - envName: {{ .Values.envName }} +- path: helmfiles/prod.yaml + values: + - envName: {{ .Values.envName }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/output.yaml new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/output.yaml --- old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/output.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/output.yaml 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,7 @@ +Building dependency release=raw, chart=../../../charts/raw-0.0.1 +Templating release=raw, chart=../../../charts/raw-0.0.1 +--- +# Source: raw/templates/resources.yaml +subhelmfile: test +envName: test + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/test.yaml.gotmpl new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/test.yaml.gotmpl --- old/helmfile-0.155.0/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/test.yaml.gotmpl 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/test.yaml.gotmpl 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1 @@ +envName: {{ .Environment.Name }} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/integration/run.sh new/helmfile-0.155.1/test/integration/run.sh --- old/helmfile-0.155.0/test/integration/run.sh 2023-06-27 08:21:41.000000000 +0200 +++ new/helmfile-0.155.1/test/integration/run.sh 2023-07-25 00:00:14.000000000 +0200 @@ -76,6 +76,7 @@ # TEST CASES---------------------------------------------------------------------------------------------------------- +. ${dir}/test-cases/helmfile-double-fetch.sh . ${dir}/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh . ${dir}/test-cases/kustomized-fetch.sh . ${dir}/test-cases/happypath.sh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/integration/test-cases/helmfile-double-fetch/input/helmfile.yaml new/helmfile-0.155.1/test/integration/test-cases/helmfile-double-fetch/input/helmfile.yaml --- old/helmfile-0.155.0/test/integration/test-cases/helmfile-double-fetch/input/helmfile.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/integration/test-cases/helmfile-double-fetch/input/helmfile.yaml 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,8 @@ +repositories: + - name: docker + url: registry-1.docker.io + oci: true +releases: + - name: docker/bitnamicharts/matomo + chart: docker/bitnamicharts/matomo + version: "1.1.2" \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/integration/test-cases/helmfile-double-fetch.sh new/helmfile-0.155.1/test/integration/test-cases/helmfile-double-fetch.sh --- old/helmfile-0.155.0/test/integration/test-cases/helmfile-double-fetch.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/integration/test-cases/helmfile-double-fetch.sh 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,13 @@ +helmfile_double_fetch_case_input_dir="${cases_dir}/helmfile-double-fetch/input" + +config_file="helmfile.yaml" + +test_start "helmfile fetch with helmfile_double_fetch" + +info "Comparing fetch/helmfile_double_fetch_first" +${helmfile} -f ${helmfile_double_fetch_case_input_dir}/${config_file} fetch --output-dir /tmp/chartdir || fail "\"helmfile fetch\" shouldn't fail" + +info "Comparing template/helmfile_double_fetch_second" +${helmfile} -f ${helmfile_double_fetch_case_input_dir}/${config_file} fetch --output-dir /tmp/chartdir || fail "\"helmfile fetch\" shouldn't fail" + +test_pass "helmfile fetch with helmfile_double_fetch" \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/integration/test-cases/skip-diff-output/input/helmfile.yaml new/helmfile-0.155.1/test/integration/test-cases/skip-diff-output/input/helmfile.yaml --- old/helmfile-0.155.0/test/integration/test-cases/skip-diff-output/input/helmfile.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/integration/test-cases/skip-diff-output/input/helmfile.yaml 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,36 @@ +releases: +- name: foo + chart: ../../../charts/raw + values: + - templates: + - | + apiVersion: v1 + kind: ConfigMap + metadata: + name: {{`{{ .Release.Name }}`}}-1 + namespace: {{`{{ .Release.Namespace }}`}} + data: + foo: FOO + dep: + templates: + - | + apiVersion: v1 + kind: ConfigMap + metadata: + name: {{`{{ .Release.Name }}`}}-2 + namespace: {{`{{ .Release.Namespace }}`}} + data: + bar: BAR + suppressDiff: true +- name: baz + chart: ../../../charts/raw + values: + - templates: + - | + apiVersion: v1 + kind: ConfigMap + metadata: + name: {{`{{ .Release.Name }}`}}-3 + namespace: {{`{{ .Release.Namespace }}`}} + data: + baz: BAZ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/integration/test-cases/skip-diff-output/output/diff-result new/helmfile-0.155.1/test/integration/test-cases/skip-diff-output/output/diff-result --- old/helmfile-0.155.0/test/integration/test-cases/skip-diff-output/output/diff-result 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/integration/test-cases/skip-diff-output/output/diff-result 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,20 @@ +Building dependency release=foo, chart=../../../charts/raw +Building dependency release=baz, chart=../../../charts/raw +Comparing release=foo, chart=../../../charts/raw + +Comparing release=baz, chart=../../../charts/raw +******************** + + Release was not present in Helm. Diff will show entire contents as new. + +******************** +helmfile-tests, baz-3, ConfigMap (v1) has been added: +- ++ # Source: raw/templates/resources.yaml ++ apiVersion: v1 ++ kind: ConfigMap ++ metadata: ++ name: baz-3 ++ namespace: helmfile-tests ++ data: ++ baz: BAZ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/integration/test-cases/skip-diff-output/output/diff-result-live new/helmfile-0.155.1/test/integration/test-cases/skip-diff-output/output/diff-result-live --- old/helmfile-0.155.0/test/integration/test-cases/skip-diff-output/output/diff-result-live 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/integration/test-cases/skip-diff-output/output/diff-result-live 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,20 @@ +Live output is enabled +Building dependency release=foo, chart=../../../charts/raw +Building dependency release=baz, chart=../../../charts/raw +******************** + + Release was not present in Helm. Diff will show entire contents as new. + +******************** +helmfile-tests, baz-3, ConfigMap (v1) has been added: +- ++ # Source: raw/templates/resources.yaml ++ apiVersion: v1 ++ kind: ConfigMap ++ metadata: ++ name: baz-3 ++ namespace: helmfile-tests ++ data: ++ baz: BAZ +Comparing release=foo, chart=../../../charts/raw +Comparing release=baz, chart=../../../charts/raw diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/integration/test-cases/skip-diff-output/output/template-result new/helmfile-0.155.1/test/integration/test-cases/skip-diff-output/output/template-result --- old/helmfile-0.155.0/test/integration/test-cases/skip-diff-output/output/template-result 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/integration/test-cases/skip-diff-output/output/template-result 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,23 @@ +Building dependency release=foo, chart=../../../charts/raw +Building dependency release=baz, chart=../../../charts/raw +Templating release=foo, chart=../../../charts/raw +--- +# Source: raw/templates/resources.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: foo-1 + namespace: helmfile-tests +data: + foo: FOO + +Templating release=baz, chart=../../../charts/raw +--- +# Source: raw/templates/resources.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: baz-3 + namespace: helmfile-tests +data: + baz: BAZ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.155.0/test/integration/test-cases/skip-diff-output/output/template-result-live new/helmfile-0.155.1/test/integration/test-cases/skip-diff-output/output/template-result-live --- old/helmfile-0.155.0/test/integration/test-cases/skip-diff-output/output/template-result-live 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.155.1/test/integration/test-cases/skip-diff-output/output/template-result-live 2023-07-25 00:00:14.000000000 +0200 @@ -0,0 +1,25 @@ +Live output is enabled +Building dependency release=foo, chart=../../../charts/raw +Building dependency release=baz, chart=../../../charts/raw +Templating release=foo, chart=../../../charts/raw +--- +# Source: raw/templates/resources.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: foo-1 + namespace: helmfile-tests +data: + foo: FOO + +Templating release=baz, chart=../../../charts/raw +--- +# Source: raw/templates/resources.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: baz-3 + namespace: helmfile-tests +data: + baz: BAZ + ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/helmfile/vendor.tar.gz /work/SRC/openSUSE:Factory/.helmfile.new.11712/vendor.tar.gz differ: char 5, line 1