Hello community, here is the log from the commit of package helmfile for openSUSE:Factory checked in at 2020-10-23 12:21:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/helmfile (Old) and /work/SRC/openSUSE:Factory/.helmfile.new.3463 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "helmfile" Fri Oct 23 12:21:49 2020 rev:9 rq:843377 version:0.132.0 Changes: -------- --- /work/SRC/openSUSE:Factory/helmfile/helmfile.changes 2020-10-18 16:36:06.432882993 +0200 +++ /work/SRC/openSUSE:Factory/.helmfile.new.3463/helmfile.changes 2020-10-23 12:23:09.636716627 +0200 @@ -1,0 +2,21 @@ +Thu Oct 22 08:50:25 UTC 2020 - Manfred Hollstein <manfre...@gmx.net> + +- v0.132.0: Minor README improvement (#1543) + * 9ec4a85 (HEAD, tag: v0.132.0, origin/master, origin/HEAD, master) + Minor README improvement (#1543) + * 4d86879 Improve capitalization and formats of README.md. (#1545) + * 1aca099 feat: Upgrade to kubectl version supported by latest + stable release and upgrade helm3 to 3.3.4 (#1498) + * f5d0988 Retain the option helm repo add --force-update when Helm + is v3.3.4 or above. (#1546) + +------------------------------------------------------------------- +Sun Oct 18 08:55:59 UTC 2020 - Manfred Hollstein <manfre...@gmx.net> + +- v0.131.0: Bump chartify to 0.4.4 (#1540) + * 080080f (HEAD, tag: v0.131.0, origin/master, origin/HEAD, master) + Bump chartify to 0.4.4 (#1540) + * cd4afc3 Remove duplicated logs from helm.exec. (#1538) + * 8f86697 Support for azure acr helm repositories (#1526) + +------------------------------------------------------------------- Old: ---- helmfile-0.130.3.tar.gz New: ---- helmfile-0.132.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ helmfile.spec ++++++ --- /var/tmp/diff_new_pack.Y66MtB/_old 2020-10-23 12:23:12.628718707 +0200 +++ /var/tmp/diff_new_pack.Y66MtB/_new 2020-10-23 12:23:12.632718709 +0200 @@ -16,9 +16,9 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # -%define git_commit 563fce4adf7abf759ec31b3971d1195704621052 +%define git_commit 9ec4a85821c06601dd3fe35c4effbed59089b48e Name: helmfile -Version: 0.130.3 +Version: 0.132.0 Release: 0 Summary: Deploy Kubernetes Helm Charts License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.Y66MtB/_old 2020-10-23 12:23:12.664718732 +0200 +++ /var/tmp/diff_new_pack.Y66MtB/_new 2020-10-23 12:23:12.664718732 +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.130.3</param> + <param name="revision">v0.132.0</param> <param name="changesgenerate">enable</param> </service> <service name="recompress" mode="disabled"> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.Y66MtB/_old 2020-10-23 12:23:12.684718745 +0200 +++ /var/tmp/diff_new_pack.Y66MtB/_new 2020-10-23 12:23:12.688718748 +0200 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/roboll/helmfile.git</param> - <param name="changesrevision">563fce4adf7abf759ec31b3971d1195704621052</param></service></servicedata> + <param name="changesrevision">9ec4a85821c06601dd3fe35c4effbed59089b48e</param></service></servicedata> ++++++ helmfile-0.130.3.tar.gz -> helmfile-0.132.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/.editorconfig new/helmfile-0.132.0/.editorconfig --- old/helmfile-0.130.3/.editorconfig 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.132.0/.editorconfig 2020-10-19 01:48:39.000000000 +0200 @@ -0,0 +1,5 @@ +root = true + +[*.md] +insert_final_newline = true +trim_trailing_whitespace = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/Dockerfile new/helmfile-0.132.0/Dockerfile --- old/helmfile-0.130.3/Dockerfile 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/Dockerfile 2020-10-19 01:48:39.000000000 +0200 @@ -11,11 +11,12 @@ RUN apk add --no-cache ca-certificates git bash curl jq -ARG HELM_VERSION=v2.16.12 +ARG HELM_VERSION="v2.16.12" ARG HELM_LOCATION="https://kubernetes-helm.storage.googleapis.com" ARG HELM_FILENAME="helm-${HELM_VERSION}-linux-amd64.tar.gz" ARG HELM_SHA256="756ab375314329b66b452c0f9d569f74b0760141670217c07b79890ad314c214" -RUN wget ${HELM_LOCATION}/${HELM_FILENAME} && \ +RUN set -x && \ + wget ${HELM_LOCATION}/${HELM_FILENAME} && \ echo Verifying ${HELM_FILENAME}... && \ sha256sum ${HELM_FILENAME} | grep -q "${HELM_SHA256}" && \ echo Extracting ${HELM_FILENAME}... && \ @@ -26,9 +27,12 @@ # using the install documentation found at https://kubernetes.io/docs/tasks/tools/install-kubectl/ # for now but in a future version of alpine (in the testing version at the time of writing) # we should be able to install using apk add. -ENV KUBECTL_VERSION="v1.14.5" -ENV KUBECTL_SHA256="26681319de56820a8467c9407e9203d5b15fb010ffc75ac5b99c9945ad0bd28c" -RUN curl --retry 3 --retry-connrefused -LO "https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" && \ +# the sha256 sum can be found at https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl.sha256 +# maybe a good idea to automate in the future? +ENV KUBECTL_VERSION="v1.18.9" +ENV KUBECTL_SHA256="6a68756a2d3d04b4d0f52b00de6493ba2c1fcb28b32f3e4a0e99b3d9f6c4e8ed" +RUN set -x & \ + curl --retry 5 --retry-connrefused -LO "https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" && \ sha256sum kubectl | grep ${KUBECTL_SHA256} && \ chmod +x kubectl && \ mv kubectl /usr/local/bin/kubectl diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/Dockerfile.helm3 new/helmfile-0.132.0/Dockerfile.helm3 --- old/helmfile-0.130.3/Dockerfile.helm3 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/Dockerfile.helm3 2020-10-19 01:48:39.000000000 +0200 @@ -11,11 +11,12 @@ RUN apk add --no-cache ca-certificates git bash curl jq -ARG HELM_VERSION=v3.3.3 +ARG HELM_VERSION="v3.3.4" ARG HELM_LOCATION="https://get.helm.sh" ARG HELM_FILENAME="helm-${HELM_VERSION}-linux-amd64.tar.gz" -ARG HELM_SHA256="246d58b6b353e63ae8627415a7340089015e3eb542ff7b5ce124b0b1409369cc" -RUN wget ${HELM_LOCATION}/${HELM_FILENAME} && \ +ARG HELM_SHA256="b664632683c36446deeb85c406871590d879491e3de18978b426769e43a1e82c" +RUN set -x && \ + wget ${HELM_LOCATION}/${HELM_FILENAME} && \ echo Verifying ${HELM_FILENAME}... && \ sha256sum ${HELM_FILENAME} | grep -q "${HELM_SHA256}" && \ echo Extracting ${HELM_FILENAME}... && \ @@ -25,9 +26,12 @@ # using the install documentation found at https://kubernetes.io/docs/tasks/tools/install-kubectl/ # for now but in a future version of alpine (in the testing version at the time of writing) # we should be able to install using apk add. -ENV KUBECTL_VERSION="v1.14.5" -ENV KUBECTL_SHA256="26681319de56820a8467c9407e9203d5b15fb010ffc75ac5b99c9945ad0bd28c" -RUN curl --retry 3 --retry-connrefused -LO "https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" && \ +# the sha256 sum can be found at https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl.sha256 +# maybe a good idea to automate in the future? +ENV KUBECTL_VERSION="v1.18.9" +ENV KUBECTL_SHA256="6a68756a2d3d04b4d0f52b00de6493ba2c1fcb28b32f3e4a0e99b3d9f6c4e8ed" +RUN set -x && \ + curl --retry 5 --retry-connrefused -LO "https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" && \ sha256sum kubectl | grep ${KUBECTL_SHA256} && \ chmod +x kubectl && \ mv kubectl /usr/local/bin/kubectl diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/PATHS.md new/helmfile-0.132.0/PATHS.md --- old/helmfile-0.130.3/PATHS.md 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/PATHS.md 2020-10-19 01:48:39.000000000 +0200 @@ -1,25 +1,27 @@ -# Paths Overivew -Using manifest files in conjunction with command line argument can be a bit confusing. +# Paths Overivew -A few rules to clear up this ambiguity: +Using manifest files in conjunction with command line argument can be a bit confusing. + +A few rules to clear up this ambiguity: - Absolute paths are always resolved as absolute paths - Relative paths referenced *in* the helmfile manifest itself are relative to that manifest - Relative paths referenced on the command line are relative to the current working directory the user is in ### Examples -There are several examples that we can go through in the `/examples` folder which demonstrate this. + +There are several examples that we can go through in the [`/examples`](examples) folder which demonstrate this. **Local Execution** -This is an example of a Helmfile manifest referencing a local value directly. +This is an example of a Helmfile manifest referencing a local value directly. Indirect: ``` helmfile -f examples/deployments/local/charts.yaml sync ``` -Direct: +Direct: ``` cd examples/deployments/local/ helmfile sync @@ -27,14 +29,14 @@ **Relative Paths in Helmfile** -This is an example of a Helmfile manifest using relative paths for values. +This is an example of a Helmfile manifest using relative paths for values. Indirect: ``` helmfile -f examples/deployments/dev/charts.yaml sync ``` -Direct: +Direct: ``` cd examples/deployments/dev/ helmfile sync @@ -42,7 +44,7 @@ **Relative Paths in Helmfile w/ --values overrides** -This is an example of a Helmfile manifest using relative paths for values including an additional `--values` from the command line. +This is an example of a Helmfile manifest using relative paths for values including an additional `--values` from the command line. NOTE: The `--values` is resolved relative to the CWD of the terminal *not* the Helmfile manifest. You can see this with the `replicas` being adjusted to 3 now for the deployment. @@ -51,7 +53,7 @@ helmfile -f examples/deployments/dev/charts.yaml sync --values values/replica-values.yaml ``` -Direct: +Direct: ``` cd examples/deployments/dev/ helmfile sync --values ../../values/replica-values.yaml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/README.md new/helmfile-0.132.0/README.md --- old/helmfile-0.130.3/README.md 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/README.md 2020-10-19 01:48:39.000000000 +0200 @@ -102,6 +102,8 @@ historyMax: 10 # when using helm 3.2+, automatically create release namespaces if they do not exist (default true) createNamespace: true + # if used with charts museum allows to pull unstable charts for deployment, for example: if 1.2.3 and 1.2.4-dev versions exist and set to true, 1.2.4-dev will be pulled (default false) + devel: true # these labels will be applied to all releases in a Helmfile. Useful in templating if you have a helmfile per environment or customer and don't want to copy the same label to each release commonLabels: @@ -351,7 +353,7 @@ If you wish to treat your enviroment variables as strings always, even if they are boolean or numeric values you can use `{{ env "ENV_NAME" | quote }}` or `"{{ env "ENV_NAME" }}"`. These approaches also work with `requiredEnv`. -## installation +## Installation - download one of [releases](https://github.com/roboll/helmfile/releases) or - run as a [container](https://quay.io/roboll/helmfile) or @@ -359,7 +361,7 @@ - Windows (using [scoop](https://scoop.sh/)): `scoop install helmfile` - macOS (using [homebrew](https://brew.sh/)): `brew install helmfile` -## getting started +## Getting Started Let's start with a simple `helmfile` and gradually improve it to fit your use-case! @@ -389,7 +391,7 @@ - [CLI reference](#cli-reference). - [Helmfile Best Practices Guide](https://github.com/roboll/helmfile/blob/master/docs/writing-helmfile.md) -## cli reference +## CLI Reference ``` NAME: @@ -496,7 +498,6 @@ Note that `delete` doesn't purge releases. So `helmfile delete && helmfile sync` results in sync failed due to that releases names are not deleted but preserved for future references. If you really want to remove releases for reuse, add `--purge` flag to run it like `helmfile delete --purge`. - ### secrets The `secrets` parameter in a `helmfile.yaml` causes the [helm-secrets](https://github.com/futuresimple/helm-secrets) plugin to be executed to decrypt the file. @@ -516,6 +517,7 @@ The `helmfile lint` sub-command runs a `helm lint` across all of the charts/releases defined in the manifest. Non local charts will be fetched into a temporary folder which will be deleted once the task is completed. ## Paths Overview + Using manifest files in conjunction with command line argument can be a bit confusing. A few rules to clear up this ambiguity: @@ -524,9 +526,10 @@ - Relative paths referenced *in* the Helmfile manifest itself are relative to that manifest - Relative paths referenced on the command line are relative to the current working directory the user is in -For additional context, take a look at [paths examples](PATHS.md) +For additional context, take a look at [paths examples](PATHS.md). ## Labels Overview + A selector can be used to only target a subset of releases when running Helmfile. This is useful for large helmfiles with releases that are logically grouped together. Labels are simple key value pairs that are an optional field of the release spec. When selecting by label, the search can be inverted. `tier!=backend` would match all releases that do NOT have the `tier: backend` label. `tier=fronted` would only match releases with the `tier: frontend` label. @@ -535,7 +538,7 @@ The `selector` parameter can be specified multiple times. Each parameter is resolved independently so a release that matches any parameter will be used. -`--selector tier=frontend --selector tier=backend` will select all the charts +`--selector tier=frontend --selector tier=backend` will select all the charts. In addition to user supplied labels, the name, the namespace, and the chart are available to be used as selectors. The chart will just be the chart name excluding the repository (Example `stable/filebeat` would be selected using `--selector chart=filebeat`). @@ -544,7 +547,7 @@ templates/common.yaml: -``` +```yaml templates: nginx: &nginx name: nginx @@ -563,7 +566,7 @@ helmfile.yaml: -``` +```yaml {{ readFile "templates/common.yaml" }} commonLabels: @@ -984,14 +987,14 @@ A usual usage of `exec` would look like this: -``` +```yaml mysetting: | {{ exec "./mycmd" (list "arg1" "arg2" "--flag1") | indent 2 }} ``` Or even with a pipeline: -``` +```yaml mysetting: | {{ yourinput | exec "./mycmd-consume-stdin" (list "arg1" "arg2") | indent 2 }} ``` @@ -1037,7 +1040,7 @@ The following is an example hook that just prints the contextual information provided to hook: -``` +```yaml releases: - name: myapp chart: mychart @@ -1072,10 +1075,11 @@ It will allow you to write your helm releases with any language you like, while still leveraging goodies provided by helm. ### Global Hooks + In contrast to the per release hooks mentioned above these are run only once at the very beginning and end of the execution of a helmfile command and only the `prepare` and `cleanup` hooks are available respectively. They use the same syntax as per release hooks, but at the top level of your helmfile: -``` yaml +```yaml hooks: - events: ["prepare", "cleanup"] showlogs: true @@ -1146,9 +1150,9 @@ Or join our friendly slack community in the [`#helmfile`](https://slack.sweetops.com) channel to ask questions and get help. Check out our [slack archive](https://archive.sweetops.com/helmfile/) for good examples of how others are using it. -## Using env files +## Using .env files -Helmfile itself doesn't have an ability to load env files. But you can write some bash script to achieve the goal: +Helmfile itself doesn't have an ability to load .env files. But you can write some bash script to achieve the goal: ```console set -a; . .env; set +a; helmfile sync @@ -1156,7 +1160,7 @@ Please see #203 for more context. -## Running helmfile interactively +## Running Helmfile interactively `helmfile --interactive [apply|destroy]` requests confirmation from you before actually modifying your cluster. @@ -1170,29 +1174,14 @@ It basically run only `helm upgrade --install` with your already-downloaded charts, hence no Internet connection is required. See #155 for more information on this topic. -## Experimental features +## Experimental Features + Some experimental features may be available for testing in perspective of being (or not) included in a future release. Those features are set using the environment variable `HELMFILE_EXPERIMENTAL`. Here is the current experimental feature : * `explicit-selector-inheritance` : remove today implicit cli selectors inheritance for composed helmfiles, see [composition selector](#selectors) If you want to enable all experimental features set the env var to `HELMFILE_EXPERIMENTAL=true` -## Azure ACR integration - -Azure offers helm repository [support for Azure Container Registry](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-helm-repos) as a preview feature. - -To use this you must first `az login` and then `az acr helm repo add -n <MyRegistry>`. This will extract a token for the given ACR and configure `helm` to use it, e.g. `helm repo update` should work straight away. - -To use `helmfile` with ACR, on the other hand, you must either include a username/password in the repository definition for the ACR in your `helmfile.yaml` or use the `--skip-deps` switch, e.g. `helmfile template --skip-deps`. - -An ACR repository definition in `helmfile.yaml` looks like this: - -``` -repositories: - - name: <MyRegistry> - url: https://<MyRegistry>.azurecr.io/helm/v1/repo -``` - ## Examples For more examples, see the [examples/README.md](https://github.com/roboll/helmfile/blob/master/examples/README.md) or the [`helmfile`](https://github.com/cloudposse/helmfiles/tree/master/releases) distribution by [Cloud Posse](https://github.com/cloudposse/). @@ -1202,6 +1191,7 @@ - [renovate](https://github.com/renovatebot/renovate) automates chart version updates. See [this PR for more information](https://github.com/renovatebot/renovate/pull/5257). - For updating container image tags and git tags embedded within helmfile.yaml and values, you can use [renovate's regexManager](https://docs.renovatebot.com/modules/manager/regex/). Please see [this comment in the renovate repository](https://github.com/renovatebot/renovate/issues/6130#issuecomment-624061289) for more information. - [ArgoCD Integration](#argocd-integration) +- [Azure ACR Integration](#azure-acr-integration) ### ArgoCD Integration @@ -1235,7 +1225,7 @@ > Note that `$(pwd)` is necessary when `hemlfile.yaml` has one or more > sub-helmfiles in nested directories, > because setting a relative file path in `--output-dir` or > `--output-dir-template` results in each sub-helmfile render -> to the directory relative to the specified path. +> to the directory relative to the specified path. so that they can be deployed by Argo CD as usual. @@ -1252,7 +1242,23 @@ - If you don't directly push it to the main Git branch and instead go through a pull-request, do lint rendered manifests on your CI, so that you can catch easy mistakes earlier/before ArgoCD finally deploys it - See [this ArgoCD issue](https://github.com/argoproj/argo-cd/issues/2143#issuecomment-570478329) for why you may want this, and see [this helmfile issue](https://github.com/roboll/helmfile/pull/1357) for how `--output-dir-template` works. -# Attribution +### Azure ACR Integration + +Azure offers helm repository [support for Azure Container Registry](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-helm-repos) as a preview feature. + +To use this you must first `az login` and then `az acr helm repo add -n <MyRegistry>`. This will extract a token for the given ACR and configure `helm` to use it, e.g. `helm repo update` should work straight away. + +To use `helmfile` with ACR, on the other hand, you must either include a username/password in the repository definition for the ACR in your `helmfile.yaml` or use the `--skip-deps` switch, e.g. `helmfile template --skip-deps`. + +An ACR repository definition in `helmfile.yaml` looks like this: + +```yaml +repositories: + - name: <MyRegistry> + url: https://<MyRegistry>.azurecr.io/helm/v1/repo +``` + +## Attribution We use: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/go.mod new/helmfile-0.132.0/go.mod --- old/helmfile-0.130.3/go.mod 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/go.mod 2020-10-19 01:48:39.000000000 +0200 @@ -22,7 +22,7 @@ github.com/spf13/cobra v0.0.3 github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 github.com/urfave/cli v1.20.0 - github.com/variantdev/chartify v0.4.3 + github.com/variantdev/chartify v0.4.4 github.com/variantdev/dag v0.0.0-20191028002400-bb0b3c785363 github.com/variantdev/vals v0.10.3 go.uber.org/multierr v1.1.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/go.sum new/helmfile-0.132.0/go.sum --- old/helmfile-0.130.3/go.sum 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/go.sum 2020-10-19 01:48:39.000000000 +0200 @@ -853,6 +853,8 @@ github.com/variantdev/chartify v0.4.2/go.mod h1:Fr4oPNJ4b19knlovn0wBoU2+MZxQdBacmBs30wwgAFk= github.com/variantdev/chartify v0.4.3 h1:CRyi9XDCXkgvvgOkNUwXp0oaIJG0BWKjbUZHN3D8xvw= github.com/variantdev/chartify v0.4.3/go.mod h1:Fr4oPNJ4b19knlovn0wBoU2+MZxQdBacmBs30wwgAFk= +github.com/variantdev/chartify v0.4.4 h1:ludsoqljh2HVNpZhMjtvzo5P0ntEcFqMufu6B4SfByY= +github.com/variantdev/chartify v0.4.4/go.mod h1:Fr4oPNJ4b19knlovn0wBoU2+MZxQdBacmBs30wwgAFk= github.com/variantdev/dag v0.0.0-20191028002400-bb0b3c785363 h1:KrfQBEUn+wEOQ/6UIfoqRDvn+Q/wZridQ7t0G1vQqKE= github.com/variantdev/dag v0.0.0-20191028002400-bb0b3c785363/go.mod h1:pH1TQsNSLj2uxMo9NNl9zdGy01Wtn+/2MT96BrKmVyE= github.com/variantdev/vals v0.4.0 h1:O1O7/sWhlvozcY2DjZBzlE1notxwVo6UBT1+w7HsO/k= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/pkg/app/app_test.go new/helmfile-0.132.0/pkg/app/app_test.go --- old/helmfile-0.130.3/pkg/app/app_test.go 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/pkg/app/app_test.go 2020-10-19 01:48:39.000000000 +0200 @@ -2418,7 +2418,7 @@ func (helm *mockHelmExec) SetHelmBinary(bin string) { return } -func (helm *mockHelmExec) AddRepo(name, repository, cafile, certfile, keyfile, username, password string) error { +func (helm *mockHelmExec) AddRepo(name, repository, cafile, certfile, keyfile, username, password string, managed string) error { helm.repos = append(helm.repos, mockRepo{Name: name}) return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/pkg/app/mocks_test.go new/helmfile-0.132.0/pkg/app/mocks_test.go --- old/helmfile-0.130.3/pkg/app/mocks_test.go 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/pkg/app/mocks_test.go 2020-10-19 01:48:39.000000000 +0200 @@ -41,7 +41,7 @@ helm.doPanic() return } -func (helm *noCallHelmExec) AddRepo(name, repository, cafile, certfile, keyfile, username, password string) error { +func (helm *noCallHelmExec) AddRepo(name, repository, cafile, certfile, keyfile, username, password string, managed string) error { helm.doPanic() return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/pkg/exectest/helm.go new/helmfile-0.132.0/pkg/exectest/helm.go --- old/helmfile-0.130.3/pkg/exectest/helm.go 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/pkg/exectest/helm.go 2020-10-19 01:48:39.000000000 +0200 @@ -82,8 +82,8 @@ func (helm *Helm) SetHelmBinary(bin string) { return } -func (helm *Helm) AddRepo(name, repository, cafile, certfile, keyfile, username, password string) error { - helm.Repo = []string{name, repository, cafile, certfile, keyfile, username, password} +func (helm *Helm) AddRepo(name, repository, cafile, certfile, keyfile, username, password string, managed string) error { + helm.Repo = []string{name, repository, cafile, certfile, keyfile, username, password, managed} return nil } func (helm *Helm) UpdateRepo() error { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/pkg/helmexec/exec.go new/helmfile-0.132.0/pkg/helmexec/exec.go --- old/helmfile-0.130.3/pkg/helmexec/exec.go 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/pkg/helmexec/exec.go 2020-10-19 01:48:39.000000000 +0200 @@ -105,34 +105,46 @@ helm.helmBinary = bin } -func (helm *execer) AddRepo(name, repository, cafile, certfile, keyfile, username, password string) error { +func (helm *execer) AddRepo(name, repository, cafile, certfile, keyfile, username, password string, managed string) error { var args []string + var out []byte + var err error if name == "" && repository != "" { helm.logger.Infof("empty field name\n") return fmt.Errorf("empty field name") } - args = append(args, "repo", "add", name, repository) - - // See https://github.com/helm/helm/pull/8777 - if cons, err := semver.NewConstraint(">= 3.3.2, < 3.3.4"); err == nil { - if cons.Check(&helm.version) { - args = append(args, "--force-update") + switch managed { + case "acr": + helm.logger.Infof("Adding repo %v (acr)", name) + out, err = helm.azcli(name) + case "": + args = append(args, "repo", "add", name, repository) + + // See https://github.com/helm/helm/pull/8777 + if cons, err := semver.NewConstraint(">= 3.3.2"); err == nil { + if cons.Check(&helm.version) { + args = append(args, "--force-update") + } + } else { + panic(err) } - } else { - panic(err) - } - if certfile != "" && keyfile != "" { - args = append(args, "--cert-file", certfile, "--key-file", keyfile) - } - if cafile != "" { - args = append(args, "--ca-file", cafile) - } - if username != "" && password != "" { - args = append(args, "--username", username, "--password", password) + if certfile != "" && keyfile != "" { + args = append(args, "--cert-file", certfile, "--key-file", keyfile) + } + if cafile != "" { + args = append(args, "--ca-file", cafile) + } + if username != "" && password != "" { + args = append(args, "--username", username, "--password", password) + } + helm.logger.Infof("Adding repo %v %v", name, repository) + out, err = helm.exec(args, map[string]string{}) + default: + helm.logger.Errorf("ERROR: unknown type '%v' for repository %v", managed, name) + out = nil + err = nil } - helm.logger.Infof("Adding repo %v %v", name, repository) - out, err := helm.exec(args, map[string]string{}) helm.info(out) return err } @@ -366,6 +378,14 @@ cmd := fmt.Sprintf("exec: %s %s", helm.helmBinary, strings.Join(cmdargs, " ")) helm.logger.Debug(cmd) bytes, err := helm.runner.Execute(helm.helmBinary, cmdargs, env) + return bytes, err +} + +func (helm *execer) azcli(name string) ([]byte, error) { + cmdargs := append(strings.Split("acr helm repo add --name", " "), name) + cmd := fmt.Sprintf("exec: az %s", strings.Join(cmdargs, " ")) + helm.logger.Debug(cmd) + bytes, err := helm.runner.Execute("az", cmdargs, map[string]string{}) helm.logger.Debugf("%s: %s", cmd, bytes) return bytes, err } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/pkg/helmexec/exec_test.go new/helmfile-0.132.0/pkg/helmexec/exec_test.go --- old/helmfile-0.130.3/pkg/helmexec/exec_test.go 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/pkg/helmexec/exec_test.go 2020-10-19 01:48:39.000000000 +0200 @@ -82,10 +82,9 @@ kubeContext: "dev", runner: &mockRunner{}, } - helm.AddRepo("myRepo", "https://repo.example.com/", "", "cert.pem", "key.pem", "", "") + helm.AddRepo("myRepo", "https://repo.example.com/", "", "cert.pem", "key.pem", "", "", "") expected := `Adding repo myRepo https://repo.example.com/ exec: helm --kube-context dev repo add myRepo https://repo.example.com/ --force-update --cert-file cert.pem --key-file key.pem -exec: helm --kube-context dev repo add myRepo https://repo.example.com/ --force-update --cert-file cert.pem --key-file key.pem: ` if buffer.String() != expected { t.Errorf("helmexec.AddRepo()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -96,47 +95,61 @@ var buffer bytes.Buffer logger := NewLogger(&buffer, "debug") helm := MockExecer(logger, "dev") - helm.AddRepo("myRepo", "https://repo.example.com/", "", "cert.pem", "key.pem", "", "") + helm.AddRepo("myRepo", "https://repo.example.com/", "", "cert.pem", "key.pem", "", "", "") expected := `Adding repo myRepo https://repo.example.com/ exec: helm --kube-context dev repo add myRepo https://repo.example.com/ --cert-file cert.pem --key-file key.pem -exec: helm --kube-context dev repo add myRepo https://repo.example.com/ --cert-file cert.pem --key-file key.pem: ` if buffer.String() != expected { t.Errorf("helmexec.AddRepo()\nactual = %v\nexpect = %v", buffer.String(), expected) } buffer.Reset() - helm.AddRepo("myRepo", "https://repo.example.com/", "ca.crt", "", "", "", "") + helm.AddRepo("myRepo", "https://repo.example.com/", "ca.crt", "", "", "", "", "") expected = `Adding repo myRepo https://repo.example.com/ exec: helm --kube-context dev repo add myRepo https://repo.example.com/ --ca-file ca.crt -exec: helm --kube-context dev repo add myRepo https://repo.example.com/ --ca-file ca.crt: ` if buffer.String() != expected { t.Errorf("helmexec.AddRepo()\nactual = %v\nexpect = %v", buffer.String(), expected) } buffer.Reset() - helm.AddRepo("myRepo", "https://repo.example.com/", "", "", "", "", "") + helm.AddRepo("myRepo", "https://repo.example.com/", "", "", "", "", "", "") expected = `Adding repo myRepo https://repo.example.com/ exec: helm --kube-context dev repo add myRepo https://repo.example.com/ -exec: helm --kube-context dev repo add myRepo https://repo.example.com/: ` if buffer.String() != expected { t.Errorf("helmexec.AddRepo()\nactual = %v\nexpect = %v", buffer.String(), expected) } buffer.Reset() - helm.AddRepo("myRepo", "https://repo.example.com/", "", "", "", "example_user", "example_password") + helm.AddRepo("acrRepo", "", "", "", "", "", "", "acr") + expected = `Adding repo acrRepo (acr) +exec: az acr helm repo add --name acrRepo +exec: az acr helm repo add --name acrRepo: +` + if buffer.String() != expected { + t.Errorf("helmexec.AddRepo()\nactual = %v\nexpect = %v", buffer.String(), expected) + } + + buffer.Reset() + helm.AddRepo("otherRepo", "", "", "", "", "", "", "unknown") + expected = `ERROR: unknown type 'unknown' for repository otherRepo +` + if buffer.String() != expected { + t.Errorf("helmexec.AddRepo()\nactual = %v\nexpect = %v", buffer.String(), expected) + } + + buffer.Reset() + helm.AddRepo("myRepo", "https://repo.example.com/", "", "", "", "example_user", "example_password", "") expected = `Adding repo myRepo https://repo.example.com/ exec: helm --kube-context dev repo add myRepo https://repo.example.com/ --username example_user --password example_password -exec: helm --kube-context dev repo add myRepo https://repo.example.com/ --username example_user --password example_password: ` if buffer.String() != expected { t.Errorf("helmexec.AddRepo()\nactual = %v\nexpect = %v", buffer.String(), expected) } buffer.Reset() - helm.AddRepo("", "https://repo.example.com/", "", "", "", "", "") + helm.AddRepo("", "https://repo.example.com/", "", "", "", "", "", "") expected = `empty field name ` @@ -152,7 +165,6 @@ helm.UpdateRepo() expected := `Updating repo exec: helm --kube-context dev repo update -exec: helm --kube-context dev repo update: ` if buffer.String() != expected { t.Errorf("helmexec.UpdateRepo()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -166,7 +178,6 @@ helm.SyncRelease(HelmContext{}, "release", "chart", "--timeout 10", "--wait") expected := `Upgrading release=release, chart=chart exec: helm --kube-context dev upgrade --install --reset-values release chart --timeout 10 --wait -exec: helm --kube-context dev upgrade --install --reset-values release chart --timeout 10 --wait: ` if buffer.String() != expected { t.Errorf("helmexec.SyncRelease()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -176,7 +187,6 @@ helm.SyncRelease(HelmContext{}, "release", "chart") expected = `Upgrading release=release, chart=chart exec: helm --kube-context dev upgrade --install --reset-values release chart -exec: helm --kube-context dev upgrade --install --reset-values release chart: ` if buffer.String() != expected { t.Errorf("helmexec.SyncRelease()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -191,7 +201,6 @@ "--timeout 10", "--wait") expected := `Upgrading release=release, chart=chart exec: helm --kube-context dev tiller run foo -- helm upgrade --install --reset-values release chart --timeout 10 --wait -exec: helm --kube-context dev tiller run foo -- helm upgrade --install --reset-values release chart --timeout 10 --wait: ` if buffer.String() != expected { t.Errorf("helmexec.SyncRelease()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -205,7 +214,6 @@ helm.UpdateDeps("./chart/foo") expected := `Updating dependency ./chart/foo exec: helm --kube-context dev dependency update ./chart/foo -exec: helm --kube-context dev dependency update ./chart/foo: ` if buffer.String() != expected { t.Errorf("helmexec.UpdateDeps()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -216,7 +224,6 @@ helm.UpdateDeps("./chart/foo") expected = `Updating dependency ./chart/foo exec: helm --kube-context dev dependency update ./chart/foo --verify -exec: helm --kube-context dev dependency update ./chart/foo --verify: ` if buffer.String() != expected { t.Errorf("helmexec.AddRepo()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -230,7 +237,6 @@ helm.BuildDeps("foo", "./chart/foo") expected := `Building dependency release=foo, chart=./chart/foo exec: helm --kube-context dev dependency build ./chart/foo -exec: helm --kube-context dev dependency build ./chart/foo: ` if buffer.String() != expected { t.Errorf("helmexec.BuildDeps()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -241,7 +247,6 @@ helm.BuildDeps("foo", "./chart/foo") expected = `Building dependency release=foo, chart=./chart/foo exec: helm --kube-context dev dependency build ./chart/foo --verify -exec: helm --kube-context dev dependency build ./chart/foo --verify: ` if buffer.String() != expected { t.Errorf("helmexec.BuildDeps()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -263,10 +268,9 @@ expected := fmt.Sprintf(`Preparing to decrypt secret %v/secretName Decrypting secret %s/secretName exec: helm --kube-context dev secrets dec %s/secretName -exec: helm --kube-context dev secrets dec %s/secretName: Preparing to decrypt secret %s/secretName Found secret in cache %s/secretName -`, cwd, cwd, cwd, cwd, cwd, cwd) +`, cwd, cwd, cwd, cwd, cwd) if buffer.String() != expected { t.Errorf("helmexec.DecryptSecret()\nactual = %v\nexpect = %v", buffer.String(), expected) } @@ -279,7 +283,6 @@ helm.DiffRelease(HelmContext{}, "release", "chart", false, "--timeout 10", "--wait") expected := `Comparing release=release, chart=chart exec: helm --kube-context dev diff upgrade --reset-values --allow-unreleased release chart --timeout 10 --wait -exec: helm --kube-context dev diff upgrade --reset-values --allow-unreleased release chart --timeout 10 --wait: ` if buffer.String() != expected { t.Errorf("helmexec.DiffRelease()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -289,7 +292,6 @@ helm.DiffRelease(HelmContext{}, "release", "chart", false) expected = `Comparing release=release, chart=chart exec: helm --kube-context dev diff upgrade --reset-values --allow-unreleased release chart -exec: helm --kube-context dev diff upgrade --reset-values --allow-unreleased release chart: ` if buffer.String() != expected { t.Errorf("helmexec.DiffRelease()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -303,7 +305,6 @@ helm.DiffRelease(HelmContext{Tillerless: true}, "release", "chart", false, "--timeout 10", "--wait") expected := `Comparing release=release, chart=chart exec: helm --kube-context dev tiller run -- helm diff upgrade --reset-values --allow-unreleased release chart --timeout 10 --wait -exec: helm --kube-context dev tiller run -- helm diff upgrade --reset-values --allow-unreleased release chart --timeout 10 --wait: ` if buffer.String() != expected { t.Errorf("helmexec.DiffRelease()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -317,7 +318,6 @@ helm.DeleteRelease(HelmContext{}, "release") expected := `Deleting release exec: helm --kube-context dev delete release -exec: helm --kube-context dev delete release: ` if buffer.String() != expected { t.Errorf("helmexec.DeleteRelease()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -330,7 +330,6 @@ helm.DeleteRelease(HelmContext{}, "release", "--purge") expected := `Deleting release exec: helm --kube-context dev delete release --purge -exec: helm --kube-context dev delete release --purge: ` if buffer.String() != expected { t.Errorf("helmexec.DeleteRelease()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -344,7 +343,6 @@ helm.TestRelease(HelmContext{}, "release") expected := `Testing release exec: helm --kube-context dev test release -exec: helm --kube-context dev test release: ` if buffer.String() != expected { t.Errorf("helmexec.TestRelease()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -357,7 +355,6 @@ helm.TestRelease(HelmContext{}, "release", "--cleanup", "--timeout", "60") expected := `Testing release exec: helm --kube-context dev test release --cleanup --timeout 60 -exec: helm --kube-context dev test release --cleanup --timeout 60: ` if buffer.String() != expected { t.Errorf("helmexec.TestRelease()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -371,7 +368,6 @@ helm.ReleaseStatus(HelmContext{}, "myRelease") expected := `Getting status myRelease exec: helm --kube-context dev status myRelease -exec: helm --kube-context dev status myRelease: ` if buffer.String() != expected { t.Errorf("helmexec.ReleaseStatus()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -385,7 +381,6 @@ env := map[string]string{} helm.exec([]string{"version"}, env) expected := `exec: helm version -exec: helm version: ` if buffer.String() != expected { t.Errorf("helmexec.exec()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -401,7 +396,6 @@ helm = MockExecer(logger, "dev") helm.exec([]string{"diff", "release", "chart", "--timeout 10", "--wait"}, env) expected = `exec: helm --kube-context dev diff release chart --timeout 10 --wait -exec: helm --kube-context dev diff release chart --timeout 10 --wait: ` if buffer.String() != expected { t.Errorf("helmexec.exec()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -410,7 +404,6 @@ buffer.Reset() helm.exec([]string{"version"}, env) expected = `exec: helm --kube-context dev version -exec: helm --kube-context dev version: ` if buffer.String() != expected { t.Errorf("helmexec.exec()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -420,7 +413,6 @@ helm.SetExtraArgs("foo") helm.exec([]string{"version"}, env) expected = `exec: helm --kube-context dev version foo -exec: helm --kube-context dev version foo: ` if buffer.String() != expected { t.Errorf("helmexec.exec()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -431,7 +423,6 @@ helm.SetHelmBinary("overwritten") helm.exec([]string{"version"}, env) expected = `exec: overwritten version -exec: overwritten version: ` if buffer.String() != expected { t.Errorf("helmexec.exec()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -445,7 +436,6 @@ helm.Lint("release", "path/to/chart", "--values", "file.yml") expected := `Linting release=release, chart=path/to/chart exec: helm --kube-context dev lint path/to/chart --values file.yml -exec: helm --kube-context dev lint path/to/chart --values file.yml: ` if buffer.String() != expected { t.Errorf("helmexec.Lint()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -459,7 +449,6 @@ helm.Fetch("chart", "--version", "1.2.3", "--untar", "--untardir", "/tmp/dir") expected := `Fetching chart exec: helm --kube-context dev fetch chart --version 1.2.3 --untar --untardir /tmp/dir -exec: helm --kube-context dev fetch chart --version 1.2.3 --untar --untardir /tmp/dir: ` if buffer.String() != expected { t.Errorf("helmexec.Lint()\nactual = %v\nexpect = %v", buffer.String(), expected) @@ -469,7 +458,6 @@ var logLevelTests = map[string]string{ "debug": `Adding repo myRepo https://repo.example.com/ exec: helm repo add myRepo https://repo.example.com/ --username example_user --password example_password -exec: helm repo add myRepo https://repo.example.com/ --username example_user --password example_password: `, "info": `Adding repo myRepo https://repo.example.com/ `, @@ -482,7 +470,7 @@ buffer.Reset() logger := NewLogger(&buffer, logLevel) helm := MockExecer(logger, "") - helm.AddRepo("myRepo", "https://repo.example.com/", "", "", "", "example_user", "example_password") + helm.AddRepo("myRepo", "https://repo.example.com/", "", "", "", "example_user", "example_password", "") if buffer.String() != expected { t.Errorf("helmexec.AddRepo()\nactual = %v\nexpect = %v", buffer.String(), expected) } @@ -530,7 +518,6 @@ helm.TemplateRelease("release", "path/to/chart", "--values", "file.yml") expected := `Templating release=release, chart=path/to/chart exec: helm --kube-context dev template path/to/chart --name release --values file.yml -exec: helm --kube-context dev template path/to/chart --name release --values file.yml: ` if buffer.String() != expected { t.Errorf("helmexec.Template()\nactual = %v\nexpect = %v", buffer.String(), expected) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/pkg/helmexec/helmexec.go new/helmfile-0.132.0/pkg/helmexec/helmexec.go --- old/helmfile-0.130.3/pkg/helmexec/helmexec.go 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/pkg/helmexec/helmexec.go 2020-10-19 01:48:39.000000000 +0200 @@ -12,7 +12,7 @@ SetExtraArgs(args ...string) SetHelmBinary(bin string) - AddRepo(name, repository, cafile, certfile, keyfile, username, password string) error + AddRepo(name, repository, cafile, certfile, keyfile, username, password string, managed string) error UpdateRepo() error BuildDeps(name, chart string) error UpdateDeps(chart string) error diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/pkg/state/state.go new/helmfile-0.132.0/pkg/state/state.go --- old/helmfile-0.130.3/pkg/state/state.go 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/pkg/state/state.go 2020-10-19 01:48:39.000000000 +0200 @@ -157,6 +157,7 @@ KeyFile string `yaml:"keyFile,omitempty"` Username string `yaml:"username,omitempty"` Password string `yaml:"password,omitempty"` + Managed string `yaml:"managed,omitempty"` } // ReleaseSpec defines the structure of a helm release @@ -313,7 +314,7 @@ } type RepoUpdater interface { - AddRepo(name, repository, cafile, certfile, keyfile, username, password string) error + AddRepo(name, repository, cafile, certfile, keyfile, username, password string, managed string) error UpdateRepo() error } @@ -355,7 +356,7 @@ continue } - if err := helm.AddRepo(repo.Name, repo.URL, repo.CaFile, repo.CertFile, repo.KeyFile, repo.Username, repo.Password); err != nil { + if err := helm.AddRepo(repo.Name, repo.URL, repo.CaFile, repo.CertFile, repo.KeyFile, repo.Username, repo.Password, repo.Managed); err != nil { return nil, err } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.130.3/pkg/state/state_test.go new/helmfile-0.132.0/pkg/state/state_test.go --- old/helmfile-0.130.3/pkg/state/state_test.go 2020-10-14 02:56:17.000000000 +0200 +++ new/helmfile-0.132.0/pkg/state/state_test.go 2020-10-19 01:48:39.000000000 +0200 @@ -857,7 +857,18 @@ }, }, helm: &exectest.Helm{}, - want: []string{"name", "http://example.com/", "", "", "", "", ""}, + want: []string{"name", "http://example.com/", "", "", "", "", "", ""}, + }, + { + name: "ACR hosted repository", + repos: []RepositorySpec{ + { + Name: "name", + Managed: "acr", + }, + }, + helm: &exectest.Helm{}, + want: []string{"name", "", "", "", "", "", "", "acr"}, }, { name: "repository with cert and key", @@ -872,7 +883,7 @@ }, }, helm: &exectest.Helm{}, - want: []string{"name", "http://example.com/", "", "certfile", "keyfile", "", ""}, + want: []string{"name", "http://example.com/", "", "certfile", "keyfile", "", "", ""}, }, { name: "repository with ca file", @@ -886,7 +897,7 @@ }, }, helm: &exectest.Helm{}, - want: []string{"name", "http://example.com/", "cafile", "", "", "", ""}, + want: []string{"name", "http://example.com/", "cafile", "", "", "", "", ""}, }, { name: "repository with username and password", @@ -901,7 +912,7 @@ }, }, helm: &exectest.Helm{}, - want: []string{"name", "http://example.com/", "", "", "", "example_user", "example_password"}, + want: []string{"name", "http://example.com/", "", "", "", "example_user", "example_password", ""}, }, } for i := range tests { ++++++ vendor.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/variantdev/chartify/set_namespace.go new/vendor/github.com/variantdev/chartify/set_namespace.go --- old/vendor/github.com/variantdev/chartify/set_namespace.go 2020-10-18 10:51:27.000000000 +0200 +++ new/vendor/github.com/variantdev/chartify/set_namespace.go 2020-10-22 10:52:47.000000000 +0200 @@ -85,7 +85,7 @@ } doc.Content[resourceIndex].Content[metadataIndex].Content = c } else { - return fmt.Errorf("no resource and metadata found in %+v", doc) + r.Logf("Skipping %s as it has no resource and metadata. Maybe this is an unconventional chart template file that contains only {{ define}} blocks but not named _helpers.tpl?", f.Name()) } docs = append(docs, doc) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2020-10-18 10:51:30.000000000 +0200 +++ new/vendor/modules.txt 2020-10-22 10:52:48.000000000 +0200 @@ -277,7 +277,7 @@ # github.com/urfave/cli v1.20.0 ## explicit github.com/urfave/cli -# github.com/variantdev/chartify v0.4.3 +# github.com/variantdev/chartify v0.4.4 ## explicit github.com/variantdev/chartify # github.com/variantdev/dag v0.0.0-20191028002400-bb0b3c785363