Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package helmfile for openSUSE:Factory 
checked in at 2024-01-25 18:40:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/helmfile (Old)
 and      /work/SRC/openSUSE:Factory/.helmfile.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "helmfile"

Thu Jan 25 18:40:53 2024 rev:50 rq:1141198 version:0.161.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/helmfile/helmfile.changes        2023-12-28 
23:02:18.096280505 +0100
+++ /work/SRC/openSUSE:Factory/.helmfile.new.1815/helmfile.changes      
2024-01-25 18:40:56.194081890 +0100
@@ -1,0 +2,75 @@
+Wed Jan 24 09:22:29 UTC 2024 - Manfred Hollstein <manfre...@gmx.net>
+
+- Update to version 0.161.0:
+  What's Changed
+  * build(deps): bump github.com/helmfile/vals from 0.31.0 to
+    0.32.0 by @dependabot in #1250
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.8 to
+    1.49.9 by @dependabot in #1251
+  * feat: respect helmfile.lock with ad-hoc kustimzation by
+    @vlpav030 in #1244
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.9 to
+    1.49.10 by @dependabot in #1257
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.10 to
+    1.49.11 by @dependabot in #1259
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.11 to
+    1.49.12 by @dependabot in #1260
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.12 to
+    1.49.13 by @dependabot in #1263
+  * fix: prevent preparing chart for disabled releases by
+    @mighty1231 in #1210
+  * add support for HELMFILE_FILE_PATH envvar to set -f by
+    @sstarcher in #1255
+  * fix checker error message by @petelock in #1266
+  * build(deps): bump golang.org/x/term from 0.15.0 to 0.16.0
+    by @dependabot in #1267
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.13 to
+    1.49.14 by @dependabot in #1269
+  * build(deps): bump golang.org/x/sync from 0.5.0 to 0.6.0 by
+    @dependabot in #1268
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.14 to
+    1.49.15 by @dependabot in #1270
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.15 to
+    1.49.16 by @dependabot in #1272
+  * build(deps): bump github.com/cloudflare/circl from 1.3.3 to
+    1.3.7 by @dependabot in #1273
+  * feat: include func support more template functions by
+    @yxxhero in #1277
+  * chore: add zhihu to list of helmfile users by @zhaogaolong
+    in #1278
+  * Bugfix: do not print registry password to stdout when running
+    by @ennekein in #1275
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.16 to
+    1.49.17 by @dependabot in #1279
+  * build(deps): bump gitpython from 3.1.37 to 3.1.41 in /docs
+    by @dependabot in #1280
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.17 to
+    1.49.18 by @dependabot in #1283
+  * build(deps): bump jinja2 from 3.1.1 to 3.1.3 in /docs by
+    @dependabot in #1284
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.18 to
+    1.49.19 by @dependabot in #1285
+  * feat: bump helm-diff to v3.9.1 by @yxxhero in #1286
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.19 to
+    1.49.21 by @dependabot in #1287
+  * Bump helm diff to 3.9.2 by @kxkcx in #1291
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.21 to
+    1.49.22 by @dependabot in #1292
+  * fix: issue with pre-release Helm version by @yxxhero in #1293
+  * build(deps): bump k8s.io/apimachinery from 0.29.0 to 0.29.1
+    by @dependabot in #1298
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.22 to
+    1.49.23 by @dependabot in #1296
+  * Bump helm diff to 3.9.2 by @kxkcx in #1299
+  * feat: bump helm to 3.14.0 by @yxxhero in #1295
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.23 to
+    1.49.24 by @dependabot in #1300
+  * feat: bump vals to 0.33.0 by @yxxhero in #1302
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.49.24 to
+    1.50.0 by @dependabot in #1303
+  * build(deps): bump github.com/aws/aws-sdk-go from 1.50.0 to
+    1.50.1 by @dependabot in #1305
+  * Fix the password display problem when passing the chart link
+    by @NavesEdu in #1281
+
+-------------------------------------------------------------------

Old:
----
  helmfile-0.160.0.tar.gz

New:
----
  helmfile-0.161.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ helmfile.spec ++++++
--- /var/tmp/diff_new_pack.INvSRo/_old  2024-01-25 18:40:57.938144114 +0100
+++ /var/tmp/diff_new_pack.INvSRo/_new  2024-01-25 18:40:57.938144114 +0100
@@ -1,8 +1,8 @@
 #
 # spec file for package helmfile
 #
-# Copyright (c) 2023 SUSE LLC
-#               2021 Manfred Hollstein <manfre...@gmx.net>
+# Copyright (c) 2024 SUSE LLC
+#               2021-2024 Manfred Hollstein <manfre...@gmx.net>
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
 #
 
 
-%define git_commit e9cb5a05fe38eeaceb89e6b268882140f83e76af
+%define git_commit 430677d43cf4e591aa86a6c24268d02f15f7162a
 Name:           helmfile
-Version:        0.160.0
+Version:        0.161.0
 Release:        0
 Summary:        Deploy Kubernetes Helm Charts
 License:        MIT
@@ -27,8 +27,8 @@
 URL:            https://github.com/helmfile/helmfile
 Source:         %{name}-%{version}.tar.gz
 Source1:        vendor.tar.gz
-Requires:       helm >= 3.11.1
-Recommends:     helm >= 3.13.1
+Requires:       helm >= 3.13.1
+Recommends:     helm >= 3.14.0
 BuildRequires:  golang-packaging
 BuildRequires:  xz
 BuildRequires:  golang(API) >= 1.21

++++++ _service ++++++
--- /var/tmp/diff_new_pack.INvSRo/_old  2024-01-25 18:40:57.974145399 +0100
+++ /var/tmp/diff_new_pack.INvSRo/_new  2024-01-25 18:40:57.978145541 +0100
@@ -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.160.0</param>
+    <param name="revision">v0.161.0</param>
     <param name="changesgenerate">enable</param>
   </service>
   <service name="recompress" mode="manual">

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.INvSRo/_old  2024-01-25 18:40:58.002146398 +0100
+++ /var/tmp/diff_new_pack.INvSRo/_new  2024-01-25 18:40:58.006146540 +0100
@@ -1,5 +1,5 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/helmfile/helmfile.git</param>
-              <param 
name="changesrevision">e9cb5a05fe38eeaceb89e6b268882140f83e76af</param></service></servicedata>
+              <param 
name="changesrevision">430677d43cf4e591aa86a6c24268d02f15f7162a</param></service></servicedata>
 

++++++ helmfile-0.160.0.tar.gz -> helmfile-0.161.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/.github/workflows/ci.yaml 
new/helmfile-0.161.0/.github/workflows/ci.yaml
--- old/helmfile-0.160.0/.github/workflows/ci.yaml      2023-12-22 
22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/.github/workflows/ci.yaml      2024-01-24 
02:01:04.000000000 +0100
@@ -54,13 +54,13 @@
           # Helm maintains the latest minor version only and therefore each 
Helmfile version supports 2 Helm minor versions.
           # That's why we cover only 2 Helm minor versions in this matrix.
           # See 
https://github.com/helmfile/helmfile/pull/286#issuecomment-1250161182 for more 
context.
-          - helm-version: v3.12.3
+          - helm-version: v3.13.3
             kustomize-version: v4.5.7
             plugin-secrets-version: 3.15.0
-            plugin-diff-version: 3.7.0
+            plugin-diff-version: 3.8.1
             extra-helmfile-flags: ''
             v1mode: ''
-          - helm-version: v3.12.3
+          - helm-version: v3.13.3
             kustomize-version: v5.2.1
             # We assume that the helm-secrets plugin is supposed to
             # work with the two most recent helm minor versions.
@@ -68,34 +68,34 @@
             # we will mark this combination as failable,
             # and instruct users to upgrade helm and helm-secrets at once.
             plugin-secrets-version: 4.5.1
-            plugin-diff-version: 3.8.1
+            plugin-diff-version: 3.9.2
             extra-helmfile-flags: ''
             v1mode: ''
-          - helm-version: v3.13.3
+          - helm-version: v3.14.0
             kustomize-version: v4.5.7
             plugin-secrets-version: 3.15.0
-            plugin-diff-version: 3.7.0
+            plugin-diff-version: 3.8.1
             extra-helmfile-flags: ''
             v1mode: ''
-          - helm-version: v3.13.3
+          - helm-version: v3.14.0
             kustomize-version: v5.2.1
             plugin-secrets-version: 4.5.1
-            plugin-diff-version: 3.8.1
+            plugin-diff-version: 3.9.2
             extra-helmfile-flags: ''
             v1mode: ''
           # Helmfile v1
-          - helm-version: v3.13.3
+          - helm-version: v3.14.0
             kustomize-version: v5.2.1
             plugin-secrets-version: 4.5.1
-            plugin-diff-version: 3.8.1
+            plugin-diff-version: 3.9.2
             extra-helmfile-flags: ''
             v1mode: 'true'
           # In case you need to test some optional helmfile features,
           # enable it via extra-helmfile-flags below.
-          - helm-version: v3.13.3
+          - helm-version: v3.14.0
             kustomize-version: v5.2.1
             plugin-secrets-version: 4.5.1
-            plugin-diff-version: 3.8.1
+            plugin-diff-version: 3.9.2
             extra-helmfile-flags: '--enable-live-output'
             v1mode: ''
     steps:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/Dockerfile 
new/helmfile-0.161.0/Dockerfile
--- old/helmfile-0.160.0/Dockerfile     2023-12-22 22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/Dockerfile     2024-01-24 02:01:04.000000000 +0100
@@ -30,7 +30,7 @@
 ARG HELM_DATA_HOME="${HOME}/.local/share/helm"
 ENV HELM_DATA_HOME="${HELM_DATA_HOME}"
 
-ARG HELM_VERSION="v3.13.3"
+ARG HELM_VERSION="v3.14.0"
 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="bbb6e7c6201458b235f335280f35493950dcd856825ddcfd1d3b40ae757d5c7d"  
;; \
-        "linux/arm64")  
HELM_SHA256="44aaa094ae24d01e8c36e327e1837fd3377a0f9152626da088384c5bc6d94562"  
;; \
+        "linux/amd64")  
HELM_SHA256="f43e1c3387de24547506ab05d24e5309c0ce0b228c23bd8aa64e9ec4b8206651"  
;; \
+        "linux/arm64")  
HELM_SHA256="b29e61674731b15f6ad3d1a3118a99d3cc2ab25a911aad1b8ac8c72d5a9d2952"  
;; \
     esac && \
     echo "${HELM_SHA256}  ${HELM_FILENAME}" | sha256sum -c && \
     echo Extracting ${HELM_FILENAME}... && \
@@ -94,7 +94,7 @@
     [ "$(age --version)" = "${AGE_VERSION}" ] && \
     [ "$(age-keygen --version)" = "${AGE_VERSION}" ]
 
-RUN helm plugin install https://github.com/databus23/helm-diff --version 
v3.8.1 && \
+RUN helm plugin install https://github.com/databus23/helm-diff --version 
v3.9.2 && \
     helm plugin install https://github.com/jkroepke/helm-secrets --version 
v4.5.1 && \
     helm plugin install https://github.com/hypnoglow/helm-s3.git --version 
v0.15.1 && \
     helm plugin install https://github.com/aslafy-z/helm-git.git --version 
v0.15.1 && \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/Dockerfile.debian-stable-slim 
new/helmfile-0.161.0/Dockerfile.debian-stable-slim
--- old/helmfile-0.160.0/Dockerfile.debian-stable-slim  2023-12-22 
22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/Dockerfile.debian-stable-slim  2024-01-24 
02:01:04.000000000 +0100
@@ -35,7 +35,7 @@
 ARG HELM_DATA_HOME="${HOME}/.local/share/helm"
 ENV HELM_DATA_HOME="${HELM_DATA_HOME}"
 
-ARG HELM_VERSION="v3.13.3"
+ARG HELM_VERSION="v3.14.0"
 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="bbb6e7c6201458b235f335280f35493950dcd856825ddcfd1d3b40ae757d5c7d"  
;; \
-        "linux/arm64")  
HELM_SHA256="44aaa094ae24d01e8c36e327e1837fd3377a0f9152626da088384c5bc6d94562"  
;; \
+        "linux/amd64")  
HELM_SHA256="f43e1c3387de24547506ab05d24e5309c0ce0b228c23bd8aa64e9ec4b8206651"  
;; \
+        "linux/arm64")  
HELM_SHA256="b29e61674731b15f6ad3d1a3118a99d3cc2ab25a911aad1b8ac8c72d5a9d2952"  
;; \
     esac && \
     echo "${HELM_SHA256}  ${HELM_FILENAME}" | sha256sum -c && \
     echo Extracting ${HELM_FILENAME}... && \
@@ -99,7 +99,7 @@
     [ "$(age --version)" = "${AGE_VERSION}" ] && \
     [ "$(age-keygen --version)" = "${AGE_VERSION}" ]
 
-RUN helm plugin install https://github.com/databus23/helm-diff --version 
v3.8.1 && \
+RUN helm plugin install https://github.com/databus23/helm-diff --version 
v3.9.2 && \
     helm plugin install https://github.com/jkroepke/helm-secrets --version 
v4.5.1 && \
     helm plugin install https://github.com/hypnoglow/helm-s3.git --version 
v0.15.1 && \
     helm plugin install https://github.com/aslafy-z/helm-git.git --version 
v0.15.1 && \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/Dockerfile.ubuntu 
new/helmfile-0.161.0/Dockerfile.ubuntu
--- old/helmfile-0.160.0/Dockerfile.ubuntu      2023-12-22 22:36:48.000000000 
+0100
+++ new/helmfile-0.161.0/Dockerfile.ubuntu      2024-01-24 02:01:04.000000000 
+0100
@@ -35,7 +35,7 @@
 ARG HELM_DATA_HOME="${HOME}/.local/share/helm"
 ENV HELM_DATA_HOME="${HELM_DATA_HOME}"
 
-ARG HELM_VERSION="v3.13.3"
+ARG HELM_VERSION="v3.14.0"
 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="bbb6e7c6201458b235f335280f35493950dcd856825ddcfd1d3b40ae757d5c7d"  
;; \
-        "linux/arm64")  
HELM_SHA256="44aaa094ae24d01e8c36e327e1837fd3377a0f9152626da088384c5bc6d94562"  
;; \
+        "linux/amd64")  
HELM_SHA256="f43e1c3387de24547506ab05d24e5309c0ce0b228c23bd8aa64e9ec4b8206651"  
;; \
+        "linux/arm64")  
HELM_SHA256="b29e61674731b15f6ad3d1a3118a99d3cc2ab25a911aad1b8ac8c72d5a9d2952"  
;; \
     esac && \
     echo "${HELM_SHA256}  ${HELM_FILENAME}" | sha256sum -c && \
     echo Extracting ${HELM_FILENAME}... && \
@@ -99,7 +99,7 @@
     [ "$(age --version)" = "${AGE_VERSION}" ] && \
     [ "$(age-keygen --version)" = "${AGE_VERSION}" ]
 
-RUN helm plugin install https://github.com/databus23/helm-diff --version 
v3.8.1 && \
+RUN helm plugin install https://github.com/databus23/helm-diff --version 
v3.9.2 && \
     helm plugin install https://github.com/jkroepke/helm-secrets --version 
v4.5.1 && \
     helm plugin install https://github.com/hypnoglow/helm-s3.git --version 
v0.15.1 && \
     helm plugin install https://github.com/aslafy-z/helm-git.git --version 
v0.15.1 && \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/USERS.md 
new/helmfile-0.161.0/USERS.md
--- old/helmfile-0.160.0/USERS.md       2023-12-22 22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/USERS.md       2024-01-24 02:01:04.000000000 +0100
@@ -37,4 +37,5 @@
 | [Norddeutscher Rundfunk](https://www.ndr.de) | production | Using Helmfile 
since 2020 to deploy workloads to several similar clusters (dev, qa, prod, 
test, etc.) for sites tagesschau.de and sportschau.de. Thank you so much for 
your awesome work! | Hamburg, Germany | August 2022 |
 | [Dealhub](https://dealhub.io/) | production | Helmfile was an essential part 
of our k8s migration. Keep up the good work! | Holon, Israel | January 2023 |
 | [BlueLabs](https://bluelabs.eu/) | production | Helmfile is the cornerstone 
of our lightweight, auditable and centralized GKE deployments. | Europe | 
February 2021 |
+| [Zhihu](https://www.zhihu.com/) | production | helmfile is an important tool 
for the deployment of our basic components, which can achieve standardization 
and auditability. |China, Beijing | December 2023 |
 <!-- TABLE_END -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/docs/requirements.txt 
new/helmfile-0.161.0/docs/requirements.txt
--- old/helmfile-0.160.0/docs/requirements.txt  2023-12-22 22:36:48.000000000 
+0100
+++ new/helmfile-0.161.0/docs/requirements.txt  2024-01-24 02:01:04.000000000 
+0100
@@ -2,9 +2,9 @@
 click==8.1.2
 ghp-import==2.0.2
 gitdb==4.0.9
-GitPython==3.1.37
+GitPython==3.1.41
 importlib-metadata==4.11.3
-Jinja2==3.1.1
+Jinja2==3.1.3
 Markdown==3.3.6
 MarkupSafe==2.1.1
 mergedeep==1.3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/go.mod new/helmfile-0.161.0/go.mod
--- old/helmfile-0.160.0/go.mod 2023-12-22 22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/go.mod 2024-01-24 02:01:04.000000000 +0100
@@ -2,8 +2,6 @@
 
 go 1.21
 
-toolchain go1.21.0
-
 require (
        github.com/Masterminds/semver/v3 v3.2.1
        github.com/Masterminds/sprig/v3 v3.2.3
@@ -15,7 +13,7 @@
        github.com/gosuri/uitable v0.0.4
        github.com/hashicorp/go-getter v1.7.3
        github.com/helmfile/chartify v0.17.0
-       github.com/helmfile/vals v0.31.0
+       github.com/helmfile/vals v0.33.0
        github.com/imdario/mergo v0.3.16
        github.com/spf13/cobra v1.8.0
        github.com/spf13/pflag v1.0.5
@@ -24,11 +22,11 @@
        github.com/variantdev/dag v1.1.0
        go.szostok.io/version v1.2.0
        go.uber.org/zap v1.26.0
-       golang.org/x/sync v0.5.0
-       golang.org/x/term v0.15.0
+       golang.org/x/sync v0.6.0
+       golang.org/x/term v0.16.0
        gopkg.in/yaml.v2 v2.4.0
-       helm.sh/helm/v3 v3.13.3
-       k8s.io/apimachinery v0.29.0
+       helm.sh/helm/v3 v3.14.0
+       k8s.io/apimachinery v0.29.1
 )
 
 replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml 
v0.0.0-20220720070545-aaba007ebc22
@@ -47,7 +45,7 @@
        github.com/Azure/go-autorest/tracing v0.6.0 // indirect
        github.com/Masterminds/goutils v1.1.1 // indirect
        github.com/a8m/envsubst v1.3.0 // indirect
-       github.com/aws/aws-sdk-go v1.49.8
+       github.com/aws/aws-sdk-go v1.50.1
        github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // 
indirect
        github.com/blang/semver v3.5.1+incompatible // indirect
        github.com/dimchansky/utfbom v1.1.1 // indirect
@@ -96,9 +94,9 @@
        github.com/ulikunitz/xz v0.5.10 // indirect
        go.opencensus.io v0.24.0 // indirect
        go.uber.org/atomic v1.9.0 // indirect
-       golang.org/x/net v0.18.0 // indirect
+       golang.org/x/net v0.19.0 // indirect
        golang.org/x/oauth2 v0.12.0 // indirect
-       golang.org/x/sys v0.15.0 // indirect
+       golang.org/x/sys v0.16.0 // indirect
        golang.org/x/text v0.14.0 // indirect
        golang.org/x/time v0.3.0 // indirect
        golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
@@ -132,6 +130,7 @@
        github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4 // 
indirect
        github.com/Microsoft/hcsshim v0.11.4 // indirect
        github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // 
indirect
+       github.com/alessio/shellescape v1.4.1 // indirect
        github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de // 
indirect
        github.com/atotto/clipboard v0.1.4 // indirect
        github.com/aws/aws-sdk-go-v2 v1.21.0 // indirect
@@ -158,10 +157,12 @@
        github.com/beorn7/perks v1.0.1 // indirect
        github.com/cenkalti/backoff/v3 v3.2.2 // indirect
        github.com/cespare/xxhash/v2 v2.2.0 // indirect
-       github.com/cloudflare/circl v1.3.3 // indirect
+       github.com/cloudflare/circl v1.3.7 // indirect
        github.com/containerd/containerd v1.7.11 // indirect
        github.com/containerd/log v0.1.0 // indirect
        github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect
+       github.com/cyberark/conjur-api-go v0.11.1 // indirect
+       github.com/danieljoos/wincred v1.1.2 // indirect
        github.com/docker/cli v24.0.6+incompatible // indirect
        github.com/docker/distribution v2.8.2+incompatible // indirect
        github.com/docker/docker v24.0.7+incompatible // indirect
@@ -170,8 +171,8 @@
        github.com/docker/go-metrics v0.0.1 // indirect
        github.com/docker/go-units v0.5.0 // indirect
        github.com/dustin/go-humanize v1.0.1 // indirect
-       github.com/emicklei/go-restful/v3 v3.10.1 // indirect
-       github.com/evanphx/json-patch v5.6.0+incompatible // indirect
+       github.com/emicklei/go-restful/v3 v3.11.0 // indirect
+       github.com/evanphx/json-patch v5.7.0+incompatible // indirect
        github.com/felixge/httpsnoop v1.0.3 // indirect
        github.com/getsops/gopgagent v0.0.0-20170926210634-4d7ea76ff71a // 
indirect
        github.com/getsops/sops/v3 v3.8.0 // indirect
@@ -182,6 +183,7 @@
        github.com/go-openapi/jsonpointer v0.19.6 // indirect
        github.com/go-openapi/jsonreference v0.20.2 // indirect
        github.com/go-openapi/swag v0.22.3 // indirect
+       github.com/godbus/dbus/v5 v5.1.0 // indirect
        github.com/gogo/protobuf v1.3.2 // indirect
        github.com/golang-jwt/jwt/v5 v5.1.0 // indirect
        github.com/google/btree v1.0.1 // indirect
@@ -234,6 +236,7 @@
        github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
        github.com/urfave/cli v1.22.14 // indirect
        github.com/xlab/treeprint v1.2.0 // indirect
+       github.com/zalando/go-keyring v0.2.3-0.20230503081219-17db2e5354bd // 
indirect
        go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 
// indirect
        go.opentelemetry.io/otel v1.19.0 // indirect
        go.opentelemetry.io/otel/metric v1.19.0 // indirect
@@ -247,9 +250,9 @@
        gopkg.in/gookit/color.v1 v1.1.6 // indirect
        gopkg.in/inf.v0 v0.9.1 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
-       k8s.io/api v0.28.4 // indirect
-       k8s.io/cli-runtime v0.28.4 // indirect
-       k8s.io/client-go v0.28.4 // indirect
+       k8s.io/api v0.29.0 // indirect
+       k8s.io/cli-runtime v0.29.0 // indirect
+       k8s.io/client-go v0.29.0 // indirect
        k8s.io/klog/v2 v2.110.1 // indirect
        k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
        k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/go.sum new/helmfile-0.161.0/go.sum
--- old/helmfile-0.160.0/go.sum 2023-12-22 22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/go.sum 2024-01-24 02:01:04.000000000 +0100
@@ -268,6 +268,8 @@
 github.com/a8m/envsubst v1.3.0/go.mod 
h1:MVUTQNGQ3tsjOOtKCNd+fl8RzhsXcDvvAEzkhGtlsbY=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod 
h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod 
h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/alessio/shellescape v1.4.1 
h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0=
+github.com/alessio/shellescape v1.4.1/go.mod 
h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30=
 github.com/antihax/optional v1.0.0/go.mod 
h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de 
h1:FxWPpzIjnTlhPwqqXc4/vE0f7GvRjuAsbW+HOIe8KnA=
 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de/go.mod 
h1:DCaWoUhZrYW9p1lxo/cm8EmUOOzAPSEZNGF2DK1dJgw=
@@ -275,8 +277,8 @@
 github.com/atotto/clipboard v0.1.4 
h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
 github.com/atotto/clipboard v0.1.4/go.mod 
h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
 github.com/aws/aws-sdk-go v1.44.122/go.mod 
h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
-github.com/aws/aws-sdk-go v1.49.8 
h1:gKgEiyJ8CPnr4r6pS06WfNXvp6z34JER1pBIwuocvVA=
-github.com/aws/aws-sdk-go v1.49.8/go.mod 
h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
+github.com/aws/aws-sdk-go v1.50.1 
h1:AwnLUM7TcH9vMZqA4TcDKmGfLmDW5VXwT5tPH6kXylo=
+github.com/aws/aws-sdk-go v1.50.1/go.mod 
h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
 github.com/aws/aws-sdk-go-v2 v1.21.0 
h1:gMT0IW+03wtYJhRqTVYn0wLzwdnK9sRMcxmtfGzRdJc=
 github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod 
h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pfHvDagGEp0M=
 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.13 
h1:OPLEkmhXf6xFPiz0bLeDArZIDx1NNS4oJyG4nv3Gct0=
@@ -351,8 +353,9 @@
 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod 
h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
 github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod 
h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
 github.com/client9/misspell v0.3.4/go.mod 
h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cloudflare/circl v1.3.3 
h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs=
 github.com/cloudflare/circl v1.3.3/go.mod 
h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
+github.com/cloudflare/circl v1.3.7 
h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
+github.com/cloudflare/circl v1.3.7/go.mod 
h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod 
h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod 
h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod 
h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
@@ -379,6 +382,10 @@
 github.com/creack/pty v1.1.17/go.mod 
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
 github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
 github.com/creack/pty v1.1.18/go.mod 
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
+github.com/cyberark/conjur-api-go v0.11.1 
h1:vjaMkw0geJsA+ikMM6UDLg4VLFQWKo/B0i9IWlOQ1f0=
+github.com/cyberark/conjur-api-go v0.11.1/go.mod 
h1:n1p46Hj9l8wkZjM17cVYdfcatyPboWyioLGlC0QszCs=
+github.com/danieljoos/wincred v1.1.2 
h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0=
+github.com/danieljoos/wincred v1.1.2/go.mod 
h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -408,8 +415,8 @@
 github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod 
h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
 github.com/dustin/go-humanize v1.0.1 
h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
 github.com/dustin/go-humanize v1.0.1/go.mod 
h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
-github.com/emicklei/go-restful/v3 v3.10.1 
h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ=
-github.com/emicklei/go-restful/v3 v3.10.1/go.mod 
h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/emicklei/go-restful/v3 v3.11.0 
h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
+github.com/emicklei/go-restful/v3 v3.11.0/go.mod 
h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod 
h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane 
v0.9.1-0.20191026205805-5f8ba28d4473/go.mod 
h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.4/go.mod 
h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
@@ -420,8 +427,8 @@
 github.com/envoyproxy/go-control-plane 
v0.9.10-0.20210907150352-cf90f659a021/go.mod 
h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
 github.com/envoyproxy/go-control-plane 
v0.10.2-0.20220325020618-49ff273808a1/go.mod 
h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod 
h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/evanphx/json-patch v5.6.0+incompatible 
h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U=
-github.com/evanphx/json-patch v5.6.0+incompatible/go.mod 
h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch v5.7.0+incompatible 
h1:vgGkfT/9f8zE6tvSCe74nfpAVDQ2tG6yudJd8LBksgI=
+github.com/evanphx/json-patch v5.7.0+incompatible/go.mod 
h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 github.com/fatih/color v1.7.0/go.mod 
h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
 github.com/fatih/color v1.15.0/go.mod 
h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
@@ -472,6 +479,8 @@
 github.com/go-test/deep v1.1.0/go.mod 
h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
 github.com/goccy/go-yaml v1.11.2 
h1:joq77SxuyIs9zzxEjgyLBugMQ9NEgTWxXfz2wVqwAaQ=
 github.com/goccy/go-yaml v1.11.2/go.mod 
h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU=
+github.com/godbus/dbus/v5 v5.1.0 
h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
+github.com/godbus/dbus/v5 v5.1.0/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 github.com/gogo/protobuf v1.1.1/go.mod 
h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod 
h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
@@ -654,8 +663,8 @@
 github.com/hashicorp/vault/api v1.10.0/go.mod 
h1:jo5Y/ET+hNyz+JnKDt8XLAdKs+AM0G5W0Vp1IrFI8N8=
 github.com/helmfile/chartify v0.17.0 
h1:v+LJfH461xqpet/aCwsBpNjJ+HG8miIjN2kmhIqBkxs=
 github.com/helmfile/chartify v0.17.0/go.mod 
h1:7pmJlGn79CDMBD1+NbDJtE3L7q0hZf5GyBCJrV78vLA=
-github.com/helmfile/vals v0.31.0 
h1:x6YyQU8Vw2urfrnXDvHp5Lwm7jozf0QjQwx2yeruutU=
-github.com/helmfile/vals v0.31.0/go.mod 
h1:pYu2Sd9vQlwiBLn3ktuIsLeUNgQx+9bnFvNYQN99MmI=
+github.com/helmfile/vals v0.33.0 
h1:7O4Y9/q8BF5D8zpfpbcefrmuZCbDUtjetlkvlfaQOtM=
+github.com/helmfile/vals v0.33.0/go.mod 
h1:zjw6ogcdxQ1uFN8Ap86sV+by1/WYyC0JCLMosM2dHFk=
 github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec 
h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog=
 github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec/go.mod 
h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68=
 github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f 
h1:7LYC+Yfkj3CTRcShK0KOL/w6iTiKyqqBA9a41Wnggw8=
@@ -914,6 +923,8 @@
 github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod 
h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
 github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f 
h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY=
 github.com/yvasiyarov/newrelic_platform_go 
v0.0.0-20140908184405-b21fdbd4370f/go.mod 
h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
+github.com/zalando/go-keyring v0.2.3-0.20230503081219-17db2e5354bd 
h1:D+eeEnOlWcMXbwZ5X3oy68nHafBtGcj1jMKFHtVdybY=
+github.com/zalando/go-keyring v0.2.3-0.20230503081219-17db2e5354bd/go.mod 
h1:sI3evg9Wvpw3+n4SqplGSJUMwtDeROfD4nsFz4z9PG0=
 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
 go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
 go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@@ -1051,8 +1062,8 @@
 golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
 golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
-golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg=
-golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
+golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
+golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1095,8 +1106,8 @@
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
-golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
+golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1147,6 +1158,7 @@
 golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -1173,8 +1185,8 @@
 golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
-golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU=
+golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod 
h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -1183,8 +1195,8 @@
 golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
 golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
 golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
-golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
-golang.org/x/term v0.15.0/go.mod 
h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
+golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE=
+golang.org/x/term v0.16.0/go.mod 
h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
 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=
@@ -1259,8 +1271,8 @@
 golang.org/x/tools v0.1.5/go.mod 
h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 golang.org/x/tools v0.6.0/go.mod 
h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
-golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss=
-golang.org/x/tools v0.12.0/go.mod 
h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM=
+golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA=
+golang.org/x/tools v0.16.1/go.mod 
h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1512,8 +1524,8 @@
 gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
 gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o=
 gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g=
-helm.sh/helm/v3 v3.13.3 h1:0zPEdGqHcubehJHP9emCtzRmu8oYsJFRrlVF3TFj8xY=
-helm.sh/helm/v3 v3.13.3/go.mod h1:3OKO33yI3p4YEXtTITN2+4oScsHeQe71KuzhlZ+aPfg=
+helm.sh/helm/v3 v3.14.0 h1:TaZIH6uOchn7L27ptwnnuHJiFrT/BsD4dFdp/HLT2nM=
+helm.sh/helm/v3 v3.14.0/go.mod h1:2itvvDv2WSZXTllknfQo6j7u3VVgMAvm8POCDgYH424=
 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=
@@ -1521,14 +1533,14 @@
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod 
h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod 
h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 honnef.co/go/tools v0.0.1-2020.1.4/go.mod 
h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-k8s.io/api v0.28.4 h1:8ZBrLjwosLl/NYgv1P7EQLqoO8MGQApnbgH8tu3BMzY=
-k8s.io/api v0.28.4/go.mod h1:axWTGrY88s/5YE+JSt4uUi6NMM+gur1en2REMR7IRj0=
-k8s.io/apimachinery v0.29.0 h1:+ACVktwyicPz0oc6MTMLwa2Pw3ouLAfAon1wPLtG48o=
-k8s.io/apimachinery v0.29.0/go.mod 
h1:eVBxQ/cwiJxH58eK/jd/vAk4mrxmVlnpBH5J2GbMeis=
-k8s.io/cli-runtime v0.28.4 h1:IW3aqSNFXiGDllJF4KVYM90YX4cXPGxuCxCVqCD8X+Q=
-k8s.io/cli-runtime v0.28.4/go.mod 
h1:MLGRB7LWTIYyYR3d/DOgtUC8ihsAPA3P8K8FDNIqJ0k=
-k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY=
-k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4=
+k8s.io/api v0.29.0 h1:NiCdQMY1QOp1H8lfRyeEf8eOwV6+0xA6XEE44ohDX2A=
+k8s.io/api v0.29.0/go.mod h1:sdVmXoz2Bo/cb77Pxi71IPTSErEW32xa4aXwKH7gfBA=
+k8s.io/apimachinery v0.29.1 h1:KY4/E6km/wLBguvCZv8cKTeOwwOBqFNjwJIdMkMbbRc=
+k8s.io/apimachinery v0.29.1/go.mod 
h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU=
+k8s.io/cli-runtime v0.29.0 h1:q2kC3cex4rOBLfPOnMSzV2BIrrQlx97gxHJs21KxKS4=
+k8s.io/cli-runtime v0.29.0/go.mod 
h1:VKudXp3X7wR45L+nER85YUzOQIru28HQpXr0mTdeCrk=
+k8s.io/client-go v0.29.0 h1:KmlDtFcrdUzOYrBhXHgKw5ycWzc3ryPX5mQe0SkG3y8=
+k8s.io/client-go v0.29.0/go.mod h1:yLkXH4HKMAywcrD82KMSmfYg2DlE8mepPR4JGSo5n38=
 k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0=
 k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo=
 k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 
h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/app/app.go 
new/helmfile-0.161.0/pkg/app/app.go
--- old/helmfile-0.160.0/pkg/app/app.go 2023-12-22 22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/pkg/app/app.go 2024-01-24 02:01:04.000000000 +0100
@@ -15,6 +15,7 @@
        "go.uber.org/zap"
 
        "github.com/helmfile/helmfile/pkg/argparser"
+       "github.com/helmfile/helmfile/pkg/envvar"
        "github.com/helmfile/helmfile/pkg/filesystem"
        "github.com/helmfile/helmfile/pkg/helmexec"
        "github.com/helmfile/helmfile/pkg/plugins"
@@ -1216,7 +1217,7 @@
                case defaultFile != "":
                        return []string{defaultFile}, nil
                default:
-                       return []string{}, fmt.Errorf("no state file found. It 
must be named %s/*.{yaml,yml,yaml.gotmpl,yml.gotmpl}, %s, or %s, otherwise 
specified with the --file flag", DefaultHelmfileDirectory, DefaultHelmfile, 
DefaultGotmplHelmfile)
+                       return []string{}, fmt.Errorf("no state file found. It 
must be named %s/*.{yaml,yml,yaml.gotmpl,yml.gotmpl}, %s, or %s, otherwise 
specified with the --file flag or %s environment variable", 
DefaultHelmfileDirectory, DefaultHelmfile, DefaultGotmplHelmfile, 
envvar.FilePath)
                }
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/app/init.go 
new/helmfile-0.161.0/pkg/app/init.go
--- old/helmfile-0.160.0/pkg/app/init.go        2023-12-22 22:36:48.000000000 
+0100
+++ new/helmfile-0.161.0/pkg/app/init.go        2024-01-24 02:01:04.000000000 
+0100
@@ -17,9 +17,9 @@
 )
 
 const (
-       HelmRequiredVersion           = "v3.12.3"
-       HelmRecommendedVersion        = "v3.13.3"
-       HelmDiffRecommendedVersion    = "v3.8.1"
+       HelmRequiredVersion           = "v3.13.3"
+       HelmRecommendedVersion        = "v3.14.0"
+       HelmDiffRecommendedVersion    = "v3.9.2"
        HelmSecretsRecommendedVersion = "v4.1.1"
        HelmGitRecommendedVersion     = "v0.12.0"
        HelmS3RecommendedVersion      = "v0.14.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/config/global.go 
new/helmfile-0.161.0/pkg/config/global.go
--- old/helmfile-0.160.0/pkg/config/global.go   2023-12-22 22:36:48.000000000 
+0100
+++ new/helmfile-0.161.0/pkg/config/global.go   2024-01-24 02:01:04.000000000 
+0100
@@ -8,6 +8,7 @@
        "go.uber.org/zap"
        "golang.org/x/term"
 
+       "github.com/helmfile/helmfile/pkg/envvar"
        "github.com/helmfile/helmfile/pkg/maputil"
        "github.com/helmfile/helmfile/pkg/state"
 )
@@ -120,7 +121,12 @@
 
 // FileOrDir returns the path to the Helmfile.
 func (g *GlobalImpl) FileOrDir() string {
-       return g.GlobalOptions.File
+       file := g.GlobalOptions.File
+       if file == "" {
+               file = os.Getenv(envvar.FilePath)
+       }
+
+       return file
 }
 
 // Selectors returns the selectors to use.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/config/global_test.go 
new/helmfile-0.161.0/pkg/config/global_test.go
--- old/helmfile-0.160.0/pkg/config/global_test.go      1970-01-01 
01:00:00.000000000 +0100
+++ new/helmfile-0.161.0/pkg/config/global_test.go      2024-01-24 
02:01:04.000000000 +0100
@@ -0,0 +1,47 @@
+package config
+
+import (
+       "os"
+       "testing"
+
+       "github.com/stretchr/testify/require"
+
+       "github.com/helmfile/helmfile/pkg/envvar"
+)
+
+// TestFileOrDir tests if statement
+func TestFileOrDir(t *testing.T) {
+       tests := []struct {
+               opts     GlobalOptions
+               env      string
+               expected string
+       }{
+               {
+                       opts:     GlobalOptions{},
+                       env:      "",
+                       expected: "",
+               },
+               {
+                       opts:     GlobalOptions{},
+                       env:      "envset",
+                       expected: "envset",
+               },
+               {
+                       opts:     GlobalOptions{File: "folderset"},
+                       env:      "",
+                       expected: "folderset",
+               },
+               {
+                       opts:     GlobalOptions{File: "folderset"},
+                       env:      "envset",
+                       expected: "folderset",
+               },
+       }
+
+       for _, test := range tests {
+               os.Setenv(envvar.FilePath, test.env)
+               received := NewGlobalImpl(&test.opts).FileOrDir()
+               require.Equalf(t, test.expected, received, "FileOrDir expected 
%t, received %t", test.expected, received)
+       }
+       os.Unsetenv(envvar.FilePath)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/envvar/const.go 
new/helmfile-0.161.0/pkg/envvar/const.go
--- old/helmfile-0.160.0/pkg/envvar/const.go    2023-12-22 22:36:48.000000000 
+0100
+++ new/helmfile-0.161.0/pkg/envvar/const.go    2024-01-24 02:01:04.000000000 
+0100
@@ -6,6 +6,7 @@
        SkipInsecureTemplateFunctions = 
"HELMFILE_SKIP_INSECURE_TEMPLATE_FUNCTIONS"
        Experimental                  = "HELMFILE_EXPERIMENTAL" // environment 
variable for experimental features, expecting "true" lower case
        Environment                   = "HELMFILE_ENVIRONMENT"
+       FilePath                      = "HELMFILE_FILE_PATH"
        TempDir                       = "HELMFILE_TEMPDIR"
        UpgradeNoticeDisabled         = "HELMFILE_UPGRADE_NOTICE_DISABLED"
        V1Mode                        = "HELMFILE_V1MODE"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/helmexec/exec.go 
new/helmfile-0.161.0/pkg/helmexec/exec.go
--- old/helmfile-0.160.0/pkg/helmexec/exec.go   2023-12-22 22:36:48.000000000 
+0100
+++ new/helmfile-0.161.0/pkg/helmexec/exec.go   2024-01-24 02:01:04.000000000 
+0100
@@ -121,6 +121,12 @@
        if err != nil {
                panic(err)
        }
+
+       if version.Prerelease() != "" {
+               logger.Warnf("Helm version %s is a pre-release version. This 
may cause problems when deploying Helm charts.\n", version)
+               *version, _ = version.SetPrerelease("")
+       }
+
        return &execer{
                helmBinary:       helmBinary,
                options:          options,
@@ -210,7 +216,6 @@
                return nil
        }
 
-       buffer := bytes.Buffer{}
        args := []string{
                "registry",
                "login",
@@ -232,7 +237,8 @@
                args = append(args, "--insecure")
        }
 
-       args = append(args, "--username", username, "--password-stdin", 
password)
+       args = append(args, "--username", username, "--password-stdin")
+       buffer := bytes.Buffer{}
        buffer.Write([]byte(fmt.Sprintf("%s\n", password)))
 
        helm.logger.Info("Logging in to registry")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/helmexec/exec_test.go 
new/helmfile-0.161.0/pkg/helmexec/exec_test.go
--- old/helmfile-0.160.0/pkg/helmexec/exec_test.go      2023-12-22 
22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/pkg/helmexec/exec_test.go      2024-01-24 
02:01:04.000000000 +0100
@@ -283,6 +283,43 @@
        }
 }
 
+func Test_RegistryLogin(t *testing.T) {
+       var buffer bytes.Buffer
+       logger := NewLogger(&buffer, "debug")
+       helm := &execer{
+               helmBinary:  "helm",
+               version:     semver.MustParse("v3.12.0"),
+               logger:      logger,
+               kubeContext: "dev",
+               runner:      &mockRunner{},
+       }
+       err := helm.RegistryLogin("repo.example.com", "example_user", 
"example_password", "example_ca", "example_cert", "example_key", true)
+       expected := `Logging in to registry
+exec: helm --kube-context dev registry login repo.example.com --cert-file 
example_cert --key-file example_key --ca-file example_ca --insecure --username 
example_user --password-stdin
+`
+       if err != nil {
+               t.Errorf("unexpected error: %v", err)
+       }
+       if buffer.String() != expected {
+               t.Errorf("helmexec.RegistryLogin()\nactual = %v\nexpect = %v", 
buffer.String(), expected)
+       }
+
+       // Test helm version prior to v3.12.0, without support for TLS
+       buffer.Reset()
+       helm.version = semver.MustParse("v3.11.0")
+
+       err = helm.RegistryLogin("repo.example.com", "example_user", 
"example_password", "example_ca", "example_cert", "example_key", true)
+       expected = `Logging in to registry
+exec: helm --kube-context dev registry login repo.example.com --insecure 
--username example_user --password-stdin
+`
+       if err != nil {
+               t.Errorf("unexpected error: %v", err)
+       }
+       if buffer.String() != expected {
+               t.Errorf("helmexec.RegistryLogin()\nactual = %v\nexpect = %v", 
buffer.String(), expected)
+       }
+}
+
 func Test_SyncRelease(t *testing.T) {
        var buffer bytes.Buffer
        logger := NewLogger(&buffer, "debug")
@@ -769,18 +806,23 @@
 exec: helm --kube-context dev pull oci://repo/helm-charts --version 0.14.0 
--destination path1 --untar --untardir /tmp/dir
 `,
                },
+               {
+                       name:        "more then v3.7.0 with rc",
+                       helmBin:     "helm",
+                       helmVersion: "v3.14.0-rc.1+g69dcc92",
+                       chartName:   "repo/helm-charts:0.14.0",
+                       chartPath:   "path1",
+                       chartFlags:  []string{"--untardir", "/tmp/dir"},
+                       listResult: `Pulling repo/helm-charts:0.14.0
+exec: helm --kube-context dev pull oci://repo/helm-charts --version 0.14.0 
--destination path1 --untar --untardir /tmp/dir
+`,
+               },
        }
        for i := range tests {
                tt := tests[i]
                t.Run(tt.name, func(t *testing.T) {
                        buffer.Reset()
-                       helm := &execer{
-                               helmBinary:  tt.helmBin,
-                               version:     semver.MustParse(tt.helmVersion),
-                               logger:      logger,
-                               kubeContext: "dev",
-                               runner:      &mockRunner{},
-                       }
+                       helm := New(tt.helmBin, HelmExecOptions{}, logger, 
"dev", &mockRunner{output: []byte(tt.helmVersion)})
                        err := helm.ChartPull(tt.chartName, tt.chartPath, 
tt.chartFlags...)
                        if err != nil {
                                t.Errorf("unexpected error: %v", err)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/policy/checker.go 
new/helmfile-0.161.0/pkg/policy/checker.go
--- old/helmfile-0.160.0/pkg/policy/checker.go  2023-12-22 22:36:48.000000000 
+0100
+++ new/helmfile-0.161.0/pkg/policy/checker.go  2024-01-24 02:01:04.000000000 
+0100
@@ -116,7 +116,7 @@
                preKey := orderKeys[i-1]
                currentKey := orderKeys[i]
                if topkeysPriority[preKey] > topkeysPriority[currentKey] {
-                       return runtime.V1Mode, fmt.Errorf("top-level config key 
%s must be defined before %s in %s", preKey, currentKey, filePath)
+                       return runtime.V1Mode, fmt.Errorf("top-level config key 
%s must be defined before %s in %s", currentKey, preKey, filePath)
                }
        }
        return false, nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/state/chart_dependency.go 
new/helmfile-0.161.0/pkg/state/chart_dependency.go
--- old/helmfile-0.160.0/pkg/state/chart_dependency.go  2023-12-22 
22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/pkg/state/chart_dependency.go  2024-01-24 
02:01:04.000000000 +0100
@@ -63,7 +63,10 @@
                Repository:        url,
                VersionConstraint: versionConstraint,
        }
-       return d.add(dep)
+       if !d.contains(dep) {
+               return d.add(dep)
+       }
+       return nil
 }
 
 func (d *UnresolvedDependencies) add(dep unresolvedChartDependency) error {
@@ -77,6 +80,22 @@
        return nil
 }
 
+// contains checks if the UnresolvedDependencies contains the specified 
unresolvedChartDependency.
+// It returns true if the dependency is found, otherwise it returns false.
+// fix 'more than one dependency with name or alias "raw"' error since helm 
v3.14.0
+func (d *UnresolvedDependencies) contains(dep unresolvedChartDependency) bool {
+       deps := d.deps[dep.ChartName]
+       if deps == nil {
+               return false
+       }
+       for _, existDep := range deps {
+               if existDep.ChartName == dep.ChartName {
+                       return true
+               }
+       }
+       return false
+}
+
 func (d *UnresolvedDependencies) ToChartRequirements() *ChartRequirements {
        deps := []unresolvedChartDependency{}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/state/chart_dependency_test.go 
new/helmfile-0.161.0/pkg/state/chart_dependency_test.go
--- old/helmfile-0.160.0/pkg/state/chart_dependency_test.go     2023-12-22 
22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/pkg/state/chart_dependency_test.go     2024-01-24 
02:01:04.000000000 +0100
@@ -64,3 +64,71 @@
                })
        }
 }
+
+func TestContains(t *testing.T) {
+       tests := []struct {
+               name     string
+               dep      unresolvedChartDependency
+               deps     map[string][]unresolvedChartDependency
+               expected bool
+       }{
+               {
+                       name: "existing dependency with right item",
+                       dep: unresolvedChartDependency{
+                               ChartName:         "abc",
+                               Repository:        "oci://localhost:5000/aaa",
+                               VersionConstraint: "0.1.0",
+                       },
+                       deps: map[string][]unresolvedChartDependency{
+                               "abc": {
+                                       {
+                                               ChartName:         "abc",
+                                               Repository:        
"oci://localhost:5000/aaa",
+                                               VersionConstraint: "0.1.0",
+                                       },
+                               },
+                       },
+                       expected: true,
+               },
+               {
+                       name: "existing dependency with empty item",
+                       dep: unresolvedChartDependency{
+                               ChartName:         "ghi",
+                               Repository:        "oci://localhost:5000/aaa",
+                               VersionConstraint: "0.1.0",
+                       },
+                       deps: map[string][]unresolvedChartDependency{
+                               "ghi": {},
+                       },
+                       expected: false,
+               },
+               {
+                       name: "non-existing dependency",
+                       dep: unresolvedChartDependency{
+                               ChartName:         "def",
+                               Repository:        "oci://localhost:5000/bbb",
+                               VersionConstraint: "0.2.0",
+                       },
+                       deps: map[string][]unresolvedChartDependency{
+                               "abc": {
+                                       {
+                                               ChartName:         "abc",
+                                               Repository:        
"oci://localhost:5000/aaa",
+                                               VersionConstraint: "0.1.0",
+                                       },
+                               },
+                       },
+                       expected: false,
+               },
+       }
+
+       for _, tt := range tests {
+               t.Run(tt.name, func(t *testing.T) {
+                       d := &UnresolvedDependencies{
+                               deps: tt.deps,
+                       }
+                       actual := d.contains(tt.dep)
+                       require.Equal(t, tt.expected, actual)
+               })
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/state/state.go 
new/helmfile-0.161.0/pkg/state/state.go
--- old/helmfile-0.160.0/pkg/state/state.go     2023-12-22 22:36:48.000000000 
+0100
+++ new/helmfile-0.161.0/pkg/state/state.go     2024-01-24 02:01:04.000000000 
+0100
@@ -7,6 +7,7 @@
        "errors"
        "fmt"
        "io"
+       "net/url"
        "os"
        "path/filepath"
        "regexp"
@@ -1123,19 +1124,16 @@
 //
 // If exists, it will also patch resources by json patches, strategic-merge 
patches, and injectors.
 func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, 
concurrency int, helmfileCommand string, opts ChartPrepareOptions) 
(map[PrepareChartKey]string, []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.GetSelectedReleases(opts.IncludeTransitiveNeeds)
+       if !opts.SkipResolve {
+               updated, err := st.ResolveDeps()
                if err != nil {
                        return nil, []error{err}
                }
-       } else {
-               selected = st.Releases
+               *st = *updated
+       }
+       selected, err := st.GetSelectedReleases(opts.IncludeTransitiveNeeds)
+       if err != nil {
+               return nil, []error{err}
        }
 
        releases := releasesNeedCharts(selected)
@@ -1149,14 +1147,6 @@
        jobQueue := make(chan *ReleaseSpec, 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
 
        st.scatterGather(
@@ -2204,18 +2194,21 @@
                filters = append(filters, f)
        }
        for _, r := range releases {
-               if r.Labels == nil {
-                       r.Labels = map[string]string{}
-               }
-               // Let the release name, namespace, and chart be used as a tag
-               r.Labels["name"] = r.Name
-               r.Labels["namespace"] = r.Namespace
-               // Strip off just the last portion for the name stable/newrelic 
would give newrelic
-               chartSplit := strings.Split(r.Chart, "/")
-               r.Labels["chart"] = chartSplit[len(chartSplit)-1]
-               // Merge CommonLabels into release labels
-               for k, v := range commonLabels {
-                       r.Labels[k] = v
+               // Do not add any label without any filter, see #276
+               if len(filters) > 0 {
+                       if r.Labels == nil {
+                               r.Labels = map[string]string{}
+                       }
+                       // Let the release name, namespace, and chart be used 
as a tag
+                       r.Labels["name"] = r.Name
+                       r.Labels["namespace"] = r.Namespace
+                       // Strip off just the last portion for the name 
stable/newrelic would give newrelic
+                       chartSplit := strings.Split(r.Chart, "/")
+                       r.Labels["chart"] = chartSplit[len(chartSplit)-1]
+                       // Merge CommonLabels into release labels
+                       for k, v := range commonLabels {
+                               r.Labels[k] = v
+                       }
                }
                var filterMatch bool
                for _, f := range filters {
@@ -3200,6 +3193,18 @@
        return output, nil
 }
 
+func hideChartCredentials(chartCredentials string) (string, error) {
+       u, err := url.Parse(chartCredentials)
+       if err != nil {
+               return "", err
+       }
+       if u.User != nil {
+               u.User = url.UserPassword("---", "---")
+       }
+       modifiedURL := u.String()
+       return modifiedURL, nil
+}
+
 // DisplayAffectedReleases logs the upgraded, deleted and in error releases
 func (ar *AffectedReleases) DisplayAffectedReleases(logger *zap.SugaredLogger) 
{
        if ar.Upgraded != nil && len(ar.Upgraded) > 0 {
@@ -3211,7 +3216,12 @@
                )
                tbl.Separator = "   "
                for _, release := range ar.Upgraded {
-                       err := tbl.AddRow(release.Name, release.Chart, 
release.installedVersion, release.duration.Round(time.Second))
+                       modifiedChart, modErr := 
hideChartCredentials(release.Chart)
+                       if modErr != nil {
+                               logger.Warn("Could not modify chart 
credentials, %v", modErr)
+                               continue
+                       }
+                       err := tbl.AddRow(release.Name, modifiedChart, 
release.installedVersion, release.duration.Round(time.Second))
                        if err != nil {
                                logger.Warn("Could not add row, %v", err)
                        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/state/state_test.go 
new/helmfile-0.161.0/pkg/state/state_test.go
--- old/helmfile-0.160.0/pkg/state/state_test.go        2023-12-22 
22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/pkg/state/state_test.go        2024-01-24 
02:01:04.000000000 +0100
@@ -3455,3 +3455,25 @@
                })
        }
 }
+
+func TestHideChartURL(t *testing.T) {
+       tests := []struct {
+               input    string
+               expected string
+       }{
+               {"http://username:passw...@example.com/";, 
"http://---:---@example.com/"},
+               {"http://example.com@";, "http://---:---@"},
+               {"https://username:passw...@example.com/";, 
"https://---:---@example.com/"},
+               {"https://username:@passw...@example.com/";, 
"https://---:---@example.com/"},
+               {"https://username::passw...@example.com/";, 
"https://---:---@example.com/"},
+               {"https://username:ht...@example.com/";, 
"https://---:---@example.com/"},
+               {"https://username:htt...@example.com/";, 
"https://---:---@example.com/"},
+               {"https://example.com/";, "https://example.com/"},
+       }
+       for _, test := range tests {
+               result, _ := hideChartCredentials(test.input)
+               if result != test.expected {
+                       t.Errorf("For input '%s', expected '%s', but got '%s'", 
test.input, test.expected, result)
+               }
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/pkg/tmpl/context_tmpl.go 
new/helmfile-0.161.0/pkg/tmpl/context_tmpl.go
--- old/helmfile-0.160.0/pkg/tmpl/context_tmpl.go       2023-12-22 
22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/pkg/tmpl/context_tmpl.go       2024-01-24 
02:01:04.000000000 +0100
@@ -87,17 +87,6 @@
                tmpl = tmpl.Option("missingkey=error")
        }
 
-       tpls, err := c.helperTPLs()
-       if err != nil {
-               return nil, err
-       }
-       for _, tpl := range tpls {
-               tmpl, err = tmpl.Parse(tpl.content)
-               if err != nil {
-                       return nil, fmt.Errorf("failed to parse helper template 
%s: %v", tpl.name, err)
-               }
-       }
-
        includedNames := make(map[string]int)
 
        // Add the 'include' function here so we can close over t.
@@ -116,6 +105,18 @@
                return buf.String(), err
        }
        tmpl.Funcs(funcMap)
+
+       tpls, err := c.helperTPLs()
+       if err != nil {
+               return nil, err
+       }
+       for _, tpl := range tpls {
+               tmpl, err = tmpl.Parse(tpl.content)
+               if err != nil {
+                       return nil, fmt.Errorf("failed to parse helper template 
%s: %v", tpl.name, err)
+               }
+       }
+
        return tmpl, nil
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helmfile-0.160.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/config.yaml
 
new/helmfile-0.161.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/config.yaml
--- 
old/helmfile-0.160.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/config.yaml
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/helmfile-0.161.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/config.yaml
     2024-01-24 02:01:04.000000000 +0100
@@ -0,0 +1,6 @@
+localChartRepoServer:
+  enabled: true
+  port: 18083
+chartifyTempDir: temp1
+helmfileArgs:
+- template
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helmfile-0.160.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml
 
new/helmfile-0.161.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml
--- 
old/helmfile-0.160.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/helmfile-0.161.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml
      2024-01-24 02:01:04.000000000 +0100
@@ -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
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helmfile-0.160.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/output.yaml
 
new/helmfile-0.161.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/output.yaml
--- 
old/helmfile-0.160.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/output.yaml
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/helmfile-0.161.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/output.yaml
     2024-01-24 02:01:04.000000000 +0100
@@ -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
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helmfile-0.160.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/test-lock-file
 
new/helmfile-0.161.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/test-lock-file
--- 
old/helmfile-0.160.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/test-lock-file
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/helmfile-0.161.0/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/test-lock-file
  2024-01-24 02:01:04.000000000 +0100
@@ -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"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helmfile-0.160.0/test/integration/run.sh 
new/helmfile-0.161.0/test/integration/run.sh
--- old/helmfile-0.160.0/test/integration/run.sh        2023-12-22 
22:36:48.000000000 +0100
+++ new/helmfile-0.161.0/test/integration/run.sh        2024-01-24 
02:01:04.000000000 +0100
@@ -26,7 +26,7 @@
 export HELM_HOME="${HELM_DATA_HOME}"
 export HELM_PLUGINS="${HELM_DATA_HOME}/plugins"
 export HELM_CONFIG_HOME="${helm_dir}/config"
-HELM_DIFF_VERSION="${HELM_DIFF_VERSION:-3.8.1}"
+HELM_DIFF_VERSION="${HELM_DIFF_VERSION:-3.9.2}"
 HELM_SECRETS_VERSION="${HELM_SECRETS_VERSION:-3.15.0}"
 export GNUPGHOME="${PWD}/${dir}/.gnupg"
 export SOPS_PGP_FP="B2D6D7BBEC03B2E66571C8C00AD18E16CFDEF700"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helmfile-0.160.0/test/integration/test-cases/happypath/input/environment.values.yaml
 
new/helmfile-0.161.0/test/integration/test-cases/happypath/input/environment.values.yaml
--- 
old/helmfile-0.160.0/test/integration/test-cases/happypath/input/environment.values.yaml
    2023-12-22 22:36:48.000000000 +0100
+++ 
new/helmfile-0.161.0/test/integration/test-cases/happypath/input/environment.values.yaml
    2024-01-24 02:01:04.000000000 +0100
@@ -1,3 +1,5 @@
 mysecret: MYSECRET
 raw2:
   enabled: false
+release-disabled:
+  enabled: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helmfile-0.160.0/test/integration/test-cases/happypath/input/happypath.yaml 
new/helmfile-0.161.0/test/integration/test-cases/happypath/input/happypath.yaml
--- 
old/helmfile-0.160.0/test/integration/test-cases/happypath/input/happypath.yaml 
    2023-12-22 22:36:48.000000000 +0100
+++ 
new/helmfile-0.161.0/test/integration/test-cases/happypath/input/happypath.yaml 
    2024-01-24 02:01:04.000000000 +0100
@@ -54,3 +54,20 @@
     values:
       - mysecret: {{ .Environment.Values.mysecret }}
       - values.yaml
+
+  - name: release-disabled
+    chart: ../../../charts/helmx
+    namespace: release-disabled
+    condition: release-disabled.enabled
+    values:
+      - values-not-found.yaml
+    jsonPatches:
+      - target:
+          version: v1
+          kind: ConfigMap
+          name: release-name
+        patch:
+          - op: add
+            path: /metadata/annotations
+            value:
+              foo: bar
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helmfile-0.160.0/test/integration/test-cases/include-template-func/input/_helpers.tpl
 
new/helmfile-0.161.0/test/integration/test-cases/include-template-func/input/_helpers.tpl
--- 
old/helmfile-0.160.0/test/integration/test-cases/include-template-func/input/_helpers.tpl
   2023-12-22 22:36:48.000000000 +0100
+++ 
new/helmfile-0.161.0/test/integration/test-cases/include-template-func/input/_helpers.tpl
   2024-01-24 02:01:04.000000000 +0100
@@ -1,3 +1,3 @@
 {{- define "echo" -}}
-{{ .Echo }}
+{{ .Echo | trim }}
 {{- end }}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helmfile-0.160.0/test/integration/test-cases/include-template-func/input/nested/_helpers.tpl
 
new/helmfile-0.161.0/test/integration/test-cases/include-template-func/input/nested/_helpers.tpl
--- 
old/helmfile-0.160.0/test/integration/test-cases/include-template-func/input/nested/_helpers.tpl
    2023-12-22 22:36:48.000000000 +0100
+++ 
new/helmfile-0.161.0/test/integration/test-cases/include-template-func/input/nested/_helpers.tpl
    2024-01-24 02:01:04.000000000 +0100
@@ -1,3 +1,3 @@
 {{- define "echo" -}}
-nested-{{ .Echo }}
+nested-{{ .Echo | trim }}
 {{- end }}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helmfile-0.160.0/test/integration/test-cases/include-template-func/input/values/_helpers.tpl
 
new/helmfile-0.161.0/test/integration/test-cases/include-template-func/input/values/_helpers.tpl
--- 
old/helmfile-0.160.0/test/integration/test-cases/include-template-func/input/values/_helpers.tpl
    2023-12-22 22:36:48.000000000 +0100
+++ 
new/helmfile-0.161.0/test/integration/test-cases/include-template-func/input/values/_helpers.tpl
    2024-01-24 02:01:04.000000000 +0100
@@ -1,3 +1,3 @@
 {{- define "echo" -}}
-{{ .Echo }}
+{{ .Echo | trim }}
 {{- end }}
\ No newline at end of file

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/helmfile/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.helmfile.new.1815/vendor.tar.gz differ: char 5, 
line 1

Reply via email to