From b375a31f20faabc9e7079d8766b6fc3d90b28026 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 30 Sep 2024 21:21:44 +0800 Subject: [PATCH 001/177] feat: update go version and adjust dependencies in Dockerfile and go.mod (#1722) * feat: update go version and adjust dependencies in Dockerfile and go.mod Signed-off-by: yxxhero * fix lint Signed-off-by: yxxhero * fix lint Signed-off-by: yxxhero --------- Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 2 +- Dockerfile | 18 +++++++++--------- Dockerfile.debian-stable-slim | 24 ++++++++++++------------ Dockerfile.ubuntu | 24 ++++++++++++------------ go.mod | 4 +--- go.sum | 4 ---- pkg/app/app.go | 8 ++++---- pkg/errors/errors.go | 4 ++-- pkg/hcllang/hcl_loader_test.go | 10 +++++----- pkg/helmexec/exec.go | 4 ++-- pkg/helmexec/exec_test.go | 4 ++-- pkg/helmexec/runner.go | 2 +- pkg/state/envvals_loader_test.go | 14 +++++++------- pkg/state/state.go | 8 ++++---- pkg/tmpl/context_funcs.go | 2 ++ 15 files changed, 64 insertions(+), 68 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b4390a36..eea19953 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,7 +20,7 @@ jobs: cache: false - uses: golangci/golangci-lint-action@v6 with: - version: v1.57.2 + version: v1.61.0 tests: runs-on: ubuntu-latest diff --git a/Dockerfile b/Dockerfile index b157780a..6d9170a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM golang:1.22-alpine AS builder +FROM --platform=$BUILDPLATFORM golang:1.23-alpine AS builder RUN apk add --no-cache make git WORKDIR /workspace/helmfile @@ -38,8 +38,8 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="e57e826410269d72be3113333dbfaac0d8dfdd1b0cc4e9cb08bdf97722731ca9" ;; \ - "linux/arm64") HELM_SHA256="780b5b86f0db5546769b3e9f0204713bbdd2f6696dfdaac122fbe7f2f31541d2" ;; \ + "linux/amd64") HELM_SHA256="e57e826410269d72be3113333dbfaac0d8dfdd1b0cc4e9cb08bdf97722731ca9" ;; \ + "linux/arm64") HELM_SHA256="780b5b86f0db5546769b3e9f0204713bbdd2f6696dfdaac122fbe7f2f31541d2" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ @@ -54,9 +54,9 @@ ENV KUBECTL_VERSION="v1.28.9" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl" && \ case ${TARGETPLATFORM} in \ - # checksums are available at https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256 - "linux/amd64") KUBECTL_SHA256="b4693d0b22f509250694b10c7727c42b427d570af04f2065fe23a55d6c0051f1" ;; \ - "linux/arm64") KUBECTL_SHA256="e0341d3973213f8099e7fcbbf6d1d506967bc2b7a4faac3fb3b4340f226e9b2f" ;; \ + # checksums are available at https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256 + "linux/amd64") KUBECTL_SHA256="b4693d0b22f509250694b10c7727c42b427d570af04f2065fe23a55d6c0051f1" ;; \ + "linux/arm64") KUBECTL_SHA256="e0341d3973213f8099e7fcbbf6d1d506967bc2b7a4faac3fb3b4340f226e9b2f" ;; \ esac && \ echo "${KUBECTL_SHA256} kubectl" | sha256sum -c && \ chmod +x kubectl && \ @@ -68,9 +68,9 @@ ARG KUSTOMIZE_FILENAME="kustomize_${KUSTOMIZE_VERSION}_${TARGETOS}_${TARGETARCH} RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/${KUSTOMIZE_VERSION}/${KUSTOMIZE_FILENAME}" && \ case ${TARGETPLATFORM} in \ - # Checksums are available at https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/${KUSTOMIZE_VERSION}/checksums.txt - "linux/amd64") KUSTOMIZE_SHA256="3669470b454d865c8184d6bce78df05e977c9aea31c30df3c669317d43bcc7a7" ;; \ - "linux/arm64") KUSTOMIZE_SHA256="1b515578b0af12c15d9856720066ce2fe66756d63785b2cbccaf2885beb2381c" ;; \ + # Checksums are available at https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/${KUSTOMIZE_VERSION}/checksums.txt + "linux/amd64") KUSTOMIZE_SHA256="3669470b454d865c8184d6bce78df05e977c9aea31c30df3c669317d43bcc7a7" ;; \ + "linux/arm64") KUSTOMIZE_SHA256="1b515578b0af12c15d9856720066ce2fe66756d63785b2cbccaf2885beb2381c" ;; \ esac && \ echo "${KUSTOMIZE_SHA256} ${KUSTOMIZE_FILENAME}" | sha256sum -c && \ tar xvf "${KUSTOMIZE_FILENAME}" -C /usr/local/bin && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index dce57e5e..9245f366 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM golang:1.22-alpine AS builder +FROM --platform=$BUILDPLATFORM golang:1.23-alpine AS builder RUN apk add --no-cache make git WORKDIR /workspace/helmfile @@ -18,9 +18,9 @@ LABEL org.opencontainers.image.source=https://github.com/helmfile/helmfile RUN apt update -qq && \ apt install --no-install-recommends -y \ - ca-certificates \ - gnupg \ - git bash curl jq wget openssh-client && \ + ca-certificates \ + gnupg \ + git bash curl jq wget openssh-client && \ rm -rf /var/lib/apt/lists/* ARG TARGETARCH TARGETOS TARGETPLATFORM @@ -43,8 +43,8 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="e57e826410269d72be3113333dbfaac0d8dfdd1b0cc4e9cb08bdf97722731ca9" ;; \ - "linux/arm64") HELM_SHA256="780b5b86f0db5546769b3e9f0204713bbdd2f6696dfdaac122fbe7f2f31541d2" ;; \ + "linux/amd64") HELM_SHA256="e57e826410269d72be3113333dbfaac0d8dfdd1b0cc4e9cb08bdf97722731ca9" ;; \ + "linux/arm64") HELM_SHA256="780b5b86f0db5546769b3e9f0204713bbdd2f6696dfdaac122fbe7f2f31541d2" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ @@ -59,9 +59,9 @@ ENV KUBECTL_VERSION="v1.28.9" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl" && \ case ${TARGETPLATFORM} in \ - # checksums are available at https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256 - "linux/amd64") KUBECTL_SHA256="b4693d0b22f509250694b10c7727c42b427d570af04f2065fe23a55d6c0051f1" ;; \ - "linux/arm64") KUBECTL_SHA256="e0341d3973213f8099e7fcbbf6d1d506967bc2b7a4faac3fb3b4340f226e9b2f" ;; \ + # checksums are available at https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256 + "linux/amd64") KUBECTL_SHA256="b4693d0b22f509250694b10c7727c42b427d570af04f2065fe23a55d6c0051f1" ;; \ + "linux/arm64") KUBECTL_SHA256="e0341d3973213f8099e7fcbbf6d1d506967bc2b7a4faac3fb3b4340f226e9b2f" ;; \ esac && \ echo "${KUBECTL_SHA256} kubectl" | sha256sum -c && \ chmod +x kubectl && \ @@ -73,9 +73,9 @@ ARG KUSTOMIZE_FILENAME="kustomize_${KUSTOMIZE_VERSION}_${TARGETOS}_${TARGETARCH} RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/${KUSTOMIZE_VERSION}/${KUSTOMIZE_FILENAME}" && \ case ${TARGETPLATFORM} in \ - # Checksums are available at https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/${KUSTOMIZE_VERSION}/checksums.txt - "linux/amd64") KUSTOMIZE_SHA256="3669470b454d865c8184d6bce78df05e977c9aea31c30df3c669317d43bcc7a7" ;; \ - "linux/arm64") KUSTOMIZE_SHA256="1b515578b0af12c15d9856720066ce2fe66756d63785b2cbccaf2885beb2381c" ;; \ + # Checksums are available at https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/${KUSTOMIZE_VERSION}/checksums.txt + "linux/amd64") KUSTOMIZE_SHA256="3669470b454d865c8184d6bce78df05e977c9aea31c30df3c669317d43bcc7a7" ;; \ + "linux/arm64") KUSTOMIZE_SHA256="1b515578b0af12c15d9856720066ce2fe66756d63785b2cbccaf2885beb2381c" ;; \ esac && \ echo "${KUSTOMIZE_SHA256} ${KUSTOMIZE_FILENAME}" | sha256sum -c && \ tar xvf "${KUSTOMIZE_FILENAME}" -C /usr/local/bin && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 55de9269..d1b69624 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM golang:1.22-alpine AS builder +FROM --platform=$BUILDPLATFORM golang:1.23-alpine AS builder RUN apk add --no-cache make git WORKDIR /workspace/helmfile @@ -18,9 +18,9 @@ LABEL org.opencontainers.image.source=https://github.com/helmfile/helmfile RUN apt update -qq && \ apt install --no-install-recommends -y \ - ca-certificates \ - gnupg \ - git bash curl jq wget openssh-client && \ + ca-certificates \ + gnupg \ + git bash curl jq wget openssh-client && \ rm -rf /var/lib/apt/lists/* ARG TARGETARCH TARGETOS TARGETPLATFORM @@ -43,8 +43,8 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="e57e826410269d72be3113333dbfaac0d8dfdd1b0cc4e9cb08bdf97722731ca9" ;; \ - "linux/arm64") HELM_SHA256="780b5b86f0db5546769b3e9f0204713bbdd2f6696dfdaac122fbe7f2f31541d2" ;; \ + "linux/amd64") HELM_SHA256="e57e826410269d72be3113333dbfaac0d8dfdd1b0cc4e9cb08bdf97722731ca9" ;; \ + "linux/arm64") HELM_SHA256="780b5b86f0db5546769b3e9f0204713bbdd2f6696dfdaac122fbe7f2f31541d2" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ @@ -59,9 +59,9 @@ ENV KUBECTL_VERSION="v1.28.9" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl" && \ case ${TARGETPLATFORM} in \ - # checksums are available at https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256 - "linux/amd64") KUBECTL_SHA256="b4693d0b22f509250694b10c7727c42b427d570af04f2065fe23a55d6c0051f1" ;; \ - "linux/arm64") KUBECTL_SHA256="e0341d3973213f8099e7fcbbf6d1d506967bc2b7a4faac3fb3b4340f226e9b2f" ;; \ + # checksums are available at https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256 + "linux/amd64") KUBECTL_SHA256="b4693d0b22f509250694b10c7727c42b427d570af04f2065fe23a55d6c0051f1" ;; \ + "linux/arm64") KUBECTL_SHA256="e0341d3973213f8099e7fcbbf6d1d506967bc2b7a4faac3fb3b4340f226e9b2f" ;; \ esac && \ echo "${KUBECTL_SHA256} kubectl" | sha256sum -c && \ chmod +x kubectl && \ @@ -73,9 +73,9 @@ ARG KUSTOMIZE_FILENAME="kustomize_${KUSTOMIZE_VERSION}_${TARGETOS}_${TARGETARCH} RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/${KUSTOMIZE_VERSION}/${KUSTOMIZE_FILENAME}" && \ case ${TARGETPLATFORM} in \ - # Checksums are available at https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/${KUSTOMIZE_VERSION}/checksums.txt - "linux/amd64") KUSTOMIZE_SHA256="3669470b454d865c8184d6bce78df05e977c9aea31c30df3c669317d43bcc7a7" ;; \ - "linux/arm64") KUSTOMIZE_SHA256="1b515578b0af12c15d9856720066ce2fe66756d63785b2cbccaf2885beb2381c" ;; \ + # Checksums are available at https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/${KUSTOMIZE_VERSION}/checksums.txt + "linux/amd64") KUSTOMIZE_SHA256="3669470b454d865c8184d6bce78df05e977c9aea31c30df3c669317d43bcc7a7" ;; \ + "linux/arm64") KUSTOMIZE_SHA256="1b515578b0af12c15d9856720066ce2fe66756d63785b2cbccaf2885beb2381c" ;; \ esac && \ echo "${KUSTOMIZE_SHA256} ${KUSTOMIZE_FILENAME}" | sha256sum -c && \ tar xvf "${KUSTOMIZE_FILENAME}" -C /usr/local/bin && \ diff --git a/go.mod b/go.mod index 1e6ea8e0..b1eca83f 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/helmfile/helmfile -go 1.22.6 +go 1.23.1 require ( dario.cat/mergo v1.0.1 @@ -184,7 +184,6 @@ require ( github.com/docker/go-metrics v0.0.1 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect - github.com/evanphx/json-patch v5.9.0+incompatible // indirect github.com/extism/go-sdk v1.3.1 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect @@ -233,7 +232,6 @@ require ( github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect github.com/moby/locker v1.0.1 // indirect diff --git a/go.sum b/go.sum index 280b3700..78e18694 100644 --- a/go.sum +++ b/go.sum @@ -443,8 +443,6 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m 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.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= -github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/extism/go-sdk v1.3.1 h1:eVpuv36b67Km/tAb7Cq6msHEW8kkdFgpZO/7fCwjuoE= github.com/extism/go-sdk v1.3.1/go.mod h1:tPMWfCSOThie3LSTSZKbrQjRm2oAXxUUjSE4HJWjYQM= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -776,8 +774,6 @@ github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRC github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= diff --git a/pkg/app/app.go b/pkg/app/app.go index eaab62b7..87b44351 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -1006,14 +1006,14 @@ func printBatches(batches [][]state.Release) string { w.Init(buf, 0, 1, 1, ' ', 0) - fmt.Fprintln(w, "GROUP\tRELEASES") + _, _ = fmt.Fprintln(w, "GROUP\tRELEASES") for i, batch := range batches { ids := []string{} for _, r := range batch { ids = append(ids, state.ReleaseToID(&r.ReleaseSpec)) } - fmt.Fprintf(w, "%d\t%s\n", i+1, strings.Join(ids, ", ")) + _, _ = fmt.Fprintf(w, "%d\t%s\n", i+1, strings.Join(ids, ", ")) } _ = w.Flush() @@ -1028,13 +1028,13 @@ func printDAG(batches [][]state.Release) string { w.Init(buf, 0, 1, 1, ' ', 0) - fmt.Fprintln(w, "GROUP\tRELEASE\tDEPENDENCIES") + _, _ = fmt.Fprintln(w, "GROUP\tRELEASE\tDEPENDENCIES") for i, batch := range batches { for _, r := range batch { id := state.ReleaseToID(&r.ReleaseSpec) needs := r.ReleaseSpec.Needs - fmt.Fprintf(w, "%d\t%s\t%s\n", i+1, id, strings.Join(needs, ", ")) + _, _ = fmt.Fprintf(w, "%d\t%s\t%s\n", i+1, id, strings.Join(needs, ", ")) } } diff --git a/pkg/errors/errors.go b/pkg/errors/errors.go index 2372e2b0..956233d3 100644 --- a/pkg/errors/errors.go +++ b/pkg/errors/errors.go @@ -85,12 +85,12 @@ func HandleExitCoder(err error) { if exitErr, ok := err.(ExitCoder); ok { if errMsg := err.Error(); errMsg != "" { - fmt.Fprintln(ErrWriter, errMsg) + _, _ = fmt.Fprintln(ErrWriter, errMsg) } OsExiter(exitErr.ExitCode()) return } - fmt.Fprintln(ErrWriter, err) + _, _ = fmt.Fprintln(ErrWriter, err) OsExiter(3) } diff --git a/pkg/hcllang/hcl_loader_test.go b/pkg/hcllang/hcl_loader_test.go index 2cce2aee..56fc18b3 100644 --- a/pkg/hcllang/hcl_loader_test.go +++ b/pkg/hcllang/hcl_loader_test.go @@ -44,7 +44,7 @@ func TestHCL_localsTraversalsParser(t *testing.T) { } if diff := cmp.Diff(expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } } @@ -79,7 +79,7 @@ func TestHCL_localsTraversalsAttrParser(t *testing.T) { } if diff := cmp.Diff(expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } } func TestHCL_valuesTraversalsParser(t *testing.T) { @@ -105,7 +105,7 @@ func TestHCL_valuesTraversalsParser(t *testing.T) { } if diff := cmp.Diff(expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } } @@ -137,7 +137,7 @@ func TestHCL_valuesTraversalsAttrParser(t *testing.T) { } if diff := cmp.Diff(expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } } @@ -158,6 +158,6 @@ func TestHCL_resultValidate(t *testing.T) { } if diff := cmp.Diff(expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } } diff --git a/pkg/helmexec/exec.go b/pkg/helmexec/exec.go index a980f5dc..283910ef 100644 --- a/pkg/helmexec/exec.go +++ b/pkg/helmexec/exec.go @@ -461,7 +461,7 @@ func (helm *execer) TemplateRelease(name string, chart string, flags ...string) func (helm *execer) DiffRelease(context HelmContext, name, chart, namespace string, suppressDiff bool, flags ...string) error { diffMsg := fmt.Sprintf("Comparing release=%v, chart=%v, namespace=%v\n", name, redactedURL(chart), namespace) if context.Writer != nil && !suppressDiff { - fmt.Fprint(context.Writer, diffMsg) + _, _ = fmt.Fprint(context.Writer, diffMsg) } else { helm.logger.Info(diffMsg) } @@ -637,7 +637,7 @@ func (helm *execer) write(w io.Writer, out []byte) { if w == nil { w = os.Stdout } - fmt.Fprintf(w, "%s\n", out) + _, _ = fmt.Fprintf(w, "%s\n", out) } } diff --git a/pkg/helmexec/exec_test.go b/pkg/helmexec/exec_test.go index 6115462a..58d4ce3d 100644 --- a/pkg/helmexec/exec_test.go +++ b/pkg/helmexec/exec_test.go @@ -997,7 +997,7 @@ func Test_GetPluginVersion(t *testing.T) { v3SecretPluginVersion, err := GetPluginVersion("secrets", v3PluginDirPath) if err != nil { - t.Errorf(err.Error()) + t.Error(err.Error()) } if v3SecretPluginVersion.String() != v3ExpectedVersion { t.Errorf("secrets v3 plugin version is %v, expected %v", v3SecretPluginVersion.String(), v3ExpectedVersion) @@ -1005,7 +1005,7 @@ func Test_GetPluginVersion(t *testing.T) { v4SecretPluginVersion, err := GetPluginVersion("secrets", v4PluginDirPath) if err != nil { - t.Errorf(err.Error()) + t.Error(err.Error()) } if v4SecretPluginVersion.String() != v4ExpectedVersion { t.Errorf("secrets v4 plugin version is %v, expected %v", v4SecretPluginVersion.String(), v4ExpectedVersion) diff --git a/pkg/helmexec/runner.go b/pkg/helmexec/runner.go index c1669f39..1456caf9 100644 --- a/pkg/helmexec/runner.go +++ b/pkg/helmexec/runner.go @@ -146,7 +146,7 @@ func LiveOutput(ctx context.Context, c *exec.Cmd, stripArgsValuesOnExitError boo } line = strings.TrimSuffix(line, "\n") - fmt.Fprintln(stdout, line) + _, _ = fmt.Fprintln(stdout, line) } }() diff --git a/pkg/state/envvals_loader_test.go b/pkg/state/envvals_loader_test.go index b0f37719..af801443 100644 --- a/pkg/state/envvals_loader_test.go +++ b/pkg/state/envvals_loader_test.go @@ -39,7 +39,7 @@ func TestEnvValsLoad_SingleValuesFile(t *testing.T) { } if diff := cmp.Diff(expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } } @@ -93,7 +93,7 @@ func TestEnvValsLoad_EnvironmentNameFile(t *testing.T) { } if diff := cmp.Diff(tt.expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } }) } @@ -113,7 +113,7 @@ func TestEnvValsLoad_SingleValuesFileRemote(t *testing.T) { } if diff := cmp.Diff(expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } } @@ -135,7 +135,7 @@ func TestEnvValsLoad_OverwriteNilValue_Issue1150(t *testing.T) { } if diff := cmp.Diff(expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } } @@ -158,7 +158,7 @@ func TestEnvValsLoad_OverwriteWithNilValue_Issue1154(t *testing.T) { } if diff := cmp.Diff(expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } } @@ -184,7 +184,7 @@ func TestEnvValsLoad_OverwriteEmptyValue_Issue1168(t *testing.T) { } if diff := cmp.Diff(expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } } @@ -225,6 +225,6 @@ func TestEnvValsLoad_MultiHCL(t *testing.T) { } if diff := cmp.Diff(expected, actual); diff != "" { - t.Errorf(diff) + t.Error(diff) } } diff --git a/pkg/state/state.go b/pkg/state/state.go index 0fbff129..a608df65 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1928,7 +1928,7 @@ func (st *HelmState) prepareDiffReleases(helm helmexec.Interface, additionalValu func() { for i := 0; i < numReleases; i++ { res := <-results - if res.errors != nil && len(res.errors) > 0 { + if len(res.errors) > 0 { for _, e := range res.errors { errs = append(errs, e) } @@ -3386,7 +3386,7 @@ func hideChartCredentials(chartCredentials string) (string, error) { // DisplayAffectedReleases logs the upgraded, deleted and in error releases func (ar *AffectedReleases) DisplayAffectedReleases(logger *zap.SugaredLogger) { - if ar.Upgraded != nil && len(ar.Upgraded) > 0 { + if len(ar.Upgraded) > 0 { logger.Info("\nUPDATED RELEASES:") tbl, _ := prettytable.NewTable(prettytable.Column{Header: "NAME"}, prettytable.Column{Header: "NAMESPACE", MinWidth: 6}, @@ -3408,7 +3408,7 @@ func (ar *AffectedReleases) DisplayAffectedReleases(logger *zap.SugaredLogger) { } logger.Info(tbl.String()) } - if ar.Deleted != nil && len(ar.Deleted) > 0 { + if len(ar.Deleted) > 0 { logger.Info("\nDELETED RELEASES:") tbl, _ := prettytable.NewTable(prettytable.Column{Header: "NAME"}, prettytable.Column{Header: "NAMESPACE", MinWidth: 6}, @@ -3423,7 +3423,7 @@ func (ar *AffectedReleases) DisplayAffectedReleases(logger *zap.SugaredLogger) { } logger.Info(tbl.String()) } - if ar.Failed != nil && len(ar.Failed) > 0 { + if len(ar.Failed) > 0 { logger.Info("\nFAILED RELEASES:") tbl, _ := prettytable.NewTable(prettytable.Column{Header: "NAME"}, prettytable.Column{Header: "NAMESPACE", MinWidth: 6}, diff --git a/pkg/tmpl/context_funcs.go b/pkg/tmpl/context_funcs.go index 82f8bf0e..12888a91 100644 --- a/pkg/tmpl/context_funcs.go +++ b/pkg/tmpl/context_funcs.go @@ -391,9 +391,11 @@ func RequiredEnv(name string) (string, error) { func Required(warn string, val any) (any, error) { if val == nil { + // nolint:govet,staticcheck return nil, fmt.Errorf(warn) } else if _, ok := val.(string); ok { if val == "" { + // nolint:govet,staticcheck return nil, fmt.Errorf(warn) } } From d6f5dbd2a941b24884fc2f91e2002d2e03f09ada Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:22:12 +0800 Subject: [PATCH 002/177] feat: Update Docker image to ubuntu:24.10 (#1726) Signed-off-by: yxxhero --- Dockerfile.ubuntu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index d1b69624..65b57c9a 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -12,7 +12,7 @@ RUN make static-${TARGETOS}-${TARGETARCH} # ----------------------------------------------------------------------------- -FROM ubuntu:24.04 +FROM ubuntu:24.10 LABEL org.opencontainers.image.source=https://github.com/helmfile/helmfile From 40e328d227e84b5a36062f584afc947b5158a280 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:36:08 +0800 Subject: [PATCH 003/177] build(deps): bump github.com/zclconf/go-cty-yaml from 1.0.3 to 1.1.0 (#1723) Bumps [github.com/zclconf/go-cty-yaml](https://github.com/zclconf/go-cty-yaml) from 1.0.3 to 1.1.0. - [Changelog](https://github.com/zclconf/go-cty-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/zclconf/go-cty-yaml/compare/v1.0.3...v1.1.0) --- updated-dependencies: - dependency-name: github.com/zclconf/go-cty-yaml dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b1eca83f..1dc1ed77 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/tj/assert v0.0.3 github.com/variantdev/dag v1.1.0 github.com/zclconf/go-cty v1.15.0 - github.com/zclconf/go-cty-yaml v1.0.3 + github.com/zclconf/go-cty-yaml v1.1.0 go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.8.0 diff --git a/go.sum b/go.sum index 78e18694..2dc762c7 100644 --- a/go.sum +++ b/go.sum @@ -964,8 +964,8 @@ github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= -github.com/zclconf/go-cty-yaml v1.0.3 h1:og/eOQ7lvA/WWhHGFETVWNduJM7Rjsv2RRpx1sdFMLc= -github.com/zclconf/go-cty-yaml v1.0.3/go.mod h1:9YLUH4g7lOhVWqUbctnVlZ5KLpg7JAprQNgxSZ1Gyxs= +github.com/zclconf/go-cty-yaml v1.1.0 h1:nP+jp0qPHv2IhUVqmQSzjvqAWcObN0KBkUl2rWBdig0= +github.com/zclconf/go-cty-yaml v1.1.0/go.mod h1:9YLUH4g7lOhVWqUbctnVlZ5KLpg7JAprQNgxSZ1Gyxs= go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= From 349c4710358d801c9c9a60ba4dabec5755ed2aec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:51:09 +0800 Subject: [PATCH 004/177] build(deps): bump golang.org/x/term from 0.24.0 to 0.25.0 (#1724) Bumps [golang.org/x/term](https://github.com/golang/term) from 0.24.0 to 0.25.0. - [Commits](https://github.com/golang/term/compare/v0.24.0...v0.25.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 1dc1ed77..8091b329 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.8.0 - golang.org/x/term v0.24.0 + golang.org/x/term v0.25.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.16.1 k8s.io/apimachinery v0.31.1 @@ -99,7 +99,7 @@ require ( go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.28.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sys v0.25.0 // indirect + golang.org/x/sys v0.26.0 // indirect golang.org/x/text v0.17.0 // indirect golang.org/x/time v0.6.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect diff --git a/go.sum b/go.sum index 2dc762c7..1cca37ed 100644 --- a/go.sum +++ b/go.sum @@ -1220,16 +1220,16 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.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.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.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= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= -golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= +golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= +golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= 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= From f3c49ae53a48ce2d314cce2aff9d59064351349f Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Wed, 9 Oct 2024 20:57:03 +0800 Subject: [PATCH 005/177] feat(pkg/policy): improve TopKeys function handling (#1730) Signed-off-by: yxxhero --- pkg/policy/checker.go | 7 +++++-- pkg/policy/checker_test.go | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/policy/checker.go b/pkg/policy/checker.go index eea0a0cd..b493d513 100644 --- a/pkg/policy/checker.go +++ b/pkg/policy/checker.go @@ -8,6 +8,7 @@ import ( "regexp" "slices" "strings" + "unicode" "github.com/helmfile/helmfile/pkg/runtime" ) @@ -83,13 +84,15 @@ func TopKeys(helmfileContent []byte, hasSeparator bool) []string { clines := bytes.Split(helmfileContent, []byte("\n")) for _, line := range clines { - lineStr := strings.TrimSpace(string(line)) + lineStr := strings.TrimRightFunc(string(line), unicode.IsSpace) if lineStr == "" { continue // Skip empty lines } if hasSeparator && separatorRegex.MatchString(lineStr) { topKeys = append(topKeys, lineStr) - } else if topConfigKeysRegex.MatchString(lineStr) { + } + + if topConfigKeysRegex.MatchString(lineStr) { topKey := strings.SplitN(lineStr, ":", 2)[0] topKeys = append(topKeys, topKey) } diff --git a/pkg/policy/checker_test.go b/pkg/policy/checker_test.go index b867b4ad..7c28555c 100644 --- a/pkg/policy/checker_test.go +++ b/pkg/policy/checker_test.go @@ -230,6 +230,11 @@ func TestTopKeys(t *testing.T) { helmfileContent: []byte(""), want: nil, }, + { + name: "sub level contains top level key", + helmfileContent: []byte("bases:\n releases:\n - name: test\n namespace: test\n"), + want: []string{"bases"}, + }, } for _, tt := range tests { From 39a8c9001c3be5ee6fa71f7e539d4057bdb70f3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Oct 2024 11:56:06 -0400 Subject: [PATCH 006/177] build(deps): bump helm.sh/helm/v3 from 3.16.1 to 3.16.2 (#1732) Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.16.1 to 3.16.2. - [Release notes](https://github.com/helm/helm/releases) - [Commits](https://github.com/helm/helm/compare/v3.16.1...v3.16.2) --- updated-dependencies: - dependency-name: helm.sh/helm/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 8091b329..e93a0e98 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( golang.org/x/sync v0.8.0 golang.org/x/term v0.25.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.16.1 + helm.sh/helm/v3 v3.16.2 k8s.io/apimachinery v0.31.1 ) @@ -100,7 +100,7 @@ require ( golang.org/x/net v0.28.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.26.0 // indirect - golang.org/x/text v0.17.0 // indirect + golang.org/x/text v0.18.0 // indirect golang.org/x/time v0.6.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/api v0.196.0 // indirect @@ -273,7 +273,7 @@ require ( go.opentelemetry.io/otel/trace v1.29.0 // indirect go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.26.0 // indirect + golang.org/x/crypto v0.27.0 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/tools v0.22.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240827150818-7e3bb234dfed // indirect @@ -282,9 +282,9 @@ require ( 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.31.0 // indirect - k8s.io/cli-runtime v0.31.0 // indirect - k8s.io/client-go v0.31.0 // indirect + k8s.io/api v0.31.1 // indirect + k8s.io/cli-runtime v0.31.1 // indirect + k8s.io/client-go v0.31.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect diff --git a/go.sum b/go.sum index 1cca37ed..96600b0a 100644 --- a/go.sum +++ b/go.sum @@ -1011,8 +1011,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1241,8 +1241,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1556,8 +1556,8 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -helm.sh/helm/v3 v3.16.1 h1:cER6tI/8PgUAsaJaQCVBUg3VI9KN4oVaZJgY60RIc0c= -helm.sh/helm/v3 v3.16.1/go.mod h1:r+xBHHP20qJeEqtvBXMf7W35QDJnzY/eiEBzt+TfHps= +helm.sh/helm/v3 v3.16.2 h1:Y9v7ry+ubQmi+cb5zw1Llx8OKHU9Hk9NQ/+P+LGBe2o= +helm.sh/helm/v3 v3.16.2/go.mod h1:SyTXgKBjNqi2NPsHCW5dDAsHqvGIu0kdNYNH9gQaw70= 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= @@ -1565,14 +1565,14 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh 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.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo= -k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE= +k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= +k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/cli-runtime v0.31.0 h1:V2Q1gj1u3/WfhD475HBQrIYsoryg/LrhhK4RwpN+DhA= -k8s.io/cli-runtime v0.31.0/go.mod h1:vg3H94wsubuvWfSmStDbekvbla5vFGC+zLWqcf+bGDw= -k8s.io/client-go v0.31.0 h1:QqEJzNjbN2Yv1H79SsS+SWnXkBgVu4Pj3CJQgbx0gI8= -k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU= +k8s.io/cli-runtime v0.31.1 h1:/ZmKhmZ6hNqDM+yf9s3Y4KEYakNXUn5sod2LWGGwCuk= +k8s.io/cli-runtime v0.31.1/go.mod h1:pKv1cDIaq7ehWGuXQ+A//1OIF+7DI+xudXtExMCbe9U= +k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= +k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= From 9471fa29fa980185372c079d17cad34596ef080f Mon Sep 17 00:00:00 2001 From: Zubair Haque Date: Thu, 10 Oct 2024 17:01:58 -0500 Subject: [PATCH 007/177] chore: Update AGE var version (#1731) --- Dockerfile | 2 +- Dockerfile.debian-stable-slim | 2 +- Dockerfile.ubuntu | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6d9170a9..eb586325 100644 --- a/Dockerfile +++ b/Dockerfile @@ -85,7 +85,7 @@ RUN set -x && \ mv "${SOPS_FILENAME}" /usr/local/bin/sops && \ sops --version --disable-version-check | grep -E "^sops ${SOPS_VERSION#v}" -ENV AGE_VERSION="v1.1.1" +ENV AGE_VERSION="v1.2.0" ARG AGE_FILENAME="age-${AGE_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/FiloSottile/age/releases/download/${AGE_VERSION}/${AGE_FILENAME}" && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index 9245f366..e848d9df 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -90,7 +90,7 @@ RUN set -x && \ mv "${SOPS_FILENAME}" /usr/local/bin/sops && \ sops --version --disable-version-check | grep -E "^sops ${SOPS_VERSION#v}" -ENV AGE_VERSION="v1.1.1" +ENV AGE_VERSION="v1.2.0" ARG AGE_FILENAME="age-${AGE_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/FiloSottile/age/releases/download/${AGE_VERSION}/${AGE_FILENAME}" && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 65b57c9a..da921630 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -90,7 +90,7 @@ RUN set -x && \ mv "${SOPS_FILENAME}" /usr/local/bin/sops && \ sops --version --disable-version-check | grep -E "^sops ${SOPS_VERSION#v}" -ENV AGE_VERSION="v1.1.1" +ENV AGE_VERSION="v1.2.0" ARG AGE_FILENAME="age-${AGE_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/FiloSottile/age/releases/download/${AGE_VERSION}/${AGE_FILENAME}" && \ From cd0f603d4f84a62d8fb341bbf8fc197e0c09c08b Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Fri, 11 Oct 2024 21:03:02 +0800 Subject: [PATCH 008/177] feat(helm-version): Update helm version to v3.16.2 (#1733) Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 8 ++++---- Dockerfile | 6 +++--- Dockerfile.debian-stable-slim | 6 +++--- Dockerfile.ubuntu | 6 +++--- pkg/app/init.go | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index eea19953..8807e776 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -71,20 +71,20 @@ jobs: plugin-diff-version: 3.9.11 extra-helmfile-flags: '' v1mode: '' - - helm-version: v3.16.1 + - helm-version: v3.16.2 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' v1mode: '' - - helm-version: v3.16.1 + - helm-version: v3.16.2 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.11 extra-helmfile-flags: '' v1mode: '' # Helmfile v1 - - helm-version: v3.16.1 + - helm-version: v3.16.2 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.11 @@ -92,7 +92,7 @@ jobs: v1mode: 'true' # In case you need to test some optional helmfile features, # enable it via extra-helmfile-flags below. - - helm-version: v3.16.1 + - helm-version: v3.16.2 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.11 diff --git a/Dockerfile b/Dockerfile index eb586325..7ed13dc1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.1" +ARG HELM_VERSION="v3.16.2" ENV HELM_VERSION="${HELM_VERSION}" ARG HELM_LOCATION="https://get.helm.sh" ARG HELM_FILENAME="helm-${HELM_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" @@ -38,8 +38,8 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="e57e826410269d72be3113333dbfaac0d8dfdd1b0cc4e9cb08bdf97722731ca9" ;; \ - "linux/arm64") HELM_SHA256="780b5b86f0db5546769b3e9f0204713bbdd2f6696dfdaac122fbe7f2f31541d2" ;; \ + "linux/amd64") HELM_SHA256="9318379b847e333460d33d291d4c088156299a26cd93d570a7f5d0c36e50b5bb" ;; \ + "linux/arm64") HELM_SHA256="1888301aeb7d08a03b6d9f4d2b73dcd09b89c41577e80e3455c113629fc657a4" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index e848d9df..a8ced00e 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.1" +ARG HELM_VERSION="v3.16.2" ENV HELM_VERSION="${HELM_VERSION}" ARG HELM_LOCATION="https://get.helm.sh" ARG HELM_FILENAME="helm-${HELM_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" @@ -43,8 +43,8 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="e57e826410269d72be3113333dbfaac0d8dfdd1b0cc4e9cb08bdf97722731ca9" ;; \ - "linux/arm64") HELM_SHA256="780b5b86f0db5546769b3e9f0204713bbdd2f6696dfdaac122fbe7f2f31541d2" ;; \ + "linux/amd64") HELM_SHA256="9318379b847e333460d33d291d4c088156299a26cd93d570a7f5d0c36e50b5bb" ;; \ + "linux/arm64") HELM_SHA256="1888301aeb7d08a03b6d9f4d2b73dcd09b89c41577e80e3455c113629fc657a4" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index da921630..1395ba42 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.1" +ARG HELM_VERSION="v3.16.2" ENV HELM_VERSION="${HELM_VERSION}" ARG HELM_LOCATION="https://get.helm.sh" ARG HELM_FILENAME="helm-${HELM_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" @@ -43,8 +43,8 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="e57e826410269d72be3113333dbfaac0d8dfdd1b0cc4e9cb08bdf97722731ca9" ;; \ - "linux/arm64") HELM_SHA256="780b5b86f0db5546769b3e9f0204713bbdd2f6696dfdaac122fbe7f2f31541d2" ;; \ + "linux/amd64") HELM_SHA256="9318379b847e333460d33d291d4c088156299a26cd93d570a7f5d0c36e50b5bb" ;; \ + "linux/arm64") HELM_SHA256="1888301aeb7d08a03b6d9f4d2b73dcd09b89c41577e80e3455c113629fc657a4" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/pkg/app/init.go b/pkg/app/init.go index 1cdfaad2..efbdf030 100644 --- a/pkg/app/init.go +++ b/pkg/app/init.go @@ -18,7 +18,7 @@ import ( const ( HelmRequiredVersion = "v3.15.4" - HelmRecommendedVersion = "v3.16.1" + HelmRecommendedVersion = "v3.16.2" HelmDiffRecommendedVersion = "v3.9.11" HelmSecretsRecommendedVersion = "v4.6.0" HelmGitRecommendedVersion = "v0.15.1" From 4beb2ac042c2527a8e882c56d1b04bd6b0e1fa3a Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Fri, 11 Oct 2024 19:58:38 -0300 Subject: [PATCH 009/177] fix: duration of delete failures are always 0s (#1734) --- pkg/state/state.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/state/state.go b/pkg/state/state.go index a608df65..5cb8de3d 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -2138,17 +2138,23 @@ func (st *HelmState) DeleteReleases(affectedReleases *AffectedReleases, helm hel start := time.Now() if _, err := st.triggerReleaseEvent("preuninstall", nil, &release, "delete"); err != nil { + release.duration = time.Since(start) + affectedReleases.Failed = append(affectedReleases.Failed, &release) return err } if err := helm.DeleteRelease(context, release.Name, flags...); err != nil { + release.duration = time.Since(start) + affectedReleases.Failed = append(affectedReleases.Failed, &release) return err } if _, err := st.triggerReleaseEvent("postuninstall", nil, &release, "delete"); err != nil { + release.duration = time.Since(start) + affectedReleases.Failed = append(affectedReleases.Failed, &release) return err } From b6ab825d3cf68a6fde28c780bf903410d709006d Mon Sep 17 00:00:00 2001 From: Shane Starcher Date: Sat, 12 Oct 2024 06:56:55 -0500 Subject: [PATCH 010/177] [feature] add --skip-refresh to globals (#1736) --- cmd/root.go | 1 + cmd/template.go | 1 + pkg/app/app.go | 20 ++++++++++---------- pkg/app/app_test.go | 10 ++++++++++ pkg/app/config.go | 11 +++++++++++ pkg/app/destroy_test.go | 5 +++++ pkg/app/diff_test.go | 5 +++++ pkg/config/global.go | 7 +++++++ pkg/state/state.go | 6 ++++++ pkg/state/temp_test.go | 12 ++++++------ 10 files changed, 62 insertions(+), 16 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index dd201728..f94cd9be 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -129,6 +129,7 @@ func setGlobalOptionsForRootCmd(fs *pflag.FlagSet, globalOptions *config.GlobalO fs.StringArrayVar(&globalOptions.StateValuesSetString, "state-values-set-string", nil, "set state STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2). Used to override .Values within the helmfile template (not values template).") fs.StringArrayVar(&globalOptions.StateValuesFile, "state-values-file", nil, "specify state values in a YAML file. Used to override .Values within the helmfile template (not values template).") fs.BoolVar(&globalOptions.SkipDeps, "skip-deps", false, `skip running "helm repo update" and "helm dependency build"`) + fs.BoolVar(&globalOptions.SkipRefresh, "skip-refresh", false, `skip running "helm repo update"`) fs.BoolVar(&globalOptions.StripArgsValuesOnExitError, "strip-args-values-on-exit-error", true, `Strip the potential secret values of the helm command args contained in a helmfile error message`) fs.BoolVar(&globalOptions.DisableForceUpdate, "disable-force-update", false, `do not force helm repos to update when executing "helm repo add"`) fs.BoolVarP(&globalOptions.Quiet, "quiet", "q", false, "Silence output. Equivalent to log-level warn") diff --git a/cmd/template.go b/cmd/template.go index dfd27c38..8d85f903 100644 --- a/cmd/template.go +++ b/cmd/template.go @@ -40,6 +40,7 @@ func NewTemplateCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.BoolVar(&templateOptions.Validate, "validate", false, "validate your manifests against the Kubernetes cluster you are currently pointing at. Note that this requires access to a Kubernetes cluster to obtain information necessary for validating, like the template of available API versions") f.BoolVar(&templateOptions.IncludeCRDs, "include-crds", false, "include CRDs in the templated output") f.BoolVar(&templateOptions.SkipTests, "skip-tests", false, "skip tests from templated output") + f.BoolVar(&templateOptions.SkipNeeds, "skip-needs", true, `do not automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when --selector/-l flag is not provided. Defaults to true when --include-needs or --include-transitive-needs is not provided`) f.BoolVar(&templateOptions.IncludeNeeds, "include-needs", false, `automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when --selector/-l flag is not provided`) f.BoolVar(&templateOptions.IncludeTransitiveNeeds, "include-transitive-needs", false, `like --include-needs, but also includes transitive needs (needs of needs). Does nothing when --selector/-l flag is not provided. Overrides exclusions of other selectors and conditions.`) diff --git a/pkg/app/app.go b/pkg/app/app.go index 87b44351..6f60ea66 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -175,7 +175,7 @@ func (a *App) Diff(c DiffConfigProvider) error { includeCRDs := !c.SkipCRDs() prepErr := run.withPreparedCharts("diff", state.ChartPrepareOptions{ - SkipRepos: c.SkipDeps(), + SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipDeps: c.SkipDeps(), IncludeCRDs: &includeCRDs, Validate: c.Validate(), @@ -240,7 +240,7 @@ func (a *App) Template(c TemplateConfigProvider) error { run.helm.SetEnableLiveOutput(false) prepErr := run.withPreparedCharts("template", state.ChartPrepareOptions{ - SkipRepos: c.SkipDeps(), + SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipDeps: c.SkipDeps(), IncludeCRDs: &includeCRDs, SkipCleanup: c.SkipCleanup(), @@ -264,7 +264,7 @@ func (a *App) Template(c TemplateConfigProvider) error { func (a *App) WriteValues(c WriteValuesConfigProvider) error { return a.ForEachState(func(run *Run) (ok bool, errs []error) { prepErr := run.withPreparedCharts("write-values", state.ChartPrepareOptions{ - SkipRepos: c.SkipDeps(), + SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipDeps: c.SkipDeps(), SkipCleanup: c.SkipCleanup(), Concurrency: c.Concurrency(), @@ -315,7 +315,7 @@ func (a *App) Lint(c LintConfigProvider) error { // `helm lint` on helm v2 and v3 does not support remote charts, that we need to set `forceDownload=true` here prepErr := run.withPreparedCharts("lint", state.ChartPrepareOptions{ ForceDownload: true, - SkipRepos: c.SkipDeps(), + SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipDeps: c.SkipDeps(), SkipCleanup: c.SkipCleanup(), Concurrency: c.Concurrency(), @@ -350,7 +350,7 @@ func (a *App) Fetch(c FetchConfigProvider) error { return a.ForEachState(func(run *Run) (ok bool, errs []error) { prepErr := run.withPreparedCharts("pull", state.ChartPrepareOptions{ ForceDownload: true, - SkipRepos: c.SkipDeps(), + SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipDeps: c.SkipDeps(), OutputDir: c.OutputDir(), OutputDirTemplate: c.OutputDirTemplate(), @@ -371,7 +371,7 @@ func (a *App) Sync(c SyncConfigProvider) error { includeCRDs := !c.SkipCRDs() prepErr := run.withPreparedCharts("sync", state.ChartPrepareOptions{ - SkipRepos: c.SkipDeps(), + SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipDeps: c.SkipDeps(), Wait: c.Wait(), WaitForJobs: c.WaitForJobs(), @@ -404,7 +404,7 @@ func (a *App) Apply(c ApplyConfigProvider) error { includeCRDs := !c.SkipCRDs() prepErr := run.withPreparedCharts("apply", state.ChartPrepareOptions{ - SkipRepos: c.SkipDeps(), + SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipDeps: c.SkipDeps(), Wait: c.Wait(), WaitForJobs: c.WaitForJobs(), @@ -466,7 +466,7 @@ func (a *App) Delete(c DeleteConfigProvider) error { return a.ForEachState(func(run *Run) (ok bool, errs []error) { if !c.SkipCharts() { err := run.withPreparedCharts("delete", state.ChartPrepareOptions{ - SkipRepos: c.SkipDeps(), + SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipDeps: c.SkipDeps(), Concurrency: c.Concurrency(), DeleteWait: c.DeleteWait(), @@ -489,7 +489,7 @@ func (a *App) Destroy(c DestroyConfigProvider) error { return a.ForEachState(func(run *Run) (ok bool, errs []error) { if !c.SkipCharts() { err := run.withPreparedCharts("destroy", state.ChartPrepareOptions{ - SkipRepos: c.SkipDeps(), + SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipDeps: c.SkipDeps(), Concurrency: c.Concurrency(), DeleteWait: c.DeleteWait(), @@ -516,7 +516,7 @@ func (a *App) Test(c TestConfigProvider) error { } err := run.withPreparedCharts("test", state.ChartPrepareOptions{ - SkipRepos: c.SkipDeps(), + SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipDeps: c.SkipDeps(), Concurrency: c.Concurrency(), }, func() { diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index 50770c2c..d84c8049 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -2092,6 +2092,7 @@ type configImpl struct { skipCleanup bool skipCRDs bool skipDeps bool + skipRefresh bool skipTests bool skipNeeds bool @@ -2133,6 +2134,10 @@ func (c configImpl) SkipDeps() bool { return c.skipDeps } +func (c configImpl) SkipRefresh() bool { + return c.skipRefresh +} + func (c configImpl) SkipNeeds() bool { return c.skipNeeds } @@ -2206,6 +2211,7 @@ type applyConfig struct { skipCleanup bool skipCRDs bool skipDeps bool + skipRefresh bool skipNeeds bool includeNeeds bool includeTransitiveNeeds bool @@ -2282,6 +2288,10 @@ func (a applyConfig) SkipDeps() bool { return a.skipDeps } +func (a applyConfig) SkipRefresh() bool { + return a.skipRefresh +} + func (a applyConfig) SkipNeeds() bool { return a.skipNeeds } diff --git a/pkg/app/config.go b/pkg/app/config.go index 9d9b377b..ba1b5173 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -10,6 +10,7 @@ type ConfigProvider interface { StripArgsValuesOnExitError() bool DisableForceUpdate() bool SkipDeps() bool + SkipRefresh() bool FileOrDir() string KubeContext() string @@ -58,6 +59,7 @@ type ApplyConfigProvider interface { Set() []string SkipCRDs() bool SkipDeps() bool + SkipRefresh() bool Wait() bool WaitForJobs() bool @@ -106,6 +108,7 @@ type SyncConfigProvider interface { Set() []string SkipCRDs() bool SkipDeps() bool + SkipRefresh() bool Wait() bool WaitForJobs() bool SyncArgs() string @@ -134,6 +137,7 @@ type DiffConfigProvider interface { Validate() bool SkipCRDs() bool SkipDeps() bool + SkipRefresh() bool IncludeTests() bool @@ -165,6 +169,7 @@ type DeleteConfigProvider interface { Purge() bool SkipDeps() bool + SkipRefresh() bool SkipCharts() bool DeleteWait() bool DeleteTimeout() int @@ -179,6 +184,7 @@ type DestroyConfigProvider interface { Cascade() string SkipDeps() bool + SkipRefresh() bool SkipCharts() bool DeleteWait() bool DeleteTimeout() int @@ -192,6 +198,7 @@ type TestConfigProvider interface { Args() string SkipDeps() bool + SkipRefresh() bool Timeout() int Cleanup() bool Logs() bool @@ -205,6 +212,7 @@ type LintConfigProvider interface { Values() []string Set() []string SkipDeps() bool + SkipRefresh() bool SkipCleanup() bool DAGConfig @@ -214,6 +222,7 @@ type LintConfigProvider interface { type FetchConfigProvider interface { SkipDeps() bool + SkipRefresh() bool OutputDir() string OutputDirTemplate() string @@ -230,6 +239,7 @@ type TemplateConfigProvider interface { OutputDirTemplate() string Validate() bool SkipDeps() bool + SkipRefresh() bool SkipCleanup() bool SkipTests() bool OutputDir() string @@ -253,6 +263,7 @@ type WriteValuesConfigProvider interface { Set() []string OutputFileTemplate() string SkipDeps() bool + SkipRefresh() bool SkipCleanup() bool IncludeTransitiveNeeds() bool diff --git a/pkg/app/destroy_test.go b/pkg/app/destroy_test.go index 4f815469..4d578851 100644 --- a/pkg/app/destroy_test.go +++ b/pkg/app/destroy_test.go @@ -38,6 +38,7 @@ type destroyConfig struct { concurrency int interactive bool skipDeps bool + skipRefresh bool logger *zap.SugaredLogger includeTransitiveNeeds bool skipCharts bool @@ -73,6 +74,10 @@ func (d destroyConfig) SkipDeps() bool { return d.skipDeps } +func (d destroyConfig) SkipRefresh() bool { + return d.skipRefresh +} + func (d destroyConfig) IncludeTransitiveNeeds() bool { return d.includeTransitiveNeeds } diff --git a/pkg/app/diff_test.go b/pkg/app/diff_test.go index f33c04a6..08ec45cd 100644 --- a/pkg/app/diff_test.go +++ b/pkg/app/diff_test.go @@ -24,6 +24,7 @@ type diffConfig struct { validate bool skipCRDs bool skipDeps bool + skipRefresh bool includeTests bool skipNeeds bool includeNeeds bool @@ -74,6 +75,10 @@ func (a diffConfig) SkipDeps() bool { return a.skipDeps } +func (a diffConfig) SkipRefresh() bool { + return a.skipRefresh +} + func (a diffConfig) IncludeTests() bool { return a.includeTests } diff --git a/pkg/config/global.go b/pkg/config/global.go index 23066711..d095e618 100644 --- a/pkg/config/global.go +++ b/pkg/config/global.go @@ -32,6 +32,8 @@ type GlobalOptions struct { StateValuesFile []string // SkipDeps is true if the running "helm repo update" and "helm dependency build" should be skipped SkipDeps bool + // SkipRefresh is true if the running "helm repo update" should be skipped + SkipRefresh bool // StripArgsValuesOnExitError is true if the ARGS output on exit error should be suppressed StripArgsValuesOnExitError bool // DisableForceUpdate is true if force updating repos is not desirable when executing "helm repo add" @@ -174,6 +176,11 @@ func (g *GlobalImpl) SkipDeps() bool { return g.GlobalOptions.SkipDeps } +// SkipRefresh return if running "helm repo update" +func (g *GlobalImpl) SkipRefresh() bool { + return g.GlobalOptions.SkipRefresh +} + // StripArgsValuesOnExitError return if the ARGS output on exit error should be suppressed func (g *GlobalImpl) StripArgsValuesOnExitError() bool { return g.GlobalOptions.StripArgsValuesOnExitError diff --git a/pkg/state/state.go b/pkg/state/state.go index 5cb8de3d..e0bab050 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -184,6 +184,8 @@ type HelmSpec struct { // This is relevant only when your release uses a local chart or a directory containing K8s manifests or a Kustomization // as a Helm chart. SkipDeps bool `yaml:"skipDeps"` + // SkipRefresh disables running `helm dependency up` + SkipRefresh bool `yaml:"skipRefresh"` // on helm upgrade/diff, reuse values currently set in the release and merge them with the ones defined within helmfile ReuseValues bool `yaml:"reuseValues"` // Propagate '--post-renderer' to helmv3 template and helm install @@ -374,6 +376,9 @@ type ReleaseSpec struct { // as a Helm chart. SkipDeps *bool `yaml:"skipDeps,omitempty"` + // SkipRefresh disables running `helm dependency up` + SkipRefresh *bool `yaml:"skipRefresh,omitempty"` + // Propagate '--post-renderer' to helmv3 template and helm install PostRenderer *string `yaml:"postRenderer,omitempty"` @@ -1099,6 +1104,7 @@ type ChartPrepareOptions struct { ForceDownload bool SkipRepos bool SkipDeps bool + SkipRefresh bool SkipResolve bool SkipCleanup bool // Validate is a helm-3-only option. When it is set to true, it configures chartify to pass --validate to helm-template run by it. diff --git a/pkg/state/temp_test.go b/pkg/state/temp_test.go index 258033e3..975456ef 100644 --- a/pkg/state/temp_test.go +++ b/pkg/state/temp_test.go @@ -38,39 +38,39 @@ func TestGenerateID(t *testing.T) { run(testcase{ subject: "baseline", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, - want: "foo-values-867bdd68d", + want: "foo-values-d566bffd8", }) run(testcase{ subject: "different bytes content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: []byte(`{"k":"v"}`), - want: "foo-values-55d7dc5f87", + want: "foo-values-65b557f8c5", }) run(testcase{ subject: "different map content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: map[string]any{"k": "v"}, - want: "foo-values-58bdcf44f7", + want: "foo-values-74d5cd8cc7", }) run(testcase{ subject: "different chart", release: ReleaseSpec{Name: "foo", Chart: "stable/envoy"}, - want: "foo-values-67dcddd85", + want: "foo-values-85db6bbb4c", }) run(testcase{ subject: "different name", release: ReleaseSpec{Name: "bar", Chart: "incubator/raw"}, - want: "bar-values-6dd4989f97", + want: "bar-values-85cf974b7", }) run(testcase{ subject: "specific ns", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw", Namespace: "myns"}, - want: "myns-foo-values-755d4487dc", + want: "myns-foo-values-574676fbb9", }) for id, n := range ids { From 71a9adcdd39aa84e550f5f3b1cb5ed7d9342600b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:53:46 +0800 Subject: [PATCH 011/177] build(deps): bump github.com/helmfile/vals from 0.37.5 to 0.37.6 (#1739) Bumps [github.com/helmfile/vals](https://github.com/helmfile/vals) from 0.37.5 to 0.37.6. - [Release notes](https://github.com/helmfile/vals/releases) - [Changelog](https://github.com/helmfile/vals/blob/main/.goreleaser.yml) - [Commits](https://github.com/helmfile/vals/compare/v0.37.5...v0.37.6) --- updated-dependencies: - dependency-name: github.com/helmfile/vals dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 138 ++++++++++++++------------ go.sum | 303 ++++++++++++++++++++++++++++++++------------------------- 2 files changed, 248 insertions(+), 193 deletions(-) diff --git a/go.mod b/go.mod index e93a0e98..d5473cdc 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/hashicorp/go-getter v1.7.6 github.com/hashicorp/hcl/v2 v2.22.0 github.com/helmfile/chartify v0.20.2 - github.com/helmfile/vals v0.37.5 + github.com/helmfile/vals v0.37.6 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 @@ -37,8 +37,8 @@ replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545 require ( cloud.google.com/go v0.115.1 // indirect - cloud.google.com/go/iam v1.2.0 // indirect - cloud.google.com/go/storage v1.43.0 // indirect + cloud.google.com/go/iam v1.2.1 // indirect + cloud.google.com/go/storage v1.44.0 // indirect filippo.io/age v1.2.0 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect @@ -53,7 +53,7 @@ require ( github.com/blang/semver v3.5.1+incompatible // indirect github.com/dimchansky/utfbom v1.1.1 // indirect github.com/fatih/color v1.17.0 // indirect - github.com/fujiwara/tfstate-lookup v1.4.1 // indirect + github.com/fujiwara/tfstate-lookup v1.4.2 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect @@ -67,12 +67,12 @@ require ( github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-slug v0.15.0 // indirect - github.com/hashicorp/go-sockaddr v1.0.6 // indirect + github.com/hashicorp/go-sockaddr v1.0.7 // indirect github.com/hashicorp/go-tfe v1.56.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/jsonapi v1.3.1 // indirect - github.com/hashicorp/vault/api v1.14.0 // indirect + github.com/hashicorp/vault/api v1.15.0 // indirect github.com/huandu/xstrings v1.5.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/itchyny/gojq v0.12.16 // indirect @@ -97,34 +97,36 @@ require ( 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.28.0 // indirect + golang.org/x/net v0.30.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.26.0 // indirect - golang.org/x/text v0.18.0 // indirect - golang.org/x/time v0.6.0 // indirect + golang.org/x/text v0.19.0 // indirect + golang.org/x/time v0.7.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect - google.golang.org/api v0.196.0 // indirect - google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect - google.golang.org/grpc v1.66.0 // indirect - google.golang.org/protobuf v1.34.2 // indirect + google.golang.org/api v0.200.0 // indirect + google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/grpc v1.67.1 // indirect + google.golang.org/protobuf v1.35.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) require ( - cloud.google.com/go/auth v0.9.3 // indirect + cel.dev/expr v0.16.1 // indirect + cloud.google.com/go/auth v0.9.8 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect - cloud.google.com/go/compute/metadata v0.5.0 // indirect - cloud.google.com/go/kms v1.19.0 // indirect - cloud.google.com/go/longrunning v0.6.0 // indirect - cloud.google.com/go/secretmanager v1.14.0 // indirect + cloud.google.com/go/compute/metadata v0.5.2 // indirect + cloud.google.com/go/kms v1.20.0 // indirect + cloud.google.com/go/longrunning v0.6.1 // indirect + cloud.google.com/go/monitoring v1.21.1 // indirect + cloud.google.com/go/secretmanager v1.14.1 // indirect github.com/1Password/connect-sdk-go v1.5.3 // indirect - github.com/1password/onepassword-sdk-go v0.1.1 // indirect + github.com/1password/onepassword-sdk-go v0.1.2 // indirect github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/AlecAivazis/survey/v2 v2.3.6 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.1.0 // indirect @@ -134,63 +136,70 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.1 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect - github.com/ProtonMail/go-crypto v1.1.0-alpha.3-proton // indirect + github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/alessio/shellescape v1.4.1 // indirect - github.com/antchfx/jsonquery v1.3.5 // indirect - github.com/antchfx/xpath v1.3.1 // indirect + github.com/antchfx/jsonquery v1.3.6 // indirect + github.com/antchfx/xpath v1.3.2 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go-v2 v1.30.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/config v1.27.21 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.21 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.12 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.14 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.14 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.12 // indirect - github.com/aws/aws-sdk-go-v2/service/kms v1.34.1 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.56.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.21.1 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.29.1 // indirect - github.com/aws/smithy-go v1.20.2 // indirect + github.com/aws/aws-sdk-go-v2 v1.31.0 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5 // indirect + github.com/aws/aws-sdk-go-v2/config v1.27.39 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.37 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.25 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.63.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.31.3 // indirect + github.com/aws/smithy-go v1.21.0 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect - github.com/cenkalti/backoff/v3 v3.2.2 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect + github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cloudflare/circl v1.3.9 // indirect + github.com/cloudflare/circl v1.4.0 // indirect + github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect github.com/containerd/containerd v1.7.12 // indirect github.com/containerd/log v0.1.0 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect github.com/cyberark/conjur-api-go v0.12.4 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/cli v27.0.1+incompatible // indirect + github.com/docker/cli v27.3.1+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect - github.com/docker/docker v27.1.1+incompatible // indirect + github.com/docker/docker v27.3.1+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/envoyproxy/go-control-plane v0.13.0 // indirect + github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect github.com/extism/go-sdk v1.3.1 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe // indirect - github.com/getsops/sops/v3 v3.9.0 // indirect + github.com/getsops/sops/v3 v3.9.1 // indirect github.com/go-errors/errors v1.4.2 // indirect - github.com/go-jose/go-jose/v4 v4.0.2 // indirect + github.com/go-jose/go-jose/v4 v4.0.4 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/analysis v0.23.0 // indirect @@ -213,14 +222,14 @@ require ( github.com/google/gofuzz v1.2.0 // indirect github.com/google/s2a-go v0.1.8 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.3 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcp-sdk-go v0.111.0 // indirect + github.com/hashicorp/hcp-sdk-go v0.116.0 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/imdario/mergo v0.3.16 // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect @@ -247,6 +256,7 @@ require ( github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect + github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.55.0 // indirect @@ -254,8 +264,8 @@ require ( github.com/rivo/uniseg v0.4.7 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect - github.com/tetratelabs/wazero v1.7.3 // indirect - github.com/tidwall/gjson v1.17.3 // indirect + github.com/tetratelabs/wazero v1.8.1 // indirect + github.com/tidwall/gjson v1.18.0 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect @@ -266,18 +276,22 @@ require ( github.com/xlab/treeprint v1.2.0 // indirect github.com/zalando/go-keyring v0.2.3-0.20230503081219-17db2e5354bd // indirect go.mongodb.org/mongo-driver v1.14.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect - go.opentelemetry.io/otel v1.29.0 // indirect - go.opentelemetry.io/otel/metric v1.29.0 // indirect - go.opentelemetry.io/otel/trace v1.29.0 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.29.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 // indirect + go.opentelemetry.io/otel v1.30.0 // indirect + go.opentelemetry.io/otel/metric v1.30.0 // indirect + go.opentelemetry.io/otel/sdk v1.29.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.29.0 // indirect + go.opentelemetry.io/otel/trace v1.30.0 // indirect go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.27.0 // indirect + golang.org/x/crypto v0.28.0 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240827150818-7e3bb234dfed // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/gookit/color.v1 v1.1.6 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index 96600b0a..7ac5c3e0 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ c2sp.org/CCTV/age v0.0.0-20240306222714-3ec4d716e805 h1:u2qwJeEvnypw+OCPUHmoZE3IqwfuN5kgDfo5MLzpNM0= c2sp.org/CCTV/age v0.0.0-20240306222714-3ec4d716e805/go.mod h1:FomMrUJ2Lxt5jCLmZkG3FHa72zUprnhd3v/Z18Snm4w= +cel.dev/expr v0.16.1 h1:NR0+oFYzR1CqLFhTAqg3ql59G9VfN8fKq1TCHJ6gq1g= +cel.dev/expr v0.16.1/go.mod h1:AsGA5zb3WruAEQeQng1RZdGEXmBj0jvMWh6l5SnNuC8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -48,8 +50,8 @@ cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjby cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= -cloud.google.com/go/auth v0.9.3 h1:VOEUIAADkkLtyfr3BLa3R8Ed/j6w1jTBmARx+wb5w5U= -cloud.google.com/go/auth v0.9.3/go.mod h1:7z6VY+7h3KUdRov5F1i8NDP5ZzWKYmEPO842BgCsmTk= +cloud.google.com/go/auth v0.9.8 h1:+CSJ0Gw9iVeSENVCKJoLHhdUykDgXSc4Qn+gu2BRtR8= +cloud.google.com/go/auth v0.9.8/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= @@ -74,8 +76,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= -cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= +cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= +cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= @@ -113,22 +115,26 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97 cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v1.2.0 h1:kZKMKVNk/IsSSc/udOb83K0hL/Yh/Gcqpz+oAkoIFN8= -cloud.google.com/go/iam v1.2.0/go.mod h1:zITGuWgsLZxd8OwAlX+eMFgZDXzBm7icj1PVTYG766Q= -cloud.google.com/go/kms v1.19.0 h1:x0OVJDl6UH1BSX4THKlMfdcFWoE4ruh90ZHuilZekrU= -cloud.google.com/go/kms v1.19.0/go.mod h1:e4imokuPJUc17Trz2s6lEXFDt8bgDmvpVynH39bdrHM= +cloud.google.com/go/iam v1.2.1 h1:QFct02HRb7H12J/3utj0qf5tobFh9V4vR6h9eX5EBRU= +cloud.google.com/go/iam v1.2.1/go.mod h1:3VUIJDPpwT6p/amXRC5GY8fCCh70lxPygguVtI0Z4/g= +cloud.google.com/go/kms v1.20.0 h1:uKUvjGqbBlI96xGE669hcVnEMw1Px/Mvfa62dhM5UrY= +cloud.google.com/go/kms v1.20.0/go.mod h1:/dMbFF1tLLFnQV44AoI2GlotbjowyUfgVwezxW291fM= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= -cloud.google.com/go/longrunning v0.6.0 h1:mM1ZmaNsQsnb+5n1DNPeL0KwQd9jQRqSqSDEkBZr+aI= -cloud.google.com/go/longrunning v0.6.0/go.mod h1:uHzSZqW89h7/pasCWNYdUpwGz3PcVWhrWupreVPYLts= +cloud.google.com/go/logging v1.11.0 h1:v3ktVzXMV7CwHq1MBF65wcqLMA7i+z3YxbUsoK7mOKs= +cloud.google.com/go/logging v1.11.0/go.mod h1:5LDiJC/RxTt+fHc1LAt20R9TKiUTReDg6RuuFOZ67+A= +cloud.google.com/go/longrunning v0.6.1 h1:lOLTFxYpr8hcRtcwWir5ITh1PAKUD/sG2lKrTSYjyMc= +cloud.google.com/go/longrunning v0.6.1/go.mod h1:nHISoOZpBcmlwbJmiVk5oDRz0qG/ZxPynEGs1iZ79s0= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/monitoring v1.21.1 h1:zWtbIoBMnU5LP9A/fz8LmWMGHpk4skdfeiaa66QdFGc= +cloud.google.com/go/monitoring v1.21.1/go.mod h1:Rj++LKrlht9uBi8+Eb530dIrzG/cU/lB8mt+lbeFK1c= cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= @@ -162,8 +168,8 @@ cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92 cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= -cloud.google.com/go/secretmanager v1.14.0 h1:P2RRu2NEsQyOjplhUPvWKqzDXUKzwejHLuSUBHI8c4w= -cloud.google.com/go/secretmanager v1.14.0/go.mod h1:q0hSFHzoW7eRgyYFH8trqEFavgrMeiJI4FETNN78vhM= +cloud.google.com/go/secretmanager v1.14.1 h1:xlWSIg8rtBn5qCr2f3XtQP19+5COyf/ll49SEvi/0vM= +cloud.google.com/go/secretmanager v1.14.1/go.mod h1:L+gO+u2JA9CCyXpSR8gDH0o8EV7i/f0jdBOrUXcIV0U= cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= @@ -181,10 +187,12 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.43.0 h1:CcxnSohZwizt4LCzQHWvBf1/kvtHUn7gk9QERXPyXFs= -cloud.google.com/go/storage v1.43.0/go.mod h1:ajvxEa7WmZS1PxvKRq4bq0tFT3vMd502JwstCcYv0Q0= +cloud.google.com/go/storage v1.44.0 h1:abBzXf4UJKMmQ04xxJf9dYM/fNl24KHoTuBjyJDX2AI= +cloud.google.com/go/storage v1.44.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= +cloud.google.com/go/trace v1.11.1 h1:UNqdP+HYYtnm6lb91aNA5JQ0X14GnxkABGlfz2PzPew= +cloud.google.com/go/trace v1.11.1/go.mod h1:IQKNQuBzH72EGaXEodKlNJrWykGZxet2zgjtS60OtjA= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= @@ -201,16 +209,18 @@ filippo.io/age v1.2.0 h1:vRDp7pUMaAJzXNIWJVAZnEf/Dyi4Vu4wI8S1LBzufhE= filippo.io/age v1.2.0/go.mod h1:JL9ew2lTN+Pyft4RiNGguFfOpewKwSHm5ayKD/A4004= github.com/1Password/connect-sdk-go v1.5.3 h1:KyjJ+kCKj6BwB2Y8tPM1Ixg5uIS6HsB0uWA8U38p/Uk= github.com/1Password/connect-sdk-go v1.5.3/go.mod h1:5rSymY4oIYtS4G3t0oMkGAXBeoYiukV3vkqlnEjIDJs= -github.com/1password/onepassword-sdk-go v0.1.1 h1:smvVI7OTTqFf6M7jOU7s+VbYbYHrStnT/GYZ9+hDy4o= -github.com/1password/onepassword-sdk-go v0.1.1/go.mod h1:7wEQynLBXBC4svNx3X82QmCy0Adhm4e+UkM9t9mSSWA= +github.com/1password/onepassword-sdk-go v0.1.2 h1:O5xoxaAvzRI4gXdGXmyFYoBlmsiv3l8qJEROmNeDIKo= +github.com/1password/onepassword-sdk-go v0.1.2/go.mod h1:nZEOzWFvodClltx8G0xtcNGqzNrrcfW589Rb9T82hE8= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AlecAivazis/survey/v2 v2.3.6 h1:NvTuVHISgTHEHeBFqt6BHOe4Ny/NwGZr7w+F8S9ziyw= github.com/AlecAivazis/survey/v2 v2.3.6/go.mod h1:4AuI9b7RjAR+G7v9+C4YSlX/YL3K3cWNXgWXOhllqvI= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0 h1:nyQWyZvwGTvunIMxi1Y9uXkcyr+I7TeNrr/foo4Kpk8= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 h1:B/dfvscEQtew9dVuoxqxrUKKv8Ih2f55PydknDamU+g= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0/go.mod h1:fiPSssYvltE08HJchL04dOy+RD4hgrjph0cwGGMntdI= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0 h1:+m0M/LFxN43KvULkDNfdXOgrjtg6UYJPFBJyuEcRCAw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0/go.mod h1:PwOyop78lveYMRs6oCxjiVyBdyCgIYH6XHIVZO9/SFQ= github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal v1.1.2 h1:mLY+pNLjCUeKhgnAJWAKhEUQM+RJQo2H1fuGSw1Ky1E= @@ -245,6 +255,8 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= +github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= @@ -252,6 +264,14 @@ github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbi github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4 h1:s7/zwMi5w+KnlumDVbX1+P6mNAk5o7Wvx0VmvrQ7Bm0= github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4/go.mod h1:ipnA9Lpn5YM+FDSQZ7VWNjcuVurchInoGKm+v7O0sGs= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.1 h1:pB2F2JKCj1Znmp2rwxxt1J0Fg0wezTMgWYk5Mpbi1kg= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.1/go.mod h1:itPGVDKf9cC/ov4MdvJ2QZ0khw4bfoo9jzwTJlaxy2k= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 h1:UQ0AhxogsIRZDkElkblfnwjc3IaltCm2HUMvezQaL7s= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1/go.mod h1:jyqM3eLpJ3IbIFDTKVz2rF9T/xWGW0rIriGwnz8l9Tk= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.48.1 h1:oTX4vsorBZo/Zdum6OKPA4o7544hm6smoRv1QjpTwGo= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.48.1/go.mod h1:0wEl7vrAD8mehJyohS9HZy+WyEOaQO2mJx86Cvh93kM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 h1:8nn+rsCvTq9axyEh382S0PFLBeaFwNsT43IrPWzctRU= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1/go.mod h1:viRWSEhtMZqz1rhwmOVKkWl6SwmVowfL9O2YR5gI2PE= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= @@ -269,8 +289,8 @@ github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDe github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ProtonMail/go-crypto v1.1.0-alpha.3-proton h1:0RXAi0EJFs81j+MMsqvHNuAUGWzeVfCO9LnHAfoQ8NA= -github.com/ProtonMail/go-crypto v1.1.0-alpha.3-proton/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton h1:ZGewsAoeSirbUS5cO8L0FMQA+iSop9xR1nmFYifDBPo= +github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= github.com/a8m/envsubst v1.4.2 h1:4yWIHXOLEJHQEFd4UjrWDrYeYlV7ncFWJOCBRLOZHQg= @@ -281,10 +301,10 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy 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/antchfx/jsonquery v1.3.5 h1:243OSaQh02EfmASa3w3weKC9UaiD8RRzJhgfvq3q408= -github.com/antchfx/jsonquery v1.3.5/go.mod h1:qH23yX2Jsj1/k378Yu/EOgPCNgJ35P9tiGOeQdt/GWc= -github.com/antchfx/xpath v1.3.1 h1:PNbFuUqHwWl0xRjvUPjJ95Agbmdj2uzzIwmQKgu4oCk= -github.com/antchfx/xpath v1.3.1/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= +github.com/antchfx/jsonquery v1.3.6 h1:TaSfeAh7n6T11I74bsZ1FswreIfrbJ0X+OyLflx6mx4= +github.com/antchfx/jsonquery v1.3.6/go.mod h1:fGzSGJn9Y826Qd3pC8Wx45avuUwpkePsACQJYy+58BU= +github.com/antchfx/xpath v1.3.2 h1:LNjzlsSjinu3bQpw9hWMY9ocB80oLOWuQqFvO6xt51U= +github.com/antchfx/xpath v1.3.2/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= @@ -297,46 +317,46 @@ github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= -github.com/aws/aws-sdk-go-v2 v1.30.0 h1:6qAwtzlfcTtcL8NHtbDQAqgM5s6NDipQTkPxyH/6kAA= -github.com/aws/aws-sdk-go-v2 v1.30.0/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.27.21 h1:yPX3pjGCe2hJsetlmGNB4Mngu7UPmvWPzzWCv1+boeM= -github.com/aws/aws-sdk-go-v2/config v1.27.21/go.mod h1:4XtlEU6DzNai8RMbjSF5MgGZtYvrhBP/aKZcRtZAVdM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.21 h1:pjAqgzfgFhTv5grc7xPHtXCAaMapzmwA7aU+c/SZQGw= -github.com/aws/aws-sdk-go-v2/credentials v1.17.21/go.mod h1:nhK6PtBlfHTUDVmBLr1dg+WHCOCK+1Fu/WQyVHPsgNQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8 h1:FR+oWPFb/8qMVYMWN98bUZAGqPvLHiyqg1wqQGfUAXY= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8/go.mod h1:EgSKcHiuuakEIxJcKGzVNWh5srVAQ3jKaSrBGRYvM48= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.1 h1:D9VqWMuw7lJAX6d5eINfRQ/PkvtcJAK3Qmd6f6xEeUw= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.1/go.mod h1:ckvBx7codI4wzc5inOfDp5ZbK7TjMFa7eXwmLvXQrRk= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12 h1:SJ04WXGTwnHlWIODtC5kJzKbeuHt+OUNOgKg7nfnUGw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12/go.mod h1:FkpvXhA92gb3GE9LD6Og0pHHycTxW7xGpnEh5E7Opwo= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12 h1:hb5KgeYfObi5MHkSSZMEudnIvX30iB+E21evI4r6BnQ= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12/go.mod h1:CroKe/eWJdyfy9Vx4rljP5wTUjNJfb+fPz1uMYUhEGM= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.12 h1:DXFWyt7ymx/l1ygdyTTS0X923e+Q2wXIxConJzrgwc0= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.12/go.mod h1:mVOr/LbvaNySK1/BTy4cBOCjhCNY2raWBwK4v+WR5J4= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.14 h1:oWccitSnByVU74rQRHac4gLfDqjB6Z1YQGOY/dXKedI= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.14/go.mod h1:8SaZBlQdCLrc/2U3CEO48rYj9uR8qRsPRkmzwNM52pM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.14 h1:zSDPny/pVnkqABXYRicYuPf9z2bTqfH13HT3v6UheIk= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.14/go.mod h1:3TTcI5JSzda1nw/pkVC9dhgLre0SNBFj2lYS4GctXKI= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.12 h1:tzha+v1SCEBpXWEuw6B/+jm4h5z8hZbTpXz0zRZqTnw= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.12/go.mod h1:n+nt2qjHGoseWeLHt1vEr6ZRCCxIN2KcNpJxBcYQSwI= -github.com/aws/aws-sdk-go-v2/service/kms v1.34.1 h1:VsKBn6WADI3Nn3WjBMzeRww9WHXeVLi7zyuSrqjRCBQ= -github.com/aws/aws-sdk-go-v2/service/kms v1.34.1/go.mod h1:5F6kXrPBxv0l1t8EO44GuG4W82jGJwaRE0B+suEGnNY= -github.com/aws/aws-sdk-go-v2/service/s3 v1.56.1 h1:wsg9Z/vNnCmxWikfGIoOlnExtEU459cR+2d+iDJ8elo= -github.com/aws/aws-sdk-go-v2/service/s3 v1.56.1/go.mod h1:8rDw3mVwmvIWWX/+LWY3PPIMZuwnQdJMCt0iVFVT3qw= -github.com/aws/aws-sdk-go-v2/service/sso v1.21.1 h1:sd0BsnAvLH8gsp2e3cbaIr+9D7T1xugueQ7V/zUAsS4= -github.com/aws/aws-sdk-go-v2/service/sso v1.21.1/go.mod h1:lcQG/MmxydijbeTOp04hIuJwXGWPZGI3bwdFDGRTv14= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1 h1:1uEFNNskK/I1KoZ9Q8wJxMz5V9jyBlsiaNrM7vA3YUQ= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1/go.mod h1:z0P8K+cBIsFXUr5rzo/psUeJ20XjPN0+Nn8067Nd+E4= -github.com/aws/aws-sdk-go-v2/service/sts v1.29.1 h1:myX5CxqXE0QMZNja6FA1/FSE3Vu1rVmeUmpJMMzeZg0= -github.com/aws/aws-sdk-go-v2/service/sts v1.29.1/go.mod h1:N2mQiucsO0VwK9CYuS4/c2n6Smeh1v47Rz3dWCPFLdE= -github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= -github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= +github.com/aws/aws-sdk-go-v2 v1.31.0 h1:3V05LbxTSItI5kUqNwhJrrrY1BAXxXt0sN0l72QmG5U= +github.com/aws/aws-sdk-go-v2 v1.31.0/go.mod h1:ztolYtaEUtdpf9Wftr31CJfLVjOnD/CVRkKOOYgF8hA= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5 h1:xDAuZTn4IMm8o1LnBZvmrL8JA1io4o3YWNXgohbf20g= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5/go.mod h1:wYSv6iDS621sEFLfKvpPE2ugjTuGlAG7iROg0hLOkfc= +github.com/aws/aws-sdk-go-v2/config v1.27.39 h1:FCylu78eTGzW1ynHcongXK9YHtoXD5AiiUqq3YfJYjU= +github.com/aws/aws-sdk-go-v2/config v1.27.39/go.mod h1:wczj2hbyskP4LjMKBEZwPRO1shXY+GsQleab+ZXT2ik= +github.com/aws/aws-sdk-go-v2/credentials v1.17.37 h1:G2aOH01yW8X373JK419THj5QVqu9vKEwxSEsGxihoW0= +github.com/aws/aws-sdk-go-v2/credentials v1.17.37/go.mod h1:0ecCjlb7htYCptRD45lXJ6aJDQac6D2NlKGpZqyTG6A= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 h1:C/d03NAmh8C4BZXhuRNboF/DqhBkBCeDiJDcaqIT5pA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14/go.mod h1:7I0Ju7p9mCIdlrfS+JCgqcYD0VXz/N4yozsox+0o078= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.25 h1:HkpHeZMM39sGtMHVYG1buAg93vhj5d7F81y6G0OAbGc= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.25/go.mod h1:j3Vz04ZjaWA6kygOsZRpmWe4CyGqfqq2u3unDTU0QGA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 h1:kYQ3H1u0ANr9KEKlGs/jTLrBFPo8P8NaH/w7A01NeeM= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18/go.mod h1:r506HmK5JDUh9+Mw4CfGJGSSoqIiLCndAuqXuhbv67Y= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 h1:Z7IdFUONvTcvS7YuhtVxN99v2cCoHRXOS4mTr0B/pUc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18/go.mod h1:DkKMmksZVVyat+Y+r1dEOgJEfUeA7UngIHWeKsi0yNc= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18 h1:OWYvKL53l1rbsUmW7bQyJVsYU/Ii3bbAAQIIFNbM0Tk= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18/go.mod h1:CUx0G1v3wG6l01tUB+j7Y8kclA8NSqK4ef0YG79a4cg= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 h1:QFASJGfT8wMXtuP3D5CRmMjARHv9ZmzFUMJznHDOY3w= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5/go.mod h1:QdZ3OmoIjSX+8D1OPAzPxDfjXASbBMDsz9qvtyIhtik= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20 h1:rTWjG6AvWekO2B1LHeM3ktU7MqyX9rzWQ7hgzneZW7E= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20/go.mod h1:RGW2DDpVc8hu6Y6yG8G5CHVmVOAn1oV8rNKOHRJyswg= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 h1:Xbwbmk44URTiHNx6PNo0ujDE6ERlsCKJD3u1zfnzAPg= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20/go.mod h1:oAfOFzUB14ltPZj1rWwRc3d/6OgD76R8KlvU3EqM9Fg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18 h1:eb+tFOIl9ZsUe2259/BKPeniKuz4/02zZFH/i4Nf8Rg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18/go.mod h1:GVCC2IJNJTmdlyEsSmofEy7EfJncP7DNnXDzRjJ5Keg= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.3 h1:iHi6lC6LfW6SNvB2bixmlOW3WMyWFrHZCWX+P+CCxMk= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.3/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= +github.com/aws/aws-sdk-go-v2/service/s3 v1.63.3 h1:3zt8qqznMuAZWDTDpcwv9Xr11M/lVj2FsRR7oYBt0OA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.63.3/go.mod h1:NLTqRLe3pUNu3nTEHI6XlHLKYmc8fbHUdMxAB6+s41Q= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.3 h1:rs4JCczF805+FDv2tRhZ1NU0RB2H6ryAvsWPanAr72Y= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.3/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3 h1:S7EPdMVZod8BGKQQPTBK+FcX9g7bKR7c4+HxWqHP7Vg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.3 h1:VzudTFrDCIDakXtemR7l6Qzt2+JYsVqo2MxBPt5k8T8= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.3/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= +github.com/aws/smithy-go v1.21.0 h1:H7L8dtDRk0P1Qm6y0ji7MCYMQObJ5R9CRpyPhRUkLYA= +github.com/aws/smithy-go v1.21.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -357,11 +377,11 @@ github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembj github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/cenkalti/backoff/v3 v3.2.2 h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M= -github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= @@ -371,8 +391,8 @@ github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWR 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.9 h1:QFrlgFYf2Qpi8bSpVPK1HBvWpx16v/1TZivyo7pGuBE= -github.com/cloudflare/circl v1.3.9/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU= +github.com/cloudflare/circl v1.4.0 h1:BV7h5MgrktNzytKmWjpOtdYrf0lkkbF8YMlBGPhJQrY= +github.com/cloudflare/circl v1.4.0/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU= 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= @@ -382,6 +402,8 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 h1:uVG5v+c6ndz9seCorYjQmlVlPbh3OMcMWJzAJZWdM/g= github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= @@ -392,8 +414,9 @@ github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7b github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= +github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= 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= @@ -405,18 +428,20 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2 h1:aBfCb7iqHmDEIp6fBvC/hQUddQfg+3qdYjwzaiP9Hnc= github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2/go.mod h1:WHNsWjnIn2V1LYOrME7e8KxSeKunYHsxEm4am0BUtcI= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/cli v27.0.1+incompatible h1:d/OrlblkOTkhJ1IaAGD1bLgUBtFQC/oP0VjkFMIN+B0= -github.com/docker/cli v27.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v27.3.1+incompatible h1:qEGdFBF3Xu6SCvCYhc7CzaQTlBmqDuzxPDpigSyeKQQ= +github.com/docker/cli v27.3.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v27.1.1+incompatible h1:hO/M4MtV36kzKldqnA37IWhebRA+LnqqcqDja6kVaKY= -github.com/docker/docker v27.1.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI= +github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= @@ -442,7 +467,11 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= 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/go-control-plane v0.13.0 h1:HzkeUz1Knt+3bK+8LG1bxOO/jzWZmdxpwC51i202les= +github.com/envoyproxy/go-control-plane v0.13.0/go.mod h1:GRaKG3dwvFoTg4nj7aXdZnvMg4d7nvT/wl9WgVXn3Q8= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= +github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= github.com/extism/go-sdk v1.3.1 h1:eVpuv36b67Km/tAb7Cq6msHEW8kkdFgpZO/7fCwjuoE= github.com/extism/go-sdk v1.3.1/go.mod h1:tPMWfCSOThie3LSTSZKbrQjRm2oAXxUUjSE4HJWjYQM= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -454,22 +483,22 @@ github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7Dlme github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fujiwara/tfstate-lookup v1.4.1 h1:uQxR3DA5P7p9JENCAdtTTAguDMX2A3LFy3z0gtu76sU= -github.com/fujiwara/tfstate-lookup v1.4.1/go.mod h1:C/n3SgmKG5Q3R/CuoOJLkSwtUDp6pUIVwShLPSFcZCw= +github.com/fujiwara/tfstate-lookup v1.4.2 h1:Mmsf+li1h+bfeqgKwFw4lz74g89ooMlDp99cOb3aZ4c= +github.com/fujiwara/tfstate-lookup v1.4.2/go.mod h1:C/n3SgmKG5Q3R/CuoOJLkSwtUDp6pUIVwShLPSFcZCw= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe h1:QKe/kmAYbndxwu91TcjHERsnMh5SgOB1x/qicvOdUJ8= github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe/go.mod h1:awFzISqLJoZLm+i9QQ4SgMNHDqljH6jWV0B36V5MrUM= -github.com/getsops/sops/v3 v3.9.0 h1:J1UGOAPz4wSRE1dRtkwcQNyvG/jcjcRYJy1wbgKbqeE= -github.com/getsops/sops/v3 v3.9.0/go.mod h1:lYvaahx9fme8XdBLFHLAZzsMuApg8pIJn8ApyInTdqk= +github.com/getsops/sops/v3 v3.9.1 h1:wXsqzEsUPVQPcxsvjpwpqqD3DVRe9UZKJ7LSf5rzuLA= +github.com/getsops/sops/v3 v3.9.1/go.mod h1:k3XzAfcvMI1Rfyw2tky0/RakHrdbVcUrtCGTYsmkMY8= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-jose/go-jose/v4 v4.0.2 h1:R3l3kkBds16bO7ZFAEEcofK0MkrAJt3jlJznWZG0nvk= -github.com/go-jose/go-jose/v4 v4.0.2/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= +github.com/go-jose/go-jose/v4 v4.0.4 h1:VsjPI33J0SB9vQM6PLmNjoHqMQNGPiZ0rHL7Ni7Q6/E= +github.com/go-jose/go-jose/v4 v4.0.4/go.mod h1:NKb5HO1EZccyMpiZNbdUw/14tiXNyUJh188dfnMCAfc= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= @@ -509,8 +538,8 @@ github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1v github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U= github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= -github.com/go-viper/mapstructure/v2 v2.0.0 h1:dhn8MZ1gZ0mzeodTG3jt5Vj/o87xZKuNAprG2mQfMfc= -github.com/go-viper/mapstructure/v2 v2.0.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= +github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-yaml v1.12.0 h1:/1WHjnMsI1dlIBQutrvSMGZRQufVO3asrHfTwfACoPM= @@ -629,8 +658,8 @@ github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= -github.com/googleapis/enterprise-certificate-proxy v0.3.3 h1:QRje2j5GZimBzlbhGA2V2QlGNgL8G6e+wGo/+/2bWI0= -github.com/googleapis/enterprise-certificate-proxy v0.3.3/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= +github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -677,8 +706,8 @@ github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9 github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= github.com/hashicorp/go-slug v0.15.0 h1:AhMnE6JIyW0KoDJlmRDwv4xd52a5ZK3VdioQ7SMmZhI= github.com/hashicorp/go-slug v0.15.0/go.mod h1:THWVTAXwJEinbsp4/bBRcmbaO5EYNLTqxbG4tZ3gCYQ= -github.com/hashicorp/go-sockaddr v1.0.6 h1:RSG8rKU28VTUTvEKghe5gIhIQpv8evvNpnDEyqO4u9I= -github.com/hashicorp/go-sockaddr v1.0.6/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI= +github.com/hashicorp/go-sockaddr v1.0.7 h1:G+pTkSO01HpR5qCxg7lxfsFEZaG+C0VssTy/9dbT+Fw= +github.com/hashicorp/go-sockaddr v1.0.7/go.mod h1:FZQbEYa1pxkQ7WLpyXJ6cbjpT8q0YgQaK/JakXqGyWw= github.com/hashicorp/go-tfe v1.56.0 h1:AjBTo7TmWoz42l4KhH65Q3NvjRD5yD3XZrG1tzFySeI= github.com/hashicorp/go-tfe v1.56.0/go.mod h1:XnTtBj3tVQ4uFkcFsv8Grn+O1CVcIcceL1uc2AgUcaU= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= @@ -693,16 +722,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.22.0 h1:hkZ3nCtqeJsDhPRFz5EA9iwcG1hNWGePOTw6oyul12M= github.com/hashicorp/hcl/v2 v2.22.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= -github.com/hashicorp/hcp-sdk-go v0.111.0 h1:tPQs4N3HdwF8NF3gwZQ8b00CJDeuEzmrQh/OsJlhSSs= -github.com/hashicorp/hcp-sdk-go v0.111.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= +github.com/hashicorp/hcp-sdk-go v0.116.0 h1:WhmEzOxoswQsX0s8Hk84RE1avu+rwV2e51R8uOb9ZhY= +github.com/hashicorp/hcp-sdk-go v0.116.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1DdPo= github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= -github.com/hashicorp/vault/api v1.14.0 h1:Ah3CFLixD5jmjusOgm8grfN9M0d+Y8fVR2SW0K6pJLU= -github.com/hashicorp/vault/api v1.14.0/go.mod h1:pV9YLxBGSz+cItFDd8Ii4G17waWOQ32zVjMWHe/cOqk= +github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= +github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= github.com/helmfile/chartify v0.20.2 h1:aWitnxXahmkaL69L1k2BMW0fFYresIKv9wa4YMhLRA0= github.com/helmfile/chartify v0.20.2/go.mod h1:qiuwenVmBC1fB3WvlxSUegjo14FT6g387xKVfQWiBbo= -github.com/helmfile/vals v0.37.5 h1:FVcIyhbqxzYN/of0fQfHG6YeuJlVshDdSh176zucdr0= -github.com/helmfile/vals v0.37.5/go.mod h1:YOkonFpvpo2mRzAI5jHJ5ogej0L6bTMiS/NhhLv2duo= +github.com/helmfile/vals v0.37.6 h1:S9fdArLc7xB+kcj2cePs0sp7Gy0Hptiq5U7HfE/LDqo= +github.com/helmfile/vals v0.37.6/go.mod h1:UOqRleHPvtH3WuUm//38DDxeD9dXHF8PGc/UfTKWXus= 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= @@ -734,6 +763,8 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= +github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6 h1:IsMZxCuZqKuao2vNdfD82fjjgPLfyHLpR41Z88viRWs= +github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6/go.mod h1:3VeWNIJaW+O5xpRQbPp0Ybqu1vJd/pm7s2F473HRrkw= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= @@ -825,12 +856,12 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/opencontainers/runc v1.1.13 h1:98S2srgG9vw0zWcDpFMn5TRrh8kLxa/5OFUstuUhmRs= -github.com/opencontainers/runc v1.1.13/go.mod h1:R016aXacfp/gwQBYw2FDGa9m+n6atbLWrYY8hNMT/sA= +github.com/opencontainers/runc v1.1.14 h1:rgSuzbmgz5DUJjeSnw337TxDbRuqjs6iqQck/2weR6w= +github.com/opencontainers/runc v1.1.14/go.mod h1:E4C2z+7BxR7GHXp0hAY53mek+x49X1LjPNeMTfRGvOA= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/ory/dockertest/v3 v3.10.0 h1:4K3z2VMe8Woe++invjaTB7VRyQXQy5UY+loujO4aNE4= -github.com/ory/dockertest/v3 v3.10.0/go.mod h1:nr57ZbRWMqfsdGdFNLHz5jjNdDb7VVFnzAeW1n5N1Lg= +github.com/ory/dockertest/v3 v3.11.0 h1:OiHcxKAvSDUwsEVh2BjxQQc/5EHz9n0va9awCtNGuyA= +github.com/ory/dockertest/v3 v3.11.0/go.mod h1:VIPxS1gwT9NpPOrfD3rACs8Y9Z7yhzO4SB194iUDnUI= github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks= @@ -844,6 +875,8 @@ github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjL github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -866,6 +899,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= +github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= @@ -916,10 +951,10 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 h1:BhIUXV2ySTLrKgh/Hnts+QTQlIbWtomXt3LMdzME0A0= github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939/go.mod h1:omGxs4/6hNjxPKUTjmaNkPzehSnNJOJN6pMEbrlYIT4= -github.com/tetratelabs/wazero v1.7.3 h1:PBH5KVahrt3S2AHgEjKu4u+LlDbbk+nsGE3KLucy6Rw= -github.com/tetratelabs/wazero v1.7.3/go.mod h1:ytl6Zuh20R/eROuyDaGPkp82O9C/DJfXAwJfQ3X6/7Y= -github.com/tidwall/gjson v1.17.3 h1:bwWLZU7icoKRG+C+0PNwIKC6FCJO/Q3p2pZvuP0jN94= -github.com/tidwall/gjson v1.17.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tetratelabs/wazero v1.8.1 h1:NrcgVbWfkWvVc4UtT4LRLDf91PsOzDzefMdwhLfA550= +github.com/tetratelabs/wazero v1.8.1/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs= +github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= +github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= @@ -977,18 +1012,22 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= -go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= -go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= -go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= -go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= -go.opentelemetry.io/otel/sdk v1.28.0 h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE= -go.opentelemetry.io/otel/sdk v1.28.0/go.mod h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg= -go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= -go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= +go.opentelemetry.io/contrib/detectors/gcp v1.29.0 h1:TiaiXB4DpGD3sdzNlYQxruQngn5Apwzi1X0DRhuGvDQ= +go.opentelemetry.io/contrib/detectors/gcp v1.29.0/go.mod h1:GW2aWZNwR2ZxDLdv8OyC2G8zkRoQBuURgV7RPQgcPoU= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0 h1:hCq2hNMwsegUvPzI7sPOvtO9cqyy5GbWt/Ybp2xrx8Q= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0/go.mod h1:LqaApwGx/oUmzsbqxkzuBvyoPpkxk3JQWnqfVrJ3wCA= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 h1:ZIg3ZT/aQ7AfKqdwp7ECpOK6vHqquXXuyTjIO8ZdmPs= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0/go.mod h1:DQAwmETtZV00skUwgD6+0U89g80NKsJE3DCKeLLPQMI= +go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= +go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= +go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= +go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ= +go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= +go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= +go.opentelemetry.io/otel/sdk/metric v1.29.0 h1:K2CfmJohnRgvZ9UAj2/FhIf/okdWcNdBwe1m8xFXiSY= +go.opentelemetry.io/otel/sdk/metric v1.29.0/go.mod h1:6zZLdCl2fkauYoZIOn/soQIDSWFmNSRcICarHfuhNJQ= +go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc= +go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= @@ -1011,8 +1050,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1102,8 +1141,8 @@ golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= 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= @@ -1241,13 +1280,13 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= +golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -1362,8 +1401,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.196.0 h1:k/RafYqebaIJBO3+SMnfEGtFVlvp5vSgqTUF54UN/zg= -google.golang.org/api v0.196.0/go.mod h1:g9IL21uGkYgvQ5BZg6BAtoGJQIm8r6EgaAbpNey5wBE= +google.golang.org/api v0.200.0 h1:0ytfNWn101is6e9VBoct2wrGDjOi5vn7jw5KtaQgDrU= +google.golang.org/api v0.200.0/go.mod h1:Tc5u9kcbjO7A8SwGlYj4IiVifJU01UqXtEgDMYmBmV8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1472,12 +1511,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= -google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= -google.golang.org/genproto/googleapis/api v0.0.0-20240827150818-7e3bb234dfed h1:3RgNmBoI9MZhsj3QxC+AP/qQhNwpCLOvYDYYsFrhFt0= -google.golang.org/genproto/googleapis/api v0.0.0-20240827150818-7e3bb234dfed/go.mod h1:OCdP9MfskevB/rbYvHTsXTtKC+3bHWajPdoKgjcYkfo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9 h1:nFS3IivktIU5Mk6KQa+v6RKkHUpdQpphqGNLxqNnbEk= +google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:tEzYTYZxbmVNOu0OAFH9HzdJtLn6h4Aj89zzlBCdHms= +google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f h1:jTm13A2itBi3La6yTGqn8bVSrc3ZZ1r8ENHlIXBfnRA= +google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f/go.mod h1:CLGoBuH1VHxAUXVPP8FfPwPEVJB6lz3URE5mY2SuayE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1513,9 +1552,11 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c= -google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a h1:UIpYSuWdWHSzjwcAFRLjKcPXFZVVLXGEM23W+NWqipw= +google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a/go.mod h1:9i1T9n4ZinTUZGgzENMi8MDDgbGC5mqTS75JAv6xN3A= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1531,8 +1572,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From c3913fb9cabb2fb26705efcb47352c3fe06bc043 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:31:40 +0800 Subject: [PATCH 012/177] build(deps): bump github.com/helmfile/chartify from 0.20.2 to 0.20.3 (#1738) Bumps [github.com/helmfile/chartify](https://github.com/helmfile/chartify) from 0.20.2 to 0.20.3. - [Release notes](https://github.com/helmfile/chartify/releases) - [Commits](https://github.com/helmfile/chartify/compare/v0.20.2...v0.20.3) --- updated-dependencies: - dependency-name: github.com/helmfile/chartify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d5473cdc..4f1d8cd5 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.6 github.com/hashicorp/hcl/v2 v2.22.0 - github.com/helmfile/chartify v0.20.2 + github.com/helmfile/chartify v0.20.3 github.com/helmfile/vals v0.37.6 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index 7ac5c3e0..48b7f42a 100644 --- a/go.sum +++ b/go.sum @@ -728,8 +728,8 @@ github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1Dd github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= -github.com/helmfile/chartify v0.20.2 h1:aWitnxXahmkaL69L1k2BMW0fFYresIKv9wa4YMhLRA0= -github.com/helmfile/chartify v0.20.2/go.mod h1:qiuwenVmBC1fB3WvlxSUegjo14FT6g387xKVfQWiBbo= +github.com/helmfile/chartify v0.20.3 h1:Mq1WzCM4ns4ozZuO6/9FQ57EUUdUHA+D+ZEdUSydgzw= +github.com/helmfile/chartify v0.20.3/go.mod h1:NBmUWOt3P0gHOpXp9myofUzs0Gy/Q+R2Aos3p/a6glk= github.com/helmfile/vals v0.37.6 h1:S9fdArLc7xB+kcj2cePs0sp7Gy0Hptiq5U7HfE/LDqo= github.com/helmfile/vals v0.37.6/go.mod h1:UOqRleHPvtH3WuUm//38DDxeD9dXHF8PGc/UfTKWXus= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= From fbf40b600ff740ba50a37997797e45564c03a367 Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Mon, 14 Oct 2024 11:49:05 -0300 Subject: [PATCH 013/177] feat: improve summary for releases failed to delete (#1735) Signed-off-by: Felipe Santos --- pkg/state/state.go | 34 +++++++++++++++++++++++++--------- pkg/state/state_test.go | 2 +- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/pkg/state/state.go b/pkg/state/state.go index e0bab050..6bb5ce8d 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -444,9 +444,10 @@ type SetValue struct { // AffectedReleases hold the list of released that where updated, deleted, or in error type AffectedReleases struct { - Upgraded []*ReleaseSpec - Deleted []*ReleaseSpec - Failed []*ReleaseSpec + Upgraded []*ReleaseSpec + Deleted []*ReleaseSpec + Failed []*ReleaseSpec + DeleteFailed []*ReleaseSpec } // DefaultEnv is the default environment to use for helm commands @@ -878,13 +879,13 @@ func (st *HelmState) DeleteReleasesForSync(affectedReleases *AffectedReleases, h m.Lock() start := time.Now() if _, err := st.triggerReleaseEvent("preuninstall", nil, release, "sync"); err != nil { - affectedReleases.Failed = append(affectedReleases.Failed, release) + affectedReleases.DeleteFailed = append(affectedReleases.Failed, release) relErr = newReleaseFailedError(release, err) } else if err := helm.DeleteRelease(context, release.Name, deletionFlags...); err != nil { - affectedReleases.Failed = append(affectedReleases.Failed, release) + affectedReleases.DeleteFailed = append(affectedReleases.Failed, release) relErr = newReleaseFailedError(release, err) } else if _, err := st.triggerReleaseEvent("postuninstall", nil, release, "sync"); err != nil { - affectedReleases.Failed = append(affectedReleases.Failed, release) + affectedReleases.DeleteFailed = append(affectedReleases.Failed, release) relErr = newReleaseFailedError(release, err) } else { affectedReleases.Deleted = append(affectedReleases.Deleted, release) @@ -2146,7 +2147,7 @@ func (st *HelmState) DeleteReleases(affectedReleases *AffectedReleases, helm hel if _, err := st.triggerReleaseEvent("preuninstall", nil, &release, "delete"); err != nil { release.duration = time.Since(start) - affectedReleases.Failed = append(affectedReleases.Failed, &release) + affectedReleases.DeleteFailed = append(affectedReleases.Failed, &release) return err } @@ -2154,14 +2155,14 @@ func (st *HelmState) DeleteReleases(affectedReleases *AffectedReleases, helm hel if err := helm.DeleteRelease(context, release.Name, flags...); err != nil { release.duration = time.Since(start) - affectedReleases.Failed = append(affectedReleases.Failed, &release) + affectedReleases.DeleteFailed = append(affectedReleases.Failed, &release) return err } if _, err := st.triggerReleaseEvent("postuninstall", nil, &release, "delete"); err != nil { release.duration = time.Since(start) - affectedReleases.Failed = append(affectedReleases.Failed, &release) + affectedReleases.DeleteFailed = append(affectedReleases.Failed, &release) return err } release.duration = time.Since(start) @@ -3452,6 +3453,21 @@ func (ar *AffectedReleases) DisplayAffectedReleases(logger *zap.SugaredLogger) { } logger.Info(tbl.String()) } + if len(ar.DeleteFailed) > 0 { + logger.Info("\nFAILED TO DELETE RELEASES:") + tbl, _ := prettytable.NewTable(prettytable.Column{Header: "NAME"}, + prettytable.Column{Header: "NAMESPACE", MinWidth: 6}, + prettytable.Column{Header: "DURATION", AlignRight: true}, + ) + tbl.Separator = " " + for _, release := range ar.DeleteFailed { + err := tbl.AddRow(release.Name, release.Namespace, release.duration.Round(time.Second)) + if err != nil { + logger.Warn("Could not add row, %v", err) + } + } + logger.Info(tbl.String()) + } } func escape(value string) string { diff --git a/pkg/state/state_test.go b/pkg/state/state_test.go index 11592c8e..a7d1b62b 100644 --- a/pkg/state/state_test.go +++ b/pkg/state/state_test.go @@ -2808,7 +2808,7 @@ func TestHelmState_Delete(t *testing.T) { affectedReleases := AffectedReleases{} errs := state.DeleteReleases(&affectedReleases, helm, 1, tt.purge, "") if errs != nil { - if !tt.wantErr || len(affectedReleases.Failed) != 1 || affectedReleases.Failed[0].Name != release.Name { + if !tt.wantErr || len(affectedReleases.DeleteFailed) != 1 || affectedReleases.DeleteFailed[0].Name != release.Name { t.Errorf("DeleteReleases() for %s error = %v, wantErr %v", tt.name, errs, tt.wantErr) return } From dea501cb10fb9b0020bd8c6132e89704efc11b52 Mon Sep 17 00:00:00 2001 From: Shane Starcher Date: Tue, 15 Oct 2024 09:26:59 -0500 Subject: [PATCH 014/177] [feature] --skip-refresh to pass through to deps (#1740) --skip-refresh right now disables adding new repos, but in addition it should pass down to helm deps update to not refresh the actual values Signed-off-by: Shane Starcher Co-authored-by: Shane Starcher --- pkg/app/app.go | 10 ++++++++++ pkg/state/state.go | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pkg/app/app.go b/pkg/app/app.go index 6f60ea66..2a1ce50e 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -176,6 +176,7 @@ func (a *App) Diff(c DiffConfigProvider) error { prepErr := run.withPreparedCharts("diff", state.ChartPrepareOptions{ SkipRepos: c.SkipRefresh() || c.SkipDeps(), + SkipRefresh: c.SkipRefresh(), SkipDeps: c.SkipDeps(), IncludeCRDs: &includeCRDs, Validate: c.Validate(), @@ -241,6 +242,7 @@ func (a *App) Template(c TemplateConfigProvider) error { prepErr := run.withPreparedCharts("template", state.ChartPrepareOptions{ SkipRepos: c.SkipRefresh() || c.SkipDeps(), + SkipRefresh: c.SkipRefresh(), SkipDeps: c.SkipDeps(), IncludeCRDs: &includeCRDs, SkipCleanup: c.SkipCleanup(), @@ -265,6 +267,7 @@ func (a *App) WriteValues(c WriteValuesConfigProvider) error { return a.ForEachState(func(run *Run) (ok bool, errs []error) { prepErr := run.withPreparedCharts("write-values", state.ChartPrepareOptions{ SkipRepos: c.SkipRefresh() || c.SkipDeps(), + SkipRefresh: c.SkipRefresh(), SkipDeps: c.SkipDeps(), SkipCleanup: c.SkipCleanup(), Concurrency: c.Concurrency(), @@ -316,6 +319,7 @@ func (a *App) Lint(c LintConfigProvider) error { prepErr := run.withPreparedCharts("lint", state.ChartPrepareOptions{ ForceDownload: true, SkipRepos: c.SkipRefresh() || c.SkipDeps(), + SkipRefresh: c.SkipRefresh(), SkipDeps: c.SkipDeps(), SkipCleanup: c.SkipCleanup(), Concurrency: c.Concurrency(), @@ -350,6 +354,7 @@ func (a *App) Fetch(c FetchConfigProvider) error { return a.ForEachState(func(run *Run) (ok bool, errs []error) { prepErr := run.withPreparedCharts("pull", state.ChartPrepareOptions{ ForceDownload: true, + SkipRefresh: c.SkipRefresh(), SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipDeps: c.SkipDeps(), OutputDir: c.OutputDir(), @@ -372,6 +377,7 @@ func (a *App) Sync(c SyncConfigProvider) error { prepErr := run.withPreparedCharts("sync", state.ChartPrepareOptions{ SkipRepos: c.SkipRefresh() || c.SkipDeps(), + SkipRefresh: c.SkipRefresh(), SkipDeps: c.SkipDeps(), Wait: c.Wait(), WaitForJobs: c.WaitForJobs(), @@ -405,6 +411,7 @@ func (a *App) Apply(c ApplyConfigProvider) error { prepErr := run.withPreparedCharts("apply", state.ChartPrepareOptions{ SkipRepos: c.SkipRefresh() || c.SkipDeps(), + SkipRefresh: c.SkipRefresh(), SkipDeps: c.SkipDeps(), Wait: c.Wait(), WaitForJobs: c.WaitForJobs(), @@ -467,6 +474,7 @@ func (a *App) Delete(c DeleteConfigProvider) error { if !c.SkipCharts() { err := run.withPreparedCharts("delete", state.ChartPrepareOptions{ SkipRepos: c.SkipRefresh() || c.SkipDeps(), + SkipRefresh: c.SkipRefresh(), SkipDeps: c.SkipDeps(), Concurrency: c.Concurrency(), DeleteWait: c.DeleteWait(), @@ -490,6 +498,7 @@ func (a *App) Destroy(c DestroyConfigProvider) error { if !c.SkipCharts() { err := run.withPreparedCharts("destroy", state.ChartPrepareOptions{ SkipRepos: c.SkipRefresh() || c.SkipDeps(), + SkipRefresh: c.SkipRefresh(), SkipDeps: c.SkipDeps(), Concurrency: c.Concurrency(), DeleteWait: c.DeleteWait(), @@ -517,6 +526,7 @@ func (a *App) Test(c TestConfigProvider) error { err := run.withPreparedCharts("test", state.ChartPrepareOptions{ SkipRepos: c.SkipRefresh() || c.SkipDeps(), + SkipRefresh: c.SkipRefresh(), SkipDeps: c.SkipDeps(), Concurrency: c.Concurrency(), }, func() { diff --git a/pkg/state/state.go b/pkg/state/state.go index 6bb5ce8d..8e5b3e76 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1370,6 +1370,7 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre chartPath = filepath.Dir(fullChartPath) } } + results <- &chartPrepareResult{ releaseName: release.Name, chartName: chartName, @@ -1377,7 +1378,7 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre releaseContext: release.KubeContext, chartPath: chartPath, buildDeps: buildDeps, - skipRefresh: !isLocal, + skipRefresh: !isLocal || opts.SkipRefresh, chartFetchedByGoGetter: chartFetchedByGoGetter, } } From 922cc15c50a93cbfb8c39bb6a33f7fede8e8536b Mon Sep 17 00:00:00 2001 From: Zubair Haque Date: Wed, 16 Oct 2024 05:31:25 -0500 Subject: [PATCH 015/177] feat: update sops version to 3.9.1 (#1742) Signed-off-by: zhaque44 --- .github/workflows/Makefile | 2 +- Dockerfile | 2 +- Dockerfile.debian-stable-slim | 2 +- Dockerfile.ubuntu | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/Makefile b/.github/workflows/Makefile index 159bc0cf..f5742d11 100644 --- a/.github/workflows/Makefile +++ b/.github/workflows/Makefile @@ -2,7 +2,7 @@ HELM_VERSION ?= v3.7.2 KUSTOMIZE_VERSION ?= v5.4.3 K8S_VERSION ?= v1.28.11 MINIKUBE_VERSION ?= v1.31.1 -SOPS_VERSION ?= v3.9.0 +SOPS_VERSION ?= v3.9.1 # --- CHANGE_MINIKUBE_NONE_USER ?= true diff --git a/Dockerfile b/Dockerfile index 7ed13dc1..20c4812d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -77,7 +77,7 @@ RUN set -x && \ rm "${KUSTOMIZE_FILENAME}" && \ [ "$(kustomize version)" = "${KUSTOMIZE_VERSION}" ] -ENV SOPS_VERSION="v3.9.0" +ENV SOPS_VERSION="v3.9.1" ARG SOPS_FILENAME="sops-${SOPS_VERSION}.${TARGETOS}.${TARGETARCH}" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/getsops/sops/releases/download/${SOPS_VERSION}/${SOPS_FILENAME}" && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index a8ced00e..2ecff646 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -82,7 +82,7 @@ RUN set -x && \ rm "${KUSTOMIZE_FILENAME}" && \ [ "$(kustomize version)" = "${KUSTOMIZE_VERSION}" ] -ENV SOPS_VERSION="v3.9.0" +ENV SOPS_VERSION="v3.9.1" ARG SOPS_FILENAME="sops-${SOPS_VERSION}.${TARGETOS}.${TARGETARCH}" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/getsops/sops/releases/download/${SOPS_VERSION}/${SOPS_FILENAME}" && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 1395ba42..7dfc6a66 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -82,7 +82,7 @@ RUN set -x && \ rm "${KUSTOMIZE_FILENAME}" && \ [ "$(kustomize version)" = "${KUSTOMIZE_VERSION}" ] -ENV SOPS_VERSION="v3.9.0" +ENV SOPS_VERSION="v3.9.1" ARG SOPS_FILENAME="sops-${SOPS_VERSION}.${TARGETOS}.${TARGETARCH}" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/getsops/sops/releases/download/${SOPS_VERSION}/${SOPS_FILENAME}" && \ From 61439fbc3498e94134af6a49df546a4bc660553e Mon Sep 17 00:00:00 2001 From: Zubair Haque Date: Sat, 19 Oct 2024 07:52:01 -0500 Subject: [PATCH 016/177] chore: improve test assertions and descriptions for file download test (#1745) improve test assertions and descriptions for file download test Signed-off-by: zhaque44 --- go.mod | 1 + go.sum | 1 + pkg/app/init_test.go | 45 +++++++++++++++++++++----------------------- 3 files changed, 23 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 4f1d8cd5..44ad1e21 100644 --- a/go.mod +++ b/go.mod @@ -198,6 +198,7 @@ require ( github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe // indirect github.com/getsops/sops/v3 v3.9.1 // indirect + github.com/ghodss/yaml v1.0.0 // indirect github.com/go-errors/errors v1.4.2 // indirect github.com/go-jose/go-jose/v4 v4.0.4 // indirect github.com/go-logr/logr v1.4.2 // indirect diff --git a/go.sum b/go.sum index 48b7f42a..674f720c 100644 --- a/go.sum +++ b/go.sum @@ -491,6 +491,7 @@ github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe h1:QKe/kmAYbndxw github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe/go.mod h1:awFzISqLJoZLm+i9QQ4SgMNHDqljH6jWV0B36V5MrUM= github.com/getsops/sops/v3 v3.9.1 h1:wXsqzEsUPVQPcxsvjpwpqqD3DVRe9UZKJ7LSf5rzuLA= github.com/getsops/sops/v3 v3.9.1/go.mod h1:k3XzAfcvMI1Rfyw2tky0/RakHrdbVcUrtCGTYsmkMY8= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= diff --git a/pkg/app/init_test.go b/pkg/app/init_test.go index f9f40b3e..59d9124d 100644 --- a/pkg/app/init_test.go +++ b/pkg/app/init_test.go @@ -8,27 +8,28 @@ import ( "path/filepath" "regexp" "testing" + + "github.com/stretchr/testify/assert" ) func TestDownloadfile(t *testing.T) { - var ts *httptest.Server cases := []struct { name string handler func(http.ResponseWriter, *http.Request) - url string filepath string wantContent string wantError string }{ { - name: "download success", + name: "successful download of file content", handler: func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) fmt.Fprint(w, "helmfile") }, wantContent: "helmfile", }, { - name: "download 404", + name: "404 error when file not found", handler: func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotFound) fmt.Fprint(w, "not found") @@ -36,7 +37,7 @@ func TestDownloadfile(t *testing.T) { wantError: "download .*? error, code: 404", }, { - name: "download 500", + name: "500 error on server failure", handler: func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusInternalServerError) fmt.Fprint(w, "server error") @@ -44,14 +45,16 @@ func TestDownloadfile(t *testing.T) { wantError: "download .*? error, code: 500", }, { - name: "download path error", + name: "error due to invalid file path", handler: func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) fmt.Fprint(w, "helmfile") }, filepath: "abc/down.txt", wantError: "open .*? no such file or directory", }, } + for _, c := range cases { t.Run(c.name, func(t *testing.T) { dir := t.TempDir() @@ -60,30 +63,24 @@ func TestDownloadfile(t *testing.T) { downfile = filepath.Join(dir, c.filepath) } - ts = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - c.handler(w, r) - })) + ts := httptest.NewServer(http.HandlerFunc(c.handler)) defer ts.Close() - url := ts.URL - if c.url != "" { - url = c.url - } - err := downloadfile(downfile, url) + + err := downloadfile(downfile, ts.URL) + if c.wantError != "" { - if err == nil { - t.Errorf("download got no error, want error: %v", c.wantError) - } else if matched, regexErr := regexp.MatchString(c.wantError, err.Error()); regexErr != nil || !matched { - t.Errorf("download got error: %v, want error: %v", err, c.wantError) + assert.Error(t, err) + if err != nil { + matched, regexErr := regexp.MatchString(c.wantError, err.Error()) + assert.NoError(t, regexErr) + assert.True(t, matched, "expected error message to match regex: %s", c.wantError) } return } + content, err := os.ReadFile(downfile) - if err != nil { - t.Errorf("read download file error: %v", err) - } - if string(content) != c.wantContent { - t.Errorf("download file content got: %v, want content: %v", string(content), c.wantContent) - } + assert.NoError(t, err) + assert.Equal(t, c.wantContent, string(content), "unexpected content in downloaded file") }) } } From 8b16d36903bbfac39c50f30c79f081e43bc4350f Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 21 Oct 2024 21:52:56 +0800 Subject: [PATCH 017/177] feat: add 'hide-notes' flag to helm in sync and apply commands (#1746) Signed-off-by: yxxhero --- cmd/apply.go | 1 + cmd/sync.go | 1 + go.mod | 1 - go.sum | 1 - 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/apply.go b/cmd/apply.go index d2add4b3..c2efe0fa 100644 --- a/cmd/apply.go +++ b/cmd/apply.go @@ -61,6 +61,7 @@ func NewApplyCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.BoolVar(&applyOptions.SuppressSecrets, "suppress-secrets", false, "suppress secrets in the diff output. highly recommended to specify on CI/CD use-cases") f.BoolVar(&applyOptions.ShowSecrets, "show-secrets", false, "do not redact secret values in the diff output. should be used for debug purpose only") f.BoolVar(&applyOptions.NoHooks, "no-hooks", false, "do not diff changes made by hooks.") + f.BoolVar(&applyOptions.HideNotes, "hide-notes", false, "add --hide-notes flag to helm") f.BoolVar(&applyOptions.SuppressDiff, "suppress-diff", false, "suppress diff in the output. Usable in new installs") f.BoolVar(&applyOptions.Wait, "wait", false, `Override helmDefaults.wait setting "helm upgrade --install --wait"`) f.BoolVar(&applyOptions.WaitForJobs, "wait-for-jobs", false, `Override helmDefaults.waitForJobs setting "helm upgrade --install --wait-for-jobs"`) diff --git a/cmd/sync.go b/cmd/sync.go index a779da3a..d8782dc0 100644 --- a/cmd/sync.go +++ b/cmd/sync.go @@ -41,6 +41,7 @@ func NewSyncCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.BoolVar(&syncOptions.SkipCRDs, "skip-crds", false, "if set, no CRDs will be installed on sync. By default, CRDs are installed if not already present") f.BoolVar(&syncOptions.IncludeNeeds, "include-needs", false, `automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when --selector/-l flag is not provided`) f.BoolVar(&syncOptions.IncludeTransitiveNeeds, "include-transitive-needs", false, `like --include-needs, but also includes transitive needs (needs of needs). Does nothing when --selector/-l flag is not provided. Overrides exclusions of other selectors and conditions.`) + f.BoolVar(&syncOptions.HideNotes, "hide-notes", false, "add --hide-notes flag to helm") f.BoolVar(&syncOptions.Wait, "wait", false, `Override helmDefaults.wait setting "helm upgrade --install --wait"`) f.BoolVar(&syncOptions.WaitForJobs, "wait-for-jobs", false, `Override helmDefaults.waitForJobs setting "helm upgrade --install --wait-for-jobs"`) f.BoolVar(&syncOptions.ReuseValues, "reuse-values", false, `Override helmDefaults.reuseValues "helm upgrade --install --reuse-values"`) diff --git a/go.mod b/go.mod index 44ad1e21..4f1d8cd5 100644 --- a/go.mod +++ b/go.mod @@ -198,7 +198,6 @@ require ( github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe // indirect github.com/getsops/sops/v3 v3.9.1 // indirect - github.com/ghodss/yaml v1.0.0 // indirect github.com/go-errors/errors v1.4.2 // indirect github.com/go-jose/go-jose/v4 v4.0.4 // indirect github.com/go-logr/logr v1.4.2 // indirect diff --git a/go.sum b/go.sum index 674f720c..48b7f42a 100644 --- a/go.sum +++ b/go.sum @@ -491,7 +491,6 @@ github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe h1:QKe/kmAYbndxw github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe/go.mod h1:awFzISqLJoZLm+i9QQ4SgMNHDqljH6jWV0B36V5MrUM= github.com/getsops/sops/v3 v3.9.1 h1:wXsqzEsUPVQPcxsvjpwpqqD3DVRe9UZKJ7LSf5rzuLA= github.com/getsops/sops/v3 v3.9.1/go.mod h1:k3XzAfcvMI1Rfyw2tky0/RakHrdbVcUrtCGTYsmkMY8= -github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= From a72a23f71eb95b5173789422a80adeebcba6f8ab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 08:54:12 +0800 Subject: [PATCH 018/177] build(deps): bump github.com/helmfile/vals from 0.37.6 to 0.37.7 (#1747) Bumps [github.com/helmfile/vals](https://github.com/helmfile/vals) from 0.37.6 to 0.37.7. - [Release notes](https://github.com/helmfile/vals/releases) - [Changelog](https://github.com/helmfile/vals/blob/main/.goreleaser.yml) - [Commits](https://github.com/helmfile/vals/compare/v0.37.6...v0.37.7) --- updated-dependencies: - dependency-name: github.com/helmfile/vals dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 14 +++++++------- go.sum | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index 4f1d8cd5..49b183e0 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/hashicorp/go-getter v1.7.6 github.com/hashicorp/hcl/v2 v2.22.0 github.com/helmfile/chartify v0.20.3 - github.com/helmfile/vals v0.37.6 + github.com/helmfile/vals v0.37.7 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 @@ -36,9 +36,9 @@ require ( replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 require ( - cloud.google.com/go v0.115.1 // indirect + cloud.google.com/go v0.116.0 // indirect cloud.google.com/go/iam v1.2.1 // indirect - cloud.google.com/go/storage v1.44.0 // indirect + cloud.google.com/go/storage v1.45.0 // indirect filippo.io/age v1.2.0 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect @@ -103,7 +103,7 @@ require ( golang.org/x/text v0.19.0 // indirect golang.org/x/time v0.7.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect - google.golang.org/api v0.200.0 // indirect + google.golang.org/api v0.201.0 // indirect google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.1 // indirect @@ -122,10 +122,10 @@ require ( cloud.google.com/go/monitoring v1.21.1 // indirect cloud.google.com/go/secretmanager v1.14.1 // indirect github.com/1Password/connect-sdk-go v1.5.3 // indirect - github.com/1password/onepassword-sdk-go v0.1.2 // indirect + github.com/1password/onepassword-sdk-go v0.1.3 // indirect github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/AlecAivazis/survey/v2 v2.3.6 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0 // indirect @@ -229,7 +229,7 @@ require ( github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcp-sdk-go v0.116.0 // indirect + github.com/hashicorp/hcp-sdk-go v0.117.0 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/imdario/mergo v0.3.16 // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect diff --git a/go.sum b/go.sum index 48b7f42a..c5301a8d 100644 --- a/go.sum +++ b/go.sum @@ -34,8 +34,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.115.1 h1:Jo0SM9cQnSkYfp44+v+NQXHpcHqlnRJk2qxh6yvxxxQ= -cloud.google.com/go v0.115.1/go.mod h1:DuujITeaufu3gL68/lOFIirVNJwQeyf5UXyi+Wbgknc= +cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= +cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -187,8 +187,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.44.0 h1:abBzXf4UJKMmQ04xxJf9dYM/fNl24KHoTuBjyJDX2AI= -cloud.google.com/go/storage v1.44.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= +cloud.google.com/go/storage v1.45.0 h1:5av0QcIVj77t+44mV4gffFC/LscFRUhto6UBMB5SimM= +cloud.google.com/go/storage v1.45.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/trace v1.11.1 h1:UNqdP+HYYtnm6lb91aNA5JQ0X14GnxkABGlfz2PzPew= @@ -209,14 +209,14 @@ filippo.io/age v1.2.0 h1:vRDp7pUMaAJzXNIWJVAZnEf/Dyi4Vu4wI8S1LBzufhE= filippo.io/age v1.2.0/go.mod h1:JL9ew2lTN+Pyft4RiNGguFfOpewKwSHm5ayKD/A4004= github.com/1Password/connect-sdk-go v1.5.3 h1:KyjJ+kCKj6BwB2Y8tPM1Ixg5uIS6HsB0uWA8U38p/Uk= github.com/1Password/connect-sdk-go v1.5.3/go.mod h1:5rSymY4oIYtS4G3t0oMkGAXBeoYiukV3vkqlnEjIDJs= -github.com/1password/onepassword-sdk-go v0.1.2 h1:O5xoxaAvzRI4gXdGXmyFYoBlmsiv3l8qJEROmNeDIKo= -github.com/1password/onepassword-sdk-go v0.1.2/go.mod h1:nZEOzWFvodClltx8G0xtcNGqzNrrcfW589Rb9T82hE8= +github.com/1password/onepassword-sdk-go v0.1.3 h1:PP8+pydBt40Uh21tXP9bmPCPTlBc23JW5iVpOjzssw4= +github.com/1password/onepassword-sdk-go v0.1.3/go.mod h1:nZEOzWFvodClltx8G0xtcNGqzNrrcfW589Rb9T82hE8= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AlecAivazis/survey/v2 v2.3.6 h1:NvTuVHISgTHEHeBFqt6BHOe4Ny/NwGZr7w+F8S9ziyw= github.com/AlecAivazis/survey/v2 v2.3.6/go.mod h1:4AuI9b7RjAR+G7v9+C4YSlX/YL3K3cWNXgWXOhllqvI= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0 h1:nyQWyZvwGTvunIMxi1Y9uXkcyr+I7TeNrr/foo4Kpk8= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 h1:JZg6HRh6W6U4OLl6lk7BZ7BLisIzM9dG1R50zUk9C/M= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0/go.mod h1:YL1xnZ6QejvQHWJrX/AvhFl4WW4rqHVoKspWNVwFk0M= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 h1:B/dfvscEQtew9dVuoxqxrUKKv8Ih2f55PydknDamU+g= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0/go.mod h1:fiPSssYvltE08HJchL04dOy+RD4hgrjph0cwGGMntdI= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0 h1:+m0M/LFxN43KvULkDNfdXOgrjtg6UYJPFBJyuEcRCAw= @@ -722,16 +722,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.22.0 h1:hkZ3nCtqeJsDhPRFz5EA9iwcG1hNWGePOTw6oyul12M= github.com/hashicorp/hcl/v2 v2.22.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= -github.com/hashicorp/hcp-sdk-go v0.116.0 h1:WhmEzOxoswQsX0s8Hk84RE1avu+rwV2e51R8uOb9ZhY= -github.com/hashicorp/hcp-sdk-go v0.116.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= +github.com/hashicorp/hcp-sdk-go v0.117.0 h1:7lJpkinpWdsXtejC+X7MdaE/3zhFMweB9Ym3uJ7qFJw= +github.com/hashicorp/hcp-sdk-go v0.117.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1DdPo= github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= github.com/helmfile/chartify v0.20.3 h1:Mq1WzCM4ns4ozZuO6/9FQ57EUUdUHA+D+ZEdUSydgzw= github.com/helmfile/chartify v0.20.3/go.mod h1:NBmUWOt3P0gHOpXp9myofUzs0Gy/Q+R2Aos3p/a6glk= -github.com/helmfile/vals v0.37.6 h1:S9fdArLc7xB+kcj2cePs0sp7Gy0Hptiq5U7HfE/LDqo= -github.com/helmfile/vals v0.37.6/go.mod h1:UOqRleHPvtH3WuUm//38DDxeD9dXHF8PGc/UfTKWXus= +github.com/helmfile/vals v0.37.7 h1:S7P2qzR2o8BZNj4JV3pbWmKdMTEtKD2GCu8sx4Nyh4c= +github.com/helmfile/vals v0.37.7/go.mod h1:rMkjYgUcSSz1ZwMa4o9D53lAe/OwycMjtt7fi/Qhnjk= 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= @@ -1401,8 +1401,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.200.0 h1:0ytfNWn101is6e9VBoct2wrGDjOi5vn7jw5KtaQgDrU= -google.golang.org/api v0.200.0/go.mod h1:Tc5u9kcbjO7A8SwGlYj4IiVifJU01UqXtEgDMYmBmV8= +google.golang.org/api v0.201.0 h1:+7AD9JNM3tREtawRMu8sOjSbb8VYcYXJG/2eEOmfDu0= +google.golang.org/api v0.201.0/go.mod h1:HVY0FCHVs89xIW9fzf/pBvOEm+OolHa86G/txFezyq4= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= From e1ec0785681742ad6ee9dfc35babd647a5c7ac29 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 06:17:39 +0800 Subject: [PATCH 019/177] build(deps): bump k8s.io/apimachinery from 0.31.1 to 0.31.2 (#1754) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 49b183e0..1a5b0083 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( golang.org/x/term v0.25.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.16.2 - k8s.io/apimachinery v0.31.1 + k8s.io/apimachinery v0.31.2 ) replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 diff --git a/go.sum b/go.sum index c5301a8d..72afd0aa 100644 --- a/go.sum +++ b/go.sum @@ -1608,8 +1608,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= -k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= -k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= +k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/cli-runtime v0.31.1 h1:/ZmKhmZ6hNqDM+yf9s3Y4KEYakNXUn5sod2LWGGwCuk= k8s.io/cli-runtime v0.31.1/go.mod h1:pKv1cDIaq7ehWGuXQ+A//1OIF+7DI+xudXtExMCbe9U= k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= From a7d2321efd5b87c8c8444179aab3f9f18fe88fed Mon Sep 17 00:00:00 2001 From: Matthias Baur Date: Thu, 24 Oct 2024 00:17:58 +0200 Subject: [PATCH 020/177] Reset extra args before running 'dependency build' (#1751) --- pkg/helmexec/exec.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/helmexec/exec.go b/pkg/helmexec/exec.go index 283910ef..1352d7ae 100644 --- a/pkg/helmexec/exec.go +++ b/pkg/helmexec/exec.go @@ -597,6 +597,10 @@ func (helm *execer) exec(args []string, env map[string]string, overrideEnableLiv enableLiveOutput = *overrideEnableLiveOutput } outBytes, err := helm.runner.Execute(helm.helmBinary, cmdargs, env, enableLiveOutput) + + // Reset extra args after each helm execution + helm.SetExtraArgs() + return outBytes, err } @@ -614,6 +618,10 @@ func (helm *execer) execStdIn(args []string, env map[string]string, stdin io.Rea cmd := fmt.Sprintf("exec: %s %s", helm.helmBinary, strings.Join(cmdargs, " ")) helm.logger.Debug(cmd) outBytes, err := helm.runner.ExecuteStdIn(helm.helmBinary, cmdargs, env, stdin) + + // Reset extra args after each helm execution + helm.SetExtraArgs() + return outBytes, err } From 32409acc616d5351ea28c303b6e7ba4d7d144995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=BCr=C5=9Fat=20Akta=C5=9F?= Date: Thu, 24 Oct 2024 14:21:30 +0300 Subject: [PATCH 021/177] Introducing Helmfile Guru on Gurubase.io (#1748) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Kürşat Aktaş --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ef030a97..d2091eee 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ [![Go Report Card](https://goreportcard.com/badge/github.com/helmfile/helmfile)](https://goreportcard.com/report/github.com/helmfile/helmfile) [![Slack Community #helmfile](https://slack.sweetops.com/badge.svg)](https://slack.sweetops.com) [![Documentation](https://readthedocs.org/projects/helmfile/badge/?version=latest&style=flat)](https://helmfile.readthedocs.io/en/latest/) +[![Gurubase](https://img.shields.io/badge/Gurubase-Ask%20Helmfile%20Guru-006BFF)](https://gurubase.io/g/helmfile) Deploy Kubernetes Helm Charts
From d1416ec7b4ec8764a0be2058f2e4af24a424838a Mon Sep 17 00:00:00 2001 From: Zubair Haque Date: Thu, 24 Oct 2024 07:53:18 -0500 Subject: [PATCH 022/177] feat: add skip json schema validation during the install /upgrade of a Chart (#1737) * open PR for --skip-schema-validation flag Signed-off-by: zhaque44 --- cmd/apply.go | 1 + cmd/sync.go | 1 + cmd/template.go | 1 + pkg/app/app.go | 24 +++++++++++++----------- pkg/app/app_test.go | 28 +++++++++++++++++++--------- pkg/app/config.go | 2 ++ pkg/app/diff_test.go | 5 +++++ pkg/config/apply.go | 7 +++++++ pkg/config/diff.go | 5 +++++ pkg/config/sync.go | 7 +++++++ pkg/config/template.go | 7 +++++++ pkg/exectest/helm.go | 2 ++ pkg/state/helmx.go | 16 ++++++++++++++++ pkg/state/state.go | 42 +++++++++++++++++++++++++++++++----------- pkg/state/temp_test.go | 12 ++++++------ 15 files changed, 123 insertions(+), 37 deletions(-) diff --git a/cmd/apply.go b/cmd/apply.go index c2efe0fa..b019e6f2 100644 --- a/cmd/apply.go +++ b/cmd/apply.go @@ -69,6 +69,7 @@ func NewApplyCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.BoolVar(&applyOptions.ResetValues, "reset-values", false, `Override helmDefaults.reuseValues "helm upgrade --install --reset-values"`) f.StringVar(&applyOptions.PostRenderer, "post-renderer", "", `pass --post-renderer to "helm template" or "helm upgrade --install"`) f.StringArrayVar(&applyOptions.PostRendererArgs, "post-renderer-args", nil, `pass --post-renderer-args to "helm template" or "helm upgrade --install"`) + f.BoolVar(&applyOptions.SkipSchemaValidation, "skip-schema-validation", false, `pass --skip-schema-validation to "helm template" or "helm upgrade --install"`) f.StringVar(&applyOptions.Cascade, "cascade", "", "pass cascade to helm exec, default: background") f.StringArrayVar(&applyOptions.SuppressOutputLineRegex, "suppress-output-line-regex", nil, "a list of regex patterns to suppress output lines from the diff output") diff --git a/cmd/sync.go b/cmd/sync.go index d8782dc0..ae2af7fc 100644 --- a/cmd/sync.go +++ b/cmd/sync.go @@ -48,6 +48,7 @@ func NewSyncCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.BoolVar(&syncOptions.ResetValues, "reset-values", false, `Override helmDefaults.reuseValues "helm upgrade --install --reset-values"`) f.StringVar(&syncOptions.PostRenderer, "post-renderer", "", `pass --post-renderer to "helm template" or "helm upgrade --install"`) f.StringArrayVar(&syncOptions.PostRendererArgs, "post-renderer-args", nil, `pass --post-renderer-args to "helm template" or "helm upgrade --install"`) + f.BoolVar(&syncOptions.SkipSchemaValidation, "skip-schema-validation", false, `pass --skip-schema-validation to "helm template" or "helm upgrade --install"`) f.StringVar(&syncOptions.Cascade, "cascade", "", "pass cascade to helm exec, default: background") return cmd diff --git a/cmd/template.go b/cmd/template.go index 8d85f903..fb26ff3a 100644 --- a/cmd/template.go +++ b/cmd/template.go @@ -47,6 +47,7 @@ func NewTemplateCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.BoolVar(&templateOptions.SkipCleanup, "skip-cleanup", false, "Stop cleaning up temporary values generated by helmfile and helm-secrets. Useful for debugging. Don't use in production for security") f.StringVar(&templateOptions.PostRenderer, "post-renderer", "", `pass --post-renderer to "helm template" or "helm upgrade --install"`) f.StringArrayVar(&templateOptions.PostRendererArgs, "post-renderer-args", nil, `pass --post-renderer-args to "helm template" or "helm upgrade --install"`) + f.BoolVar(&templateOptions.SkipSchemaValidation, "skip-schema-validation", false, `pass skip-schema-validation to "helm template" or "helm upgrade --install"`) f.StringVar(&templateOptions.KubeVersion, "kube-version", "", `pass --kube-version to "helm template". Overrides kubeVersion in helmfile.yaml`) f.StringArrayVar(&templateOptions.ShowOnly, "show-only", nil, `pass --show-only to "helm template"`) diff --git a/pkg/app/app.go b/pkg/app/app.go index 2a1ce50e..7d0e0e11 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -1537,17 +1537,18 @@ Do you really want to apply? subst.Releases = rs syncOpts := &state.SyncOpts{ - Set: c.Set(), - SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), - SkipCRDs: c.SkipCRDs(), - Wait: c.Wait(), - WaitForJobs: c.WaitForJobs(), - ReuseValues: c.ReuseValues(), - ResetValues: c.ResetValues(), - PostRenderer: c.PostRenderer(), - PostRendererArgs: c.PostRendererArgs(), - SyncArgs: c.SyncArgs(), - HideNotes: c.HideNotes(), + Set: c.Set(), + SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), + SkipCRDs: c.SkipCRDs(), + Wait: c.Wait(), + WaitForJobs: c.WaitForJobs(), + ReuseValues: c.ReuseValues(), + ResetValues: c.ResetValues(), + PostRenderer: c.PostRenderer(), + PostRendererArgs: c.PostRendererArgs(), + SkipSchemaValidation: c.SkipSchemaValidation(), + SyncArgs: c.SyncArgs(), + HideNotes: c.HideNotes(), } return subst.SyncReleases(&affectedReleases, helm, c.Values(), c.Concurrency(), syncOpts) })) @@ -1673,6 +1674,7 @@ func (a *App) diff(r *Run, c DiffConfigProvider) (*string, bool, bool, []error) ResetValues: c.ResetValues(), PostRenderer: c.PostRenderer(), PostRendererArgs: c.PostRendererArgs(), + SkipSchemaValidation: c.SkipSchemaValidation(), SuppressOutputLineRegex: c.SuppressOutputLineRegex(), } diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index d84c8049..f6094f79 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -2085,15 +2085,16 @@ services: } type configImpl struct { - selectors []string - set []string - output string - includeCRDs bool - skipCleanup bool - skipCRDs bool - skipDeps bool - skipRefresh bool - skipTests bool + selectors []string + set []string + output string + includeCRDs bool + skipCleanup bool + skipCRDs bool + skipDeps bool + skipTests bool + skipSchemaValidation bool + skipRefresh bool skipNeeds bool includeNeeds bool @@ -2194,6 +2195,10 @@ func (c configImpl) KubeVersion() string { return c.kubeVersion } +func (c configImpl) SkipSchemaValidation() bool { + return c.skipSchemaValidation +} + func (c configImpl) ShowOnly() []string { return nil } @@ -2238,6 +2243,7 @@ type applyConfig struct { reuseValues bool postRenderer string postRendererArgs []string + skipSchemaValidation bool kubeVersion string suppressOutputLineRegex []string showOnly []string @@ -2422,6 +2428,10 @@ func (a applyConfig) KubeVersion() string { return a.kubeVersion } +func (a applyConfig) SkipSchemaValidation() bool { + return a.skipSchemaValidation +} + func (a applyConfig) ShowOnly() []string { return a.showOnly } diff --git a/pkg/app/config.go b/pkg/app/config.go index ba1b5173..d52feabe 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -51,6 +51,7 @@ type ApplyConfigProvider interface { Args() string PostRenderer() string PostRendererArgs() []string + SkipSchemaValidation() bool Cascade() string HideNotes() bool SuppressOutputLineRegex() []string @@ -130,6 +131,7 @@ type DiffConfigProvider interface { Args() string PostRenderer() string PostRendererArgs() []string + SkipSchemaValidation() bool SuppressOutputLineRegex() []string Values() []string diff --git a/pkg/app/diff_test.go b/pkg/app/diff_test.go index 08ec45cd..f1987143 100644 --- a/pkg/app/diff_test.go +++ b/pkg/app/diff_test.go @@ -43,6 +43,7 @@ type diffConfig struct { stripTrailingCR bool interactive bool skipDiffOnInstall bool + skipSchemaValidation bool reuseValues bool logger *zap.SugaredLogger } @@ -175,6 +176,10 @@ func (a diffConfig) PostRendererArgs() []string { return nil } +func (a diffConfig) SkipSchemaValidation() bool { + return a.skipSchemaValidation +} + func (a diffConfig) SuppressOutputLineRegex() []string { return a.suppressOutputLineRegex } diff --git a/pkg/config/apply.go b/pkg/config/apply.go index 296c17cc..fdb157e0 100644 --- a/pkg/config/apply.go +++ b/pkg/config/apply.go @@ -52,6 +52,8 @@ type ApplyOptions struct { Wait bool // WaitForJobs is true if the helm command should wait for the jobs to be completed WaitForJobs bool + // Propagate '--skipSchemaValidation' to helmv3 template and helm install + SkipSchemaValidation bool // ReuseValues is true if the helm command should reuse the values ReuseValues bool // ResetValues is true if helm command should reset values to charts' default @@ -235,6 +237,11 @@ func (a *ApplyImpl) PostRendererArgs() []string { return a.ApplyOptions.PostRendererArgs } +// SkipSchemaValidation returns the SkipSchemaValidation. +func (a *ApplyImpl) SkipSchemaValidation() bool { + return a.ApplyOptions.SkipSchemaValidation +} + // Cascade returns cascade flag func (a *ApplyImpl) Cascade() string { return a.ApplyOptions.Cascade diff --git a/pkg/config/diff.go b/pkg/config/diff.go index 0fe525e8..c2717b89 100644 --- a/pkg/config/diff.go +++ b/pkg/config/diff.go @@ -48,6 +48,7 @@ type DiffOptions struct { DiffArgs string // SuppressOutputLineRegex is a list of regexes to suppress output lines SuppressOutputLineRegex []string + SkipSchemaValidation bool } // NewDiffOptions creates a new Apply @@ -199,3 +200,7 @@ func (t *DiffImpl) PostRendererArgs() []string { func (t *DiffImpl) SuppressOutputLineRegex() []string { return t.DiffOptions.SuppressOutputLineRegex } + +func (t *DiffImpl) SkipSchemaValidation() bool { + return t.DiffOptions.SkipSchemaValidation +} diff --git a/pkg/config/sync.go b/pkg/config/sync.go index 7c01598e..1ee69e5c 100644 --- a/pkg/config/sync.go +++ b/pkg/config/sync.go @@ -30,6 +30,8 @@ type SyncOptions struct { PostRenderer string // Propagate '--post-renderer-args' to helmv3 template and helm install PostRendererArgs []string + // Propagate '--skipSchemaValidation' to helmv3 template and helm install + SkipSchemaValidation bool // Cascade '--cascade' to helmv3 delete, available values: background, foreground, or orphan, default: background Cascade string // SyncArgs is the list of arguments to pass to the helm upgrade command. @@ -132,6 +134,11 @@ func (t *SyncImpl) PostRendererArgs() []string { return t.SyncOptions.PostRendererArgs } +// SkipSchemaValidation returns the SkipSchemaValidation. +func (t *SyncImpl) SkipSchemaValidation() bool { + return t.SyncOptions.SkipSchemaValidation +} + // Cascade returns cascade flag func (t *SyncImpl) Cascade() string { return t.SyncOptions.Cascade diff --git a/pkg/config/template.go b/pkg/config/template.go index 5ef781ea..30d2eea4 100644 --- a/pkg/config/template.go +++ b/pkg/config/template.go @@ -36,6 +36,8 @@ type TemplateOptions struct { PostRenderer string // Propagate '--post-renderer-args' to helmv3 template and helm install PostRendererArgs []string + // Propagate '--skipSchemaValidation' to helmv3 template and helm install + SkipSchemaValidation bool // KubeVersion is the kube-version flag KubeVersion string // Propagate '--show-only` to helm template @@ -135,6 +137,11 @@ func (t *TemplateImpl) PostRendererArgs() []string { return t.TemplateOptions.PostRendererArgs } +// SkipSchemaValidation returns the SkipSchemaValidation. +func (t *TemplateImpl) SkipSchemaValidation() bool { + return t.TemplateOptions.SkipSchemaValidation +} + // KubeVersion returns the the KubeVersion. func (t *TemplateImpl) KubeVersion() string { return t.TemplateOptions.KubeVersion diff --git a/pkg/exectest/helm.go b/pkg/exectest/helm.go index 3b7c405c..9daaf0ec 100644 --- a/pkg/exectest/helm.go +++ b/pkg/exectest/helm.go @@ -94,6 +94,8 @@ func (helm *Helm) SetEnableLiveOutput(enableLiveOutput bool) { } func (helm *Helm) SetDisableForceUpdate(forceUpdate bool) { } +func (helm *Helm) SkipSchemaValidation(skipSchemaValidation bool) { +} func (helm *Helm) AddRepo(name, repository, cafile, certfile, keyfile, username, password string, managed string, passCredentials, skipTLSVerify bool) error { helm.Repo = []string{name, repository, cafile, certfile, keyfile, username, password, managed, fmt.Sprintf("%v", passCredentials), fmt.Sprintf("%v", skipTLSVerify)} return nil diff --git a/pkg/state/helmx.go b/pkg/state/helmx.go index b1b2bb8d..bf584e34 100644 --- a/pkg/state/helmx.go +++ b/pkg/state/helmx.go @@ -58,6 +58,22 @@ func (st *HelmState) appendPostRenderArgsFlags(flags []string, release *ReleaseS return flags } +// append skip-schema-validation flags to helm flags +func (st *HelmState) appendSkipSchemaValidationFlags(flags []string, release *ReleaseSpec, skipSchemaValidation bool) []string { + switch { + // Check if SkipSchemaValidation is true in the release spec. + case release.SkipSchemaValidation != nil && *release.SkipSchemaValidation: + flags = append(flags, "--skip-schema-validation") + // Check if skipSchemaValidation argument is true. + case skipSchemaValidation: + flags = append(flags, "--skip-schema-validation") + // Check if SkipSchemaValidation is true in HelmDefaults. + case st.HelmDefaults.SkipSchemaValidation != nil && *st.HelmDefaults.SkipSchemaValidation: + flags = append(flags, "--skip-schema-validation") + } + return flags +} + // append suppress-output-line-regex flags to helm diff flags func (st *HelmState) appendSuppressOutputLineRegexFlags(flags []string, release *ReleaseSpec, suppressOutputLineRegex []string) []string { suppressOutputLineRegexFlags := []string{} diff --git a/pkg/state/state.go b/pkg/state/state.go index 8e5b3e76..717ed80d 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -160,6 +160,8 @@ type HelmSpec struct { Keyring string `yaml:"keyring,omitempty"` // EnableDNS, when set to true, enable DNS lookups when rendering templates EnableDNS bool `yaml:"enableDNS"` + // Propagate '--skipSchemaValidation' to helmv3 template and helm install + SkipSchemaValidation *bool `yaml:"skipSchemaValidation,omitempty"` // Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0' Devel bool `yaml:"devel"` // Wait, if set to true, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful @@ -382,6 +384,9 @@ type ReleaseSpec struct { // Propagate '--post-renderer' to helmv3 template and helm install PostRenderer *string `yaml:"postRenderer,omitempty"` + // Propagate '--skipSchemaValidation' to helmv3 template and helm install + SkipSchemaValidation *bool `yaml:"skipSchemaValidation,omitempty"` + // Propagate '--post-renderer-args' to helmv3 template and helm install PostRendererArgs []string `yaml:"postRendererArgs,omitempty"` @@ -770,17 +775,18 @@ func (st *HelmState) DetectReleasesToBeDeleted(helm helmexec.Interface, releases } type SyncOpts struct { - Set []string - SkipCleanup bool - SkipCRDs bool - Wait bool - WaitForJobs bool - ReuseValues bool - ResetValues bool - PostRenderer string - PostRendererArgs []string - SyncArgs string - HideNotes bool + Set []string + SkipCleanup bool + SkipCRDs bool + Wait bool + WaitForJobs bool + ReuseValues bool + ResetValues bool + PostRenderer string + SkipSchemaValidation bool + PostRendererArgs []string + SyncArgs string + HideNotes bool } type SyncOpt interface{ Apply(*SyncOpts) } @@ -1997,6 +2003,7 @@ type DiffOpts struct { PostRenderer string PostRendererArgs []string SuppressOutputLineRegex []string + SkipSchemaValidation bool } func (o *DiffOpts) Apply(opts *DiffOpts) { @@ -2742,6 +2749,13 @@ func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSp } flags = st.appendPostRenderArgsFlags(flags, release, postRendererArgs) + skipSchemaValidation := false + if opt != nil { + skipSchemaValidation = opt.SkipSchemaValidation + } + + flags = st.appendSkipSchemaValidationFlags(flags, release, skipSchemaValidation) + // append hide-notes flag flags = st.appendHideNotesFlags(flags, helm, opt) @@ -2849,6 +2863,12 @@ func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec, } flags = st.appendPostRenderArgsFlags(flags, release, postRendererArgs) + skipSchemaValidation := false + if opt != nil { + skipSchemaValidation = opt.SkipSchemaValidation + } + flags = st.appendSkipSchemaValidationFlags(flags, release, skipSchemaValidation) + suppressOutputLineRegex := []string{} if opt != nil { suppressOutputLineRegex = opt.SuppressOutputLineRegex diff --git a/pkg/state/temp_test.go b/pkg/state/temp_test.go index 975456ef..1fb59c3a 100644 --- a/pkg/state/temp_test.go +++ b/pkg/state/temp_test.go @@ -38,39 +38,39 @@ func TestGenerateID(t *testing.T) { run(testcase{ subject: "baseline", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, - want: "foo-values-d566bffd8", + want: "foo-values-5db58595d7", }) run(testcase{ subject: "different bytes content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: []byte(`{"k":"v"}`), - want: "foo-values-65b557f8c5", + want: "foo-values-78d88d86dd", }) run(testcase{ subject: "different map content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: map[string]any{"k": "v"}, - want: "foo-values-74d5cd8cc7", + want: "foo-values-f9c8967cd", }) run(testcase{ subject: "different chart", release: ReleaseSpec{Name: "foo", Chart: "stable/envoy"}, - want: "foo-values-85db6bbb4c", + want: "foo-values-cdfb97444", }) run(testcase{ subject: "different name", release: ReleaseSpec{Name: "bar", Chart: "incubator/raw"}, - want: "bar-values-85cf974b7", + want: "bar-values-749bc4c6d4", }) run(testcase{ subject: "specific ns", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw", Namespace: "myns"}, - want: "myns-foo-values-574676fbb9", + want: "myns-foo-values-7b74fbd6d6", }) for id, n := range ids { From 5837672bfaaa9b48d6132c2f534586652725ae64 Mon Sep 17 00:00:00 2001 From: zebreay <34366742+ban11111@users.noreply.github.com> Date: Fri, 25 Oct 2024 20:52:05 +0800 Subject: [PATCH 023/177] fix(maputil): prevent nil value overwrite (#1755) Signed-off-by: zhengbayi Co-authored-by: zhengbayi --- pkg/maputil/maputil.go | 3 +++ pkg/maputil/maputil_test.go | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/pkg/maputil/maputil.go b/pkg/maputil/maputil.go index 8df924ee..bf0c5c7a 100644 --- a/pkg/maputil/maputil.go +++ b/pkg/maputil/maputil.go @@ -231,6 +231,9 @@ func MergeMaps(a, b map[string]interface{}) map[string]interface{} { out[k] = v } for k, v := range b { + if v == nil { + continue + } if v, ok := v.(map[string]interface{}); ok { if bv, ok := out[k]; ok { if bv, ok := bv.(map[string]interface{}); ok { diff --git a/pkg/maputil/maputil_test.go b/pkg/maputil/maputil_test.go index 837c5b4e..74bd9b0a 100644 --- a/pkg/maputil/maputil_test.go +++ b/pkg/maputil/maputil_test.go @@ -215,6 +215,10 @@ func TestMapUtil_MergeMaps(t *testing.T) { "app1": 3, }, } + map5 := map[string]interface{}{ + "logLevel": "error", + "replicaCount": nil, + } testMap := MergeMaps(map2, map4) equal := reflect.DeepEqual(testMap, map4) @@ -247,4 +251,17 @@ func TestMapUtil_MergeMaps(t *testing.T) { if !equal { t.Errorf("Expected a map with different keys to merge properly with another map. Expected: %v, got %v", expectedMap, testMap) } + + testMap = MergeMaps(map3, map5) + expectedMap = map[string]interface{}{ + "logLevel": "error", + "replicaCount": map[string]any{ + "app1": 3, + "awesome": 4, + }, + } + equal = reflect.DeepEqual(testMap, expectedMap) + if !equal { + t.Errorf("Expected a map with empty value not to overwrite another map's value. Expected: %v, got %v", expectedMap, testMap) + } } From eb9cd77da3a7924e2a319fb83964d4fe9a95287e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 00:07:58 +0000 Subject: [PATCH 024/177] build(deps): bump github.com/goccy/go-yaml from 1.12.0 to 1.13.0 (#1759) --- go.mod | 5 ++--- go.sum | 28 ++++++++++++++-------------- pkg/app/app_template_test.go | 10 +++++----- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/go.mod b/go.mod index 1a5b0083..611a466e 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.12.0 + github.com/goccy/go-yaml v1.13.0 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 @@ -52,7 +52,7 @@ require ( 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 - github.com/fatih/color v1.17.0 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/fujiwara/tfstate-lookup v1.4.2 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -102,7 +102,6 @@ require ( golang.org/x/sys v0.26.0 // indirect golang.org/x/text v0.19.0 // indirect golang.org/x/time v0.7.0 // indirect - golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/api v0.201.0 // indirect google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9 // indirect google.golang.org/grpc v1.67.1 // indirect diff --git a/go.sum b/go.sum index 72afd0aa..efd2b137 100644 --- a/go.sum +++ b/go.sum @@ -475,8 +475,8 @@ github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9 github.com/extism/go-sdk v1.3.1 h1:eVpuv36b67Km/tAb7Cq6msHEW8kkdFgpZO/7fCwjuoE= github.com/extism/go-sdk v1.3.1/go.mod h1:tPMWfCSOThie3LSTSZKbrQjRm2oAXxUUjSE4HJWjYQM= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI= @@ -487,6 +487,8 @@ github.com/fujiwara/tfstate-lookup v1.4.2 h1:Mmsf+li1h+bfeqgKwFw4lz74g89ooMlDp99 github.com/fujiwara/tfstate-lookup v1.4.2/go.mod h1:C/n3SgmKG5Q3R/CuoOJLkSwtUDp6pUIVwShLPSFcZCw= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= +github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe h1:QKe/kmAYbndxwu91TcjHERsnMh5SgOB1x/qicvOdUJ8= github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe/go.mod h1:awFzISqLJoZLm+i9QQ4SgMNHDqljH6jWV0B36V5MrUM= github.com/getsops/sops/v3 v3.9.1 h1:wXsqzEsUPVQPcxsvjpwpqqD3DVRe9UZKJ7LSf5rzuLA= @@ -527,12 +529,12 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= -github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27HYW8P9FDk5PbgA= +github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= @@ -542,8 +544,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.12.0 h1:/1WHjnMsI1dlIBQutrvSMGZRQufVO3asrHfTwfACoPM= -github.com/goccy/go-yaml v1.12.0/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU= +github.com/goccy/go-yaml v1.13.0 h1:0Wtp0FZLd7Sm8gERmR9S6Iczzb3vItJj7NaHmFg8pTs= +github.com/goccy/go-yaml v1.13.0/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= 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= @@ -781,8 +783,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= @@ -1351,8 +1353,6 @@ golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= -golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= diff --git a/pkg/app/app_template_test.go b/pkg/app/app_template_test.go index cf09a932..0ffb26ce 100644 --- a/pkg/app/app_template_test.go +++ b/pkg/app/app_template_test.go @@ -399,11 +399,11 @@ releases: check(t, testcase{ goccyGoYaml: true, error: `in ./helmfile.yaml: failed to read helmfile.yaml: reading document at index 1: [4:3] unknown field "foobar" - 2 | releases: - 3 | - name: app1 - > 4 | foobar: FOOBAR - ^ - 5 | chart: incubator/raw`, + 2 | releases: + 3 | - name: app1 +> 4 | foobar: FOOBAR + ^ + 5 | chart: incubator/raw`, }) }) From 06795346aa35c811b4b0e85d68a2e967fef0a996 Mon Sep 17 00:00:00 2001 From: Zeyad Saber Refaei Kenawi Date: Tue, 29 Oct 2024 15:57:11 +0200 Subject: [PATCH 025/177] fix: this url doesn't work anymore (#1760) It fixes the error when trying the helmfile. Error: repo "https://kubernetes-charts-incubator.storage.googleapis.com" is no longer available; try "https://charts.helm.sh/incubator" instead Signed-off-by: Zeyad Saber Refaei Kenawi --- test/advanced/helmfile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/advanced/helmfile.yaml b/test/advanced/helmfile.yaml index 675e1a85..01a4e2d5 100644 --- a/test/advanced/helmfile.yaml +++ b/test/advanced/helmfile.yaml @@ -1,6 +1,6 @@ repositories: - name: incubator - url: https://kubernetes-charts-incubator.storage.googleapis.com + url: https://charts.helm.sh/incubator releases: - name: kustomapp From 492e3997c509621e4cde506134eedfaf7be06f4e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 07:45:56 +0800 Subject: [PATCH 026/177] build(deps): bump github.com/goccy/go-yaml from 1.13.0 to 1.13.1 (#1762) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.13.0 to 1.13.1. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.13.0...v1.13.1) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 611a466e..c065813b 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.13.0 + github.com/goccy/go-yaml v1.13.1 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index efd2b137..57e90be3 100644 --- a/go.sum +++ b/go.sum @@ -544,8 +544,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.13.0 h1:0Wtp0FZLd7Sm8gERmR9S6Iczzb3vItJj7NaHmFg8pTs= -github.com/goccy/go-yaml v1.13.0/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= +github.com/goccy/go-yaml v1.13.1 h1:xZqDO9euwefeRx5am/ca9DPSCbV3fMNPkrl+Tivmz8A= +github.com/goccy/go-yaml v1.13.1/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= 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= From 95ef851b83feff08dc261bee0cd153b689806e6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:31:01 -0400 Subject: [PATCH 027/177] build(deps): bump github.com/goccy/go-yaml from 1.13.1 to 1.13.2 (#1763) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.13.1 to 1.13.2. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.13.1...v1.13.2) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c065813b..fc8cd629 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.13.1 + github.com/goccy/go-yaml v1.13.2 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 57e90be3..606a574e 100644 --- a/go.sum +++ b/go.sum @@ -544,8 +544,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.13.1 h1:xZqDO9euwefeRx5am/ca9DPSCbV3fMNPkrl+Tivmz8A= -github.com/goccy/go-yaml v1.13.1/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= +github.com/goccy/go-yaml v1.13.2 h1:jApcuETDAB6R10spnUfQDTVu090oUwGo+p3GakYTJKw= +github.com/goccy/go-yaml v1.13.2/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= 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= From ad289ef14402d35dc52d0b22982641b63744ceb5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 08:24:42 +0800 Subject: [PATCH 028/177] build(deps): bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1 (#1767) Bumps [github.com/golang-jwt/jwt/v4](https://github.com/golang-jwt/jwt) from 4.5.0 to 4.5.1. - [Release notes](https://github.com/golang-jwt/jwt/releases) - [Changelog](https://github.com/golang-jwt/jwt/blob/main/VERSION_HISTORY.md) - [Commits](https://github.com/golang-jwt/jwt/compare/v4.5.0...v4.5.1) --- updated-dependencies: - dependency-name: github.com/golang-jwt/jwt/v4 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index fc8cd629..07213f85 100644 --- a/go.mod +++ b/go.mod @@ -54,7 +54,7 @@ require ( github.com/dimchansky/utfbom v1.1.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/fujiwara/tfstate-lookup v1.4.2 // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-querystring v1.1.0 // indirect diff --git a/go.sum b/go.sum index 606a574e..facef002 100644 --- a/go.sum +++ b/go.sum @@ -553,8 +553,9 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= +github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= From a0c4c0065cff55a7a8ca7e542028b07d699b407c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 08:25:07 +0800 Subject: [PATCH 029/177] build(deps): bump github.com/helmfile/vals from 0.37.7 to 0.37.8 (#1764) Bumps [github.com/helmfile/vals](https://github.com/helmfile/vals) from 0.37.7 to 0.37.8. - [Release notes](https://github.com/helmfile/vals/releases) - [Changelog](https://github.com/helmfile/vals/blob/main/.goreleaser.yml) - [Commits](https://github.com/helmfile/vals/compare/v0.37.7...v0.37.8) --- updated-dependencies: - dependency-name: github.com/helmfile/vals dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 32 +++++++++++++-------------- go.sum | 68 +++++++++++++++++++++++++++++----------------------------- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/go.mod b/go.mod index 07213f85..24707750 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/hashicorp/go-getter v1.7.6 github.com/hashicorp/hcl/v2 v2.22.0 github.com/helmfile/chartify v0.20.3 - github.com/helmfile/vals v0.37.7 + github.com/helmfile/vals v0.37.8 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 @@ -38,7 +38,7 @@ replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545 require ( cloud.google.com/go v0.116.0 // indirect cloud.google.com/go/iam v1.2.1 // indirect - cloud.google.com/go/storage v1.45.0 // indirect + cloud.google.com/go/storage v1.46.0 // indirect filippo.io/age v1.2.0 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect @@ -102,8 +102,8 @@ require ( golang.org/x/sys v0.26.0 // indirect golang.org/x/text v0.19.0 // indirect golang.org/x/time v0.7.0 // indirect - google.golang.org/api v0.201.0 // indirect - google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/api v0.204.0 // indirect + google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect @@ -113,13 +113,13 @@ require ( require ( cel.dev/expr v0.16.1 // indirect - cloud.google.com/go/auth v0.9.8 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect + cloud.google.com/go/auth v0.10.0 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.5 // indirect cloud.google.com/go/compute/metadata v0.5.2 // indirect - cloud.google.com/go/kms v1.20.0 // indirect + cloud.google.com/go/kms v1.20.1 // indirect cloud.google.com/go/longrunning v0.6.1 // indirect cloud.google.com/go/monitoring v1.21.1 // indirect - cloud.google.com/go/secretmanager v1.14.1 // indirect + cloud.google.com/go/secretmanager v1.14.2 // indirect github.com/1Password/connect-sdk-go v1.5.3 // indirect github.com/1password/onepassword-sdk-go v0.1.3 // indirect github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect @@ -129,8 +129,8 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.1.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.1.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.2.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect @@ -179,7 +179,7 @@ require ( github.com/containerd/containerd v1.7.12 // indirect github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect - github.com/cyberark/conjur-api-go v0.12.4 // indirect + github.com/cyberark/conjur-api-go v0.12.6 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/distribution/reference v0.5.0 // indirect github.com/docker/cli v27.3.1+incompatible // indirect @@ -228,7 +228,7 @@ require ( github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcp-sdk-go v0.117.0 // indirect + github.com/hashicorp/hcp-sdk-go v0.119.0 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/imdario/mergo v0.3.16 // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect @@ -288,16 +288,16 @@ require ( golang.org/x/crypto v0.28.0 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect 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.31.1 // indirect + k8s.io/api v0.31.2 // indirect k8s.io/cli-runtime v0.31.1 // indirect - k8s.io/client-go v0.31.1 // indirect + k8s.io/client-go v0.31.2 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect diff --git a/go.sum b/go.sum index facef002..c829bded 100644 --- a/go.sum +++ b/go.sum @@ -50,10 +50,10 @@ cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjby cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= -cloud.google.com/go/auth v0.9.8 h1:+CSJ0Gw9iVeSENVCKJoLHhdUykDgXSc4Qn+gu2BRtR8= -cloud.google.com/go/auth v0.9.8/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= -cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= -cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= +cloud.google.com/go/auth v0.10.0 h1:tWlkvFAh+wwTOzXIjrwM64karR1iTBZ/GRr0S/DULYo= +cloud.google.com/go/auth v0.10.0/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= +cloud.google.com/go/auth/oauth2adapt v0.2.5 h1:2p29+dePqsCHPP1bqDJcKj4qxRyYCcbzKpFyKGt3MTk= +cloud.google.com/go/auth/oauth2adapt v0.2.5/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= @@ -117,14 +117,14 @@ cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= cloud.google.com/go/iam v1.2.1 h1:QFct02HRb7H12J/3utj0qf5tobFh9V4vR6h9eX5EBRU= cloud.google.com/go/iam v1.2.1/go.mod h1:3VUIJDPpwT6p/amXRC5GY8fCCh70lxPygguVtI0Z4/g= -cloud.google.com/go/kms v1.20.0 h1:uKUvjGqbBlI96xGE669hcVnEMw1Px/Mvfa62dhM5UrY= -cloud.google.com/go/kms v1.20.0/go.mod h1:/dMbFF1tLLFnQV44AoI2GlotbjowyUfgVwezxW291fM= +cloud.google.com/go/kms v1.20.1 h1:og29Wv59uf2FVaZlesaiDAqHFzHaoUyHI3HYp9VUHVg= +cloud.google.com/go/kms v1.20.1/go.mod h1:LywpNiVCvzYNJWS9JUcGJSVTNSwPwi0vBAotzDqn2nc= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= -cloud.google.com/go/logging v1.11.0 h1:v3ktVzXMV7CwHq1MBF65wcqLMA7i+z3YxbUsoK7mOKs= -cloud.google.com/go/logging v1.11.0/go.mod h1:5LDiJC/RxTt+fHc1LAt20R9TKiUTReDg6RuuFOZ67+A= +cloud.google.com/go/logging v1.12.0 h1:ex1igYcGFd4S/RZWOCU51StlIEuey5bjqwH9ZYjHibk= +cloud.google.com/go/logging v1.12.0/go.mod h1:wwYBt5HlYP1InnrtYI0wtwttpVU1rifnMT7RejksUAM= cloud.google.com/go/longrunning v0.6.1 h1:lOLTFxYpr8hcRtcwWir5ITh1PAKUD/sG2lKrTSYjyMc= cloud.google.com/go/longrunning v0.6.1/go.mod h1:nHISoOZpBcmlwbJmiVk5oDRz0qG/ZxPynEGs1iZ79s0= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= @@ -168,8 +168,8 @@ cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92 cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= -cloud.google.com/go/secretmanager v1.14.1 h1:xlWSIg8rtBn5qCr2f3XtQP19+5COyf/ll49SEvi/0vM= -cloud.google.com/go/secretmanager v1.14.1/go.mod h1:L+gO+u2JA9CCyXpSR8gDH0o8EV7i/f0jdBOrUXcIV0U= +cloud.google.com/go/secretmanager v1.14.2 h1:2XscWCfy//l/qF96YE18/oUaNJynAx749Jg3u0CjQr8= +cloud.google.com/go/secretmanager v1.14.2/go.mod h1:Q18wAPMM6RXLC/zVpWTlqq2IBSbbm7pKBlM3lCKsmjw= cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= @@ -187,8 +187,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.45.0 h1:5av0QcIVj77t+44mV4gffFC/LscFRUhto6UBMB5SimM= -cloud.google.com/go/storage v1.45.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= +cloud.google.com/go/storage v1.46.0 h1:OTXISBpFd8KaA2ClT3K3oRk8UGOcTHtrZ1bW88xKiic= +cloud.google.com/go/storage v1.46.0/go.mod h1:lM+gMAW91EfXIeMTBmixRsKL/XCxysytoAgduVikjMk= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/trace v1.11.1 h1:UNqdP+HYYtnm6lb91aNA5JQ0X14GnxkABGlfz2PzPew= @@ -231,10 +231,10 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0/go.mod h1:+OgGVo0Httq7N5oayfvaLQ/Jq+2gJdqfp++Hyyl7Tws= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.1.0 h1:DRiANoJTiW6obBQe3SqZizkuV1PEgfiiGivmVocDy64= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.1.0/go.mod h1:qLIye2hwb/ZouqhpSD9Zn3SJipvpEnz1Ywl3VUk9Y0s= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.1.0 h1:h4Zxgmi9oyZL2l8jeg1iRTqPloHktywWcu0nlJmo1tA= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.1.0/go.mod h1:LgLGXawqSreJz135Elog0ywTJDsm0Hz2k+N+6ZK35u8= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.1 h1:9fXQS/0TtQmKXp8SureKouF+idbQvp7cPUxykiohnBs= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.1/go.mod h1:f+OaoSg0VQYPMqB0Jp2D54j1VHzITYcJaCNwV+k00ts= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.2.0 h1:TkNl6WlpHdZSMt0Zngw8y0c9ZMi3GwmYl0kKNbW9PvU= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.2.0/go.mod h1:ukmL56lWl275SgNFijuwx0Wv6n6HmzzpPWW4kMoy/wY= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.0 h1:eXnN9kaS8TiDwXjoie3hMRLuwdUBUMW9KRgOqB3mCaw= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.0/go.mod h1:XIpam8wumeZ5rVMuhdDQLMfIPDf1WO3IzrCRO3e3e3o= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0 h1:nVocQV40OQne5613EeLayJiRAJuKlBGy+m22qWG+WRg= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0/go.mod h1:7QJP7dr2wznCMeqIrhMgWGf7XpAQnVrJqDm9nvV3Cu4= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= @@ -420,8 +420,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t 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.12.4 h1:N1Ku6xveOHZa7NRuf//uNKxwcvwp7MTy59aB2VM0o9A= -github.com/cyberark/conjur-api-go v0.12.4/go.mod h1:FnzNn6mPwTOyBueSDnu1J4K47J0sYHXTMehaqIV/GxY= +github.com/cyberark/conjur-api-go v0.12.6 h1:AmJbsyBfgdQ0TbH3D9MduqX88Mnb0O8ST9MKqDJpMHw= +github.com/cyberark/conjur-api-go v0.12.6/go.mod h1:NwX17s8cIbiM+gx7PzHGwBkFXbNIXRLHciKakVabq6Q= 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= @@ -725,16 +725,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.22.0 h1:hkZ3nCtqeJsDhPRFz5EA9iwcG1hNWGePOTw6oyul12M= github.com/hashicorp/hcl/v2 v2.22.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= -github.com/hashicorp/hcp-sdk-go v0.117.0 h1:7lJpkinpWdsXtejC+X7MdaE/3zhFMweB9Ym3uJ7qFJw= -github.com/hashicorp/hcp-sdk-go v0.117.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= +github.com/hashicorp/hcp-sdk-go v0.119.0 h1:31sjlO+VcDahdVE3K/+LKMoQe3v6tC0ESPayUcWtrf4= +github.com/hashicorp/hcp-sdk-go v0.119.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1DdPo= github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= github.com/helmfile/chartify v0.20.3 h1:Mq1WzCM4ns4ozZuO6/9FQ57EUUdUHA+D+ZEdUSydgzw= github.com/helmfile/chartify v0.20.3/go.mod h1:NBmUWOt3P0gHOpXp9myofUzs0Gy/Q+R2Aos3p/a6glk= -github.com/helmfile/vals v0.37.7 h1:S7P2qzR2o8BZNj4JV3pbWmKdMTEtKD2GCu8sx4Nyh4c= -github.com/helmfile/vals v0.37.7/go.mod h1:rMkjYgUcSSz1ZwMa4o9D53lAe/OwycMjtt7fi/Qhnjk= +github.com/helmfile/vals v0.37.8 h1:uimGb/RKlAH6VGovKcM16wkV7Oz7w1C+zz+omf+1vEo= +github.com/helmfile/vals v0.37.8/go.mod h1:rxVbfFSIUEwBBYXgT0bbcsB34YFAvSYPq7JMfH1owGs= 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= @@ -1402,8 +1402,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.201.0 h1:+7AD9JNM3tREtawRMu8sOjSbb8VYcYXJG/2eEOmfDu0= -google.golang.org/api v0.201.0/go.mod h1:HVY0FCHVs89xIW9fzf/pBvOEm+OolHa86G/txFezyq4= +google.golang.org/api v0.204.0 h1:3PjmQQEDkR/ENVZZwIYB4W/KzYtN8OrqnNcHWpeR8E4= +google.golang.org/api v0.204.0/go.mod h1:69y8QSoKIbL9F94bWgWAq6wGqGwyjBgi2y8rAK8zLag= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1512,12 +1512,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9 h1:nFS3IivktIU5Mk6KQa+v6RKkHUpdQpphqGNLxqNnbEk= -google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:tEzYTYZxbmVNOu0OAFH9HzdJtLn6h4Aj89zzlBCdHms= -google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f h1:jTm13A2itBi3La6yTGqn8bVSrc3ZZ1r8ENHlIXBfnRA= -google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f/go.mod h1:CLGoBuH1VHxAUXVPP8FfPwPEVJB6lz3URE5mY2SuayE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 h1:Q3nlH8iSQSRUwOskjbcSMcF2jiYMNiQYZ0c2KEJLKKU= +google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38/go.mod h1:xBI+tzfqGGN2JBeSebfKXFSdBpWVQ7sLW40PTupVRm4= +google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 h1:fVoAXEKA4+yufmbdVYv+SE73+cPZbbbe8paLsHfkK+U= +google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53/go.mod h1:riSXTwQ4+nqmPGtobMFyW5FqVAmIs0St6VPp4Ug7CE4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 h1:zciRKQ4kBpFgpfC5QQCVtnnNAcLIqweL7plyZRQHVpI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1607,14 +1607,14 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh 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.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= -k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= +k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= +k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/cli-runtime v0.31.1 h1:/ZmKhmZ6hNqDM+yf9s3Y4KEYakNXUn5sod2LWGGwCuk= k8s.io/cli-runtime v0.31.1/go.mod h1:pKv1cDIaq7ehWGuXQ+A//1OIF+7DI+xudXtExMCbe9U= -k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= -k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= +k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= +k8s.io/client-go v0.31.2/go.mod h1:NPa74jSVR/+eez2dFsEIHNa+3o09vtNaWwWwb1qSxSs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= From 77a5d9d516f7863faebcafc401f408c3e7f90fea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 10:45:39 +0800 Subject: [PATCH 030/177] build(deps): bump github.com/goccy/go-yaml from 1.13.2 to 1.13.4 (#1765) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.13.2 to 1.13.4. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.13.2...v1.13.4) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 24707750..3f145a44 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.13.2 + github.com/goccy/go-yaml v1.13.4 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index c829bded..2d46c978 100644 --- a/go.sum +++ b/go.sum @@ -544,8 +544,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.13.2 h1:jApcuETDAB6R10spnUfQDTVu090oUwGo+p3GakYTJKw= -github.com/goccy/go-yaml v1.13.2/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= +github.com/goccy/go-yaml v1.13.4 h1:XOnLX9GqT+kH/gB7YzCMUiDBFU9B7pm3HZz6kyeDPkk= +github.com/goccy/go-yaml v1.13.4/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= 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= From fc3a5ea37491dbbfa8399ee1b555bd645d5d7f39 Mon Sep 17 00:00:00 2001 From: Ceriath Date: Tue, 5 Nov 2024 15:24:36 +0100 Subject: [PATCH 031/177] fix(integration-tests): read correct minikube status (#1768) (#1769) Resolves #1768 by using the correct status fields Signed-off-by: Niklas Ott --- test/integration/lib/ensure.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/integration/lib/ensure.sh b/test/integration/lib/ensure.sh index c2942b3f..fb9b137b 100644 --- a/test/integration/lib/ensure.sh +++ b/test/integration/lib/ensure.sh @@ -5,10 +5,10 @@ if ! hash minikube 2>/dev/null; then fail "Minikube needs to be installed." fi -if [ ! $(minikube status --format '{{.MinikubeStatus}}') == "Running" ]; then +if [ ! "$(minikube status --format '{{.Host}}')" == "Running" ]; then fail "Minikube is not running." fi -if [ ! $(minikube status --format '{{.ClusterStatus}}') == "Running" ]; then +if [ ! "$(minikube status --format '{{.APIServer}}')" == "Running" ]; then fail "Minikube Cluster is not running." fi if ! kubectl version 1> /dev/null; then From 8ee56f13f3532a2016cab058bf02cd72cb7e5c39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Nov 2024 08:00:43 +0800 Subject: [PATCH 032/177] build(deps): bump github.com/goccy/go-yaml from 1.13.4 to 1.13.5 (#1770) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.13.4 to 1.13.5. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.13.4...v1.13.5) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3f145a44..1168e431 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.13.4 + github.com/goccy/go-yaml v1.13.5 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 2d46c978..de325ee7 100644 --- a/go.sum +++ b/go.sum @@ -544,8 +544,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.13.4 h1:XOnLX9GqT+kH/gB7YzCMUiDBFU9B7pm3HZz6kyeDPkk= -github.com/goccy/go-yaml v1.13.4/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= +github.com/goccy/go-yaml v1.13.5 h1:/Hh9Q3d1Q2T7E8ECUUS7Uh53FBGKLfetvQoSV7kLViU= +github.com/goccy/go-yaml v1.13.5/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= 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= From d23dc8a9ded9362cd4beb8782540bf4a3f439362 Mon Sep 17 00:00:00 2001 From: Matthias Baur Date: Wed, 6 Nov 2024 01:12:20 +0100 Subject: [PATCH 033/177] Add integration tests for #1749 (#1766) * Add integration tests for #1749 Signed-off-by: Matthias Baur * Reset extra args on a higher level to only affect subsequent helmfiles With the implementation before, extra args has been reset after each helm.exec which leads to problems with multiple charts in a helmfile since the correct args are only set once in Template(). But Template() calls helm.exec(template) multiple times. Signed-off-by: Matthias Baur --------- Signed-off-by: Matthias Baur --- pkg/helmexec/exec.go | 8 ------- pkg/state/state.go | 5 ++++ test/integration/run.sh | 2 ++ test/integration/test-cases/issue-1749.sh | 12 ++++++++++ .../input/helmfile-2in1.yaml.gotmpl | 23 +++++++++++++++++++ .../input/helmfile.d/helmfile1.yaml.gotmpl | 12 ++++++++++ .../input/helmfile.d/helmfile2.yaml.gotmpl | 12 ++++++++++ 7 files changed, 66 insertions(+), 8 deletions(-) create mode 100644 test/integration/test-cases/issue-1749.sh create mode 100644 test/integration/test-cases/issue-1749/input/helmfile-2in1.yaml.gotmpl create mode 100644 test/integration/test-cases/issue-1749/input/helmfile.d/helmfile1.yaml.gotmpl create mode 100644 test/integration/test-cases/issue-1749/input/helmfile.d/helmfile2.yaml.gotmpl diff --git a/pkg/helmexec/exec.go b/pkg/helmexec/exec.go index 1352d7ae..283910ef 100644 --- a/pkg/helmexec/exec.go +++ b/pkg/helmexec/exec.go @@ -597,10 +597,6 @@ func (helm *execer) exec(args []string, env map[string]string, overrideEnableLiv enableLiveOutput = *overrideEnableLiveOutput } outBytes, err := helm.runner.Execute(helm.helmBinary, cmdargs, env, enableLiveOutput) - - // Reset extra args after each helm execution - helm.SetExtraArgs() - return outBytes, err } @@ -618,10 +614,6 @@ func (helm *execer) execStdIn(args []string, env map[string]string, stdin io.Rea cmd := fmt.Sprintf("exec: %s %s", helm.helmBinary, strings.Join(cmdargs, " ")) helm.logger.Debug(cmd) outBytes, err := helm.runner.ExecuteStdIn(helm.helmBinary, cmdargs, env, stdin) - - // Reset extra args after each helm execution - helm.SetExtraArgs() - return outBytes, err } diff --git a/pkg/state/state.go b/pkg/state/state.go index 717ed80d..1514d931 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1439,6 +1439,11 @@ func (st *HelmState) runHelmDepBuilds(helm helmexec.Interface, concurrency int, // So we shouldn't use goroutines like we do for other helm operations here. // // See https://github.com/roboll/helmfile/issues/1521 + + // Reset helm extra args to not pollute BuildDeps() on subsequent helmfiles + // https://github.com/helmfile/helmfile/issues/1749 + helm.SetExtraArgs() + for _, r := range builds { buildDepsFlags := getBuildDepsFlags(r) if err := helm.BuildDeps(r.releaseName, r.chartPath, buildDepsFlags...); err != nil { diff --git a/test/integration/run.sh b/test/integration/run.sh index 1b163a31..faedd4b4 100755 --- a/test/integration/run.sh +++ b/test/integration/run.sh @@ -69,6 +69,7 @@ function cleanup() { set -e trap cleanup EXIT info "Using namespace: ${test_ns}" +info "Using Helm version:" $(${helm} version --short | grep -o 'v[0-9.]\+') ${helm} plugin ls | grep diff || ${helm} plugin install https://github.com/databus23/helm-diff --version v${HELM_DIFF_VERSION} info "Using Kustomize version: $(kustomize version --short | grep -o 'v[0-9.]\+')" ${kubectl} get namespace ${test_ns} &> /dev/null && warn "Namespace ${test_ns} exists, from a previous test run?" @@ -96,6 +97,7 @@ ${kubectl} create namespace ${test_ns} || fail "Could not create namespace ${tes . ${dir}/test-cases/deps-mr-1011.sh . ${dir}/test-cases/deps-kustomization-i-1402.sh . ${dir}/test-cases/hcl-secrets.sh +. ${dir}/test-cases/issue-1749.sh # ALL DONE ----------------------------------------------------------------------------------------------------------- diff --git a/test/integration/test-cases/issue-1749.sh b/test/integration/test-cases/issue-1749.sh new file mode 100644 index 00000000..22344957 --- /dev/null +++ b/test/integration/test-cases/issue-1749.sh @@ -0,0 +1,12 @@ +issue_1749_input_dir="${cases_dir}/issue-1749/input" +helmfile_real="$(pwd)/${helmfile}" + +test_start "issue 1749 helmfile.d template --args --dry-run=server" +cd "${issue_1749_input_dir}" +${helmfile_real} template --args --dry-run=server || fail "\"issue 1749 helmfile.d template --args --dry-run=server\" shouldn't fail" +cd - +test_pass "issue 1749 helmfile.d template --args --dry-run=server" + +test_start "issue 1749 helmfile.yaml template --args --dry-run=server" +${helmfile_real} template -f "${issue_1749_input_dir}/helmfile-2in1.yaml.gotmpl" --args --dry-run=server || fail "\"issue 1749 helmfile.yaml template --args --dry-run=server\" shouldn't fail" +test_pass "issue 1749 helmfile.yaml template --args --dry-run=server" diff --git a/test/integration/test-cases/issue-1749/input/helmfile-2in1.yaml.gotmpl b/test/integration/test-cases/issue-1749/input/helmfile-2in1.yaml.gotmpl new file mode 100644 index 00000000..6f699a06 --- /dev/null +++ b/test/integration/test-cases/issue-1749/input/helmfile-2in1.yaml.gotmpl @@ -0,0 +1,23 @@ +releases: + - name: test1 + chart: ../../../charts/raw + values: + - templates: + - | + apiVersion: v1 + kind: ConfigMap + metadata: + name: {{`{{ .Release.Name }}`}} + data: + foo: {{`{{ (first (lookup "v1" "Namespace" "" "").items).metadata.name }}`}} + - name: test2 + chart: ../../../charts/raw + values: + - templates: + - | + apiVersion: v1 + kind: ConfigMap + metadata: + name: {{`{{ .Release.Name }}`}} + data: + foo: {{`{{ (first (lookup "v1" "Namespace" "" "").items).metadata.name }}`}} diff --git a/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile1.yaml.gotmpl b/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile1.yaml.gotmpl new file mode 100644 index 00000000..e70221df --- /dev/null +++ b/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile1.yaml.gotmpl @@ -0,0 +1,12 @@ +releases: + - name: test1 + chart: ../../../../charts/raw + values: + - templates: + - | + apiVersion: v1 + kind: ConfigMap + metadata: + name: {{`{{ .Release.Name }}`}} + data: + foo: {{`{{ (first (lookup "v1" "Namespace" "" "").items).metadata.name }}`}} diff --git a/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile2.yaml.gotmpl b/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile2.yaml.gotmpl new file mode 100644 index 00000000..81f1cf1a --- /dev/null +++ b/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile2.yaml.gotmpl @@ -0,0 +1,12 @@ +releases: + - name: test2 + chart: ../../../../charts/raw + values: + - templates: + - | + apiVersion: v1 + kind: ConfigMap + metadata: + name: {{`{{ .Release.Name }}`}} + data: + foo: {{`{{ (first (lookup "v1" "Namespace" "" "").items).metadata.name }}`}} From eebcca002c0866f17a309e56a030bc8ceca06271 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Thu, 7 Nov 2024 09:59:15 +0800 Subject: [PATCH 034/177] fix: update acme chart URL in input.yaml (#1773) --- .../issue_498_template_go_getter_with_selector/input.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml index 75323838..63133c54 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml @@ -4,7 +4,7 @@ repositories: - name: istio url: https://istio-release.storage.googleapis.com/charts releases: -- chart: git::https://github.com/joshuasimon-taulia/acme.git@charts/acme?ref=master +- chart: git::https://github.com/jenkins-x/acme.git@charts/acme?ref=main name: acme-jx labels: values.jenkins-x.io: lock From afc5a07a1667d5d2653172827fa5c6297c77c415 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 10:56:01 +0800 Subject: [PATCH 035/177] build(deps): bump github.com/goccy/go-yaml from 1.13.5 to 1.13.6 (#1771) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.13.5 to 1.13.6. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.13.5...v1.13.6) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 1168e431..1b83b61f 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.13.5 + github.com/goccy/go-yaml v1.13.6 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index de325ee7..378e5847 100644 --- a/go.sum +++ b/go.sum @@ -544,8 +544,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.13.5 h1:/Hh9Q3d1Q2T7E8ECUUS7Uh53FBGKLfetvQoSV7kLViU= -github.com/goccy/go-yaml v1.13.5/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= +github.com/goccy/go-yaml v1.13.6 h1:pa3JkBPBseTtfqpG9DiSFhyxNPSpJ0BFa39BlMZE16E= +github.com/goccy/go-yaml v1.13.6/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= 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= From d76a403098db8105d23bd14e075d75d98180d605 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 07:29:55 +0800 Subject: [PATCH 036/177] build(deps): bump golang.org/x/sync from 0.8.0 to 0.9.0 (#1775) Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.8.0 to 0.9.0. - [Commits](https://github.com/golang/sync/compare/v0.8.0...v0.9.0) --- updated-dependencies: - dependency-name: golang.org/x/sync dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 1b83b61f..5988fe0b 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/zclconf/go-cty-yaml v1.1.0 go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.8.0 + golang.org/x/sync v0.9.0 golang.org/x/term v0.25.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.16.2 diff --git a/go.sum b/go.sum index 378e5847..d88bc41b 100644 --- a/go.sum +++ b/go.sum @@ -1187,8 +1187,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 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= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= From 00a88ac874c344b0e8333b3073bed398d8f33a55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 13:07:21 +0800 Subject: [PATCH 037/177] build(deps): bump golang.org/x/term from 0.25.0 to 0.26.0 (#1774) Bumps [golang.org/x/term](https://github.com/golang/term) from 0.25.0 to 0.26.0. - [Commits](https://github.com/golang/term/compare/v0.25.0...v0.26.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 5988fe0b..076e5478 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.9.0 - golang.org/x/term v0.25.0 + golang.org/x/term v0.26.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.16.2 k8s.io/apimachinery v0.31.2 @@ -99,7 +99,7 @@ require ( go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sys v0.26.0 // indirect + golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.19.0 // indirect golang.org/x/time v0.7.0 // indirect google.golang.org/api v0.204.0 // indirect diff --git a/go.sum b/go.sum index d88bc41b..9dbb7107 100644 --- a/go.sum +++ b/go.sum @@ -1262,16 +1262,16 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.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.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= -golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.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= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= -golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= +golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= +golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= 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= From eb6425c20da80f28b89466401544d5a694d36f0d Mon Sep 17 00:00:00 2001 From: haruna Date: Sun, 10 Nov 2024 08:03:02 +0900 Subject: [PATCH 038/177] Revive dead badge links (#1776) --- README-zh_CN.md | 2 +- README.md | 2 +- docs/index.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README-zh_CN.md b/README-zh_CN.md index 812d222b..662202f6 100644 --- a/README-zh_CN.md +++ b/README-zh_CN.md @@ -12,7 +12,7 @@ # Helmfile [![Tests](https://github.com/helmfile/helmfile/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/helmfile/helmfile/actions/workflows/ci.yaml?query=branch%3Amain) -[![Container Image Repository on GHCR](https://ghcr-badge.deta.dev/helmfile/helmfile/latest_tag?trim=major&label=latest "Docker Repository on ghcr")](https://github.com/helmfile/helmfile/pkgs/container/helmfile) +[![Container Image Repository on GHCR](https://ghcr-badge.egpl.dev/helmfile/helmfile/latest_tag?trim=major&label=latest "Docker Repository on ghcr")](https://github.com/helmfile/helmfile/pkgs/container/helmfile) [![Go Report Card](https://goreportcard.com/badge/github.com/helmfile/helmfile)](https://goreportcard.com/report/github.com/helmfile/helmfile) [![Slack Community #helmfile](https://slack.sweetops.com/badge.svg)](https://slack.sweetops.com) [![Documentation](https://readthedocs.org/projects/helmfile/badge/?version=latest&style=flat)](https://helmfile.readthedocs.io/en/latest/) diff --git a/README.md b/README.md index d2091eee..d6a80fc5 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ # Helmfile [![Tests](https://github.com/helmfile/helmfile/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/helmfile/helmfile/actions/workflows/ci.yaml?query=branch%3Amain) -[![Container Image Repository on GHCR](https://ghcr-badge.deta.dev/helmfile/helmfile/latest_tag?trim=major&label=latest "Docker Repository on ghcr")](https://github.com/helmfile/helmfile/pkgs/container/helmfile) +[![Container Image Repository on GHCR](https://ghcr-badge.egpl.dev/helmfile/helmfile/latest_tag?trim=major&label=latest "Docker Repository on ghcr")](https://github.com/helmfile/helmfile/pkgs/container/helmfile) [![Go Report Card](https://goreportcard.com/badge/github.com/helmfile/helmfile)](https://goreportcard.com/report/github.com/helmfile/helmfile) [![Slack Community #helmfile](https://slack.sweetops.com/badge.svg)](https://slack.sweetops.com) [![Documentation](https://readthedocs.org/projects/helmfile/badge/?version=latest&style=flat)](https://helmfile.readthedocs.io/en/latest/) diff --git a/docs/index.md b/docs/index.md index 97745e42..74b55afd 100644 --- a/docs/index.md +++ b/docs/index.md @@ -12,7 +12,7 @@ # Helmfile [![Tests](https://github.com/helmfile/helmfile/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/helmfile/helmfile/actions/workflows/ci.yaml?query=branch%3Amain) -[![Container Image Repository on GHCR](https://ghcr-badge.deta.dev/helmfile/helmfile/latest_tag?trim=major&label=latest "Docker Repository on ghcr")](https://github.com/helmfile/helmfile/pkgs/container/helmfile) +[![Container Image Repository on GHCR](https://ghcr-badge.egpl.dev/helmfile/helmfile/latest_tag?trim=major&label=latest "Docker Repository on ghcr")](https://github.com/helmfile/helmfile/pkgs/container/helmfile) [![Go Report Card](https://goreportcard.com/badge/github.com/helmfile/helmfile)](https://goreportcard.com/report/github.com/helmfile/helmfile) [![Slack Community #helmfile](https://slack.sweetops.com/badge.svg)](https://slack.sweetops.com) [![Documentation](https://readthedocs.org/projects/helmfile/badge/?version=latest&style=flat)](https://helmfile.readthedocs.io/en/latest/) From 1464bd2bfa0b8f9b34c0f2ed7d5433a3385312fb Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 11 Nov 2024 07:28:01 +0800 Subject: [PATCH 039/177] feat: refactor label creation in state.go (#1758) * feat: refactor label creation in state.go Signed-off-by: yxxhero * fix more Signed-off-by: yxxhero * fix test Signed-off-by: yxxhero * fix more issue Signed-off-by: yxxhero --------- Signed-off-by: yxxhero --- pkg/app/app_list_test.go | 6 +++--- pkg/state/state.go | 35 ++++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/pkg/app/app_list_test.go b/pkg/app/app_list_test.go index 38f4afe5..4cd535ed 100644 --- a/pkg/app/app_list_test.go +++ b/pkg/app/app_list_test.go @@ -185,9 +185,9 @@ global kube-system true true incubator/raw check(t, testcase{ environment: "development", selectors: []string{"app=test"}, - expected: `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION -external-secrets default true true app:test,chart:raw,name:external-secrets,namespace:default incubator/raw -my-release default true true app:test,chart:raw,name:my-release,namespace:default incubator/raw + expected: `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION +external-secrets default true true app:test incubator/raw +my-release default true true app:test incubator/raw `, }, cfg) }) diff --git a/pkg/state/state.go b/pkg/state/state.go index 1514d931..629372ce 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" "io" + "maps" "net/url" "os" "path/filepath" @@ -2268,22 +2269,24 @@ func markExcludedReleases(releases []ReleaseSpec, selectors []string, commonLabe filters = append(filters, f) } for _, r := range releases { - // 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 - } + orginReleaseLabel := maps.Clone(r.Labels) + if r.Labels == nil { + r.Labels = map[string]string{} + } else { + // Make a copy of the labels to avoid mutating the original + r.Labels = maps.Clone(r.Labels) } + // 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 { if r.Labels == nil { @@ -2299,6 +2302,8 @@ func markExcludedReleases(releases []ReleaseSpec, selectors []string, commonLabe if err != nil { return nil, fmt.Errorf("failed to parse condition in release %s: %w", r.Name, err) } + // reset the labels to the original + r.Labels = orginReleaseLabel res := Release{ ReleaseSpec: r, Filtered: (len(filters) > 0 && !filterMatch) || (!conditionMatch), From 9ff24b3c3af3538e8f499662e7e7a79c41c9cae3 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 11 Nov 2024 07:43:18 +0800 Subject: [PATCH 040/177] docs: Add Gurubase badge to README-zh_CN (#1777) Signed-off-by: yxxhero --- README-zh_CN.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README-zh_CN.md b/README-zh_CN.md index 662202f6..b31898ad 100644 --- a/README-zh_CN.md +++ b/README-zh_CN.md @@ -16,6 +16,7 @@ [![Go Report Card](https://goreportcard.com/badge/github.com/helmfile/helmfile)](https://goreportcard.com/report/github.com/helmfile/helmfile) [![Slack Community #helmfile](https://slack.sweetops.com/badge.svg)](https://slack.sweetops.com) [![Documentation](https://readthedocs.org/projects/helmfile/badge/?version=latest&style=flat)](https://helmfile.readthedocs.io/en/latest/) +[![Gurubase](https://img.shields.io/badge/Gurubase-Ask%20Helmfile%20Guru-006BFF)](https://gurubase.io/g/helmfile) 声明式Helm Chart管理工具
From 6c0fc6f0a92cb9d0b50e5b9adceac52e6beb0f03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 12:52:24 +0800 Subject: [PATCH 041/177] build(deps): bump github.com/goccy/go-yaml from 1.13.6 to 1.13.9 (#1781) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.13.6 to 1.13.9. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.13.6...v1.13.9) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 14 ++------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 076e5478..0357cd6d 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.13.6 + github.com/goccy/go-yaml v1.13.9 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 9dbb7107..0fa44e25 100644 --- a/go.sum +++ b/go.sum @@ -487,8 +487,6 @@ github.com/fujiwara/tfstate-lookup v1.4.2 h1:Mmsf+li1h+bfeqgKwFw4lz74g89ooMlDp99 github.com/fujiwara/tfstate-lookup v1.4.2/go.mod h1:C/n3SgmKG5Q3R/CuoOJLkSwtUDp6pUIVwShLPSFcZCw= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= -github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= -github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe h1:QKe/kmAYbndxwu91TcjHERsnMh5SgOB1x/qicvOdUJ8= github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe/go.mod h1:awFzISqLJoZLm+i9QQ4SgMNHDqljH6jWV0B36V5MrUM= github.com/getsops/sops/v3 v3.9.1 h1:wXsqzEsUPVQPcxsvjpwpqqD3DVRe9UZKJ7LSf5rzuLA= @@ -529,12 +527,6 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= -github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= -github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= -github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= -github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27HYW8P9FDk5PbgA= -github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= @@ -544,8 +536,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.13.6 h1:pa3JkBPBseTtfqpG9DiSFhyxNPSpJ0BFa39BlMZE16E= -github.com/goccy/go-yaml v1.13.6/go.mod h1:IjYwxUiJDoqpx2RmbdjMUceGHZwYLon3sfOGl5Hi9lc= +github.com/goccy/go-yaml v1.13.9 h1:D/LhDa7E5HS/iYxSZzikUSHt1U9q/TeymVBJwodaglc= +github.com/goccy/go-yaml v1.13.9/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= @@ -784,8 +776,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= -github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= From f0965d6d0323dcc4e21a2b8a4b6c4d1a83e9a32e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Nov 2024 08:27:43 +0800 Subject: [PATCH 042/177] build(deps): bump github.com/goccy/go-yaml from 1.13.9 to 1.14.0 (#1782) * build(deps): bump github.com/goccy/go-yaml from 1.13.9 to 1.14.0 Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.13.9 to 1.14.0. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.13.9...v1.14.0) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * feat(yaml): allow duplicate keys in strict mode Signed-off-by: yxxhero --------- Signed-off-by: dependabot[bot] Signed-off-by: yxxhero Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: yxxhero --- go.mod | 2 +- go.sum | 4 ++-- pkg/yaml/yaml.go | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0357cd6d..fc59307e 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.13.9 + github.com/goccy/go-yaml v1.14.0 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 0fa44e25..bb156b88 100644 --- a/go.sum +++ b/go.sum @@ -536,8 +536,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.13.9 h1:D/LhDa7E5HS/iYxSZzikUSHt1U9q/TeymVBJwodaglc= -github.com/goccy/go-yaml v1.13.9/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.14.0 h1:G/NDXJvf1CX0FshjxKn2AOL0MnrxsSJNpY9FpvMRblw= +github.com/goccy/go-yaml v1.14.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= diff --git a/pkg/yaml/yaml.go b/pkg/yaml/yaml.go index 08a5eb72..06054261 100644 --- a/pkg/yaml/yaml.go +++ b/pkg/yaml/yaml.go @@ -42,6 +42,8 @@ func NewDecoder(data []byte, strict bool) func(any) error { if strict { opts = append(opts, yaml.DisallowUnknownField()) } + // allow duplicate keys + opts = append(opts, yaml.AllowDuplicateMapKey()) decoder := yaml.NewDecoder( bytes.NewReader(data), From c540edd94678bd4f9d60230634ba570704e7cbf0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 14:40:32 +0800 Subject: [PATCH 043/177] build(deps): bump github.com/goccy/go-yaml from 1.14.0 to 1.14.3 (#1788) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.14.0 to 1.14.3. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.14.0...v1.14.3) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fc59307e..21a7b01e 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.14.0 + github.com/goccy/go-yaml v1.14.3 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index bb156b88..a24b25a0 100644 --- a/go.sum +++ b/go.sum @@ -536,8 +536,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.14.0 h1:G/NDXJvf1CX0FshjxKn2AOL0MnrxsSJNpY9FpvMRblw= -github.com/goccy/go-yaml v1.14.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.14.3 h1:8tVD+aqqPLWisSEhM+6wWoiURWXCx6BwaTKS6ZeITgM= +github.com/goccy/go-yaml v1.14.3/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 0b872f39cc36df3f97b0055a7aebc456c7744b97 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 19:50:17 +0800 Subject: [PATCH 044/177] build(deps): bump helm.sh/helm/v3 from 3.16.2 to 3.16.3 (#1786) Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.16.2 to 3.16.3. - [Release notes](https://github.com/helm/helm/releases) - [Commits](https://github.com/helm/helm/compare/v3.16.2...v3.16.3) --- updated-dependencies: - dependency-name: helm.sh/helm/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 11 ++++++----- go.sum | 26 ++++++++++++++++---------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 21a7b01e..86526610 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( golang.org/x/sync v0.9.0 golang.org/x/term v0.26.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.16.2 + helm.sh/helm/v3 v3.16.3 k8s.io/apimachinery v0.31.2 ) @@ -77,7 +77,7 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/itchyny/gojq v0.12.16 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/klauspost/compress v1.16.0 // indirect + github.com/klauspost/compress v1.16.7 // indirect github.com/lib/pq v1.10.9 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect @@ -138,7 +138,6 @@ require ( github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect - github.com/Microsoft/hcsshim v0.11.4 // indirect github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/alessio/shellescape v1.4.1 // indirect @@ -176,12 +175,14 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudflare/circl v1.4.0 // indirect github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect - github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/containerd v1.7.23 // indirect + github.com/containerd/errdefs v0.3.0 // indirect github.com/containerd/log v0.1.0 // indirect + github.com/containerd/platforms v0.2.1 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect github.com/cyberark/conjur-api-go v0.12.6 // indirect github.com/danieljoos/wincred v1.1.2 // indirect - github.com/distribution/reference v0.5.0 // indirect + github.com/distribution/reference v0.6.0 // indirect github.com/docker/cli v27.3.1+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect github.com/docker/docker v27.3.1+incompatible // indirect diff --git a/go.sum b/go.sum index a24b25a0..a0842254 100644 --- a/go.sum +++ b/go.sum @@ -282,8 +282,8 @@ github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= -github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/Microsoft/hcsshim v0.11.7 h1:vl/nj3Bar/CvJSYo7gIQPyRWc9f3c6IeSNavBTSZNZQ= +github.com/Microsoft/hcsshim v0.11.7/go.mod h1:MV8xMfmECjl5HdO7U/3/hFVnkmSBjAjmA09d4bExKcU= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= @@ -408,12 +408,16 @@ github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 h1:uVG5v+c6ndz github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= -github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= -github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= +github.com/containerd/containerd v1.7.23 h1:H2CClyUkmpKAGlhQp95g2WXHfLYc7whAuvZGBNYOOwQ= +github.com/containerd/containerd v1.7.23/go.mod h1:7QUzfURqZWCZV7RLNEn1XjUCQLEf0bkaK4GjUaZehxw= github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8= github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= +github.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4= +github.com/containerd/errdefs v0.3.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= +github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -434,8 +438,8 @@ github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2 h1:aBfCb7iqHmDEIp6fBvC/hQUddQfg+3qdYjwzaiP9Hnc= github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2/go.mod h1:WHNsWjnIn2V1LYOrME7e8KxSeKunYHsxEm4am0BUtcI= -github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= -github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/cli v27.3.1+incompatible h1:qEGdFBF3Xu6SCvCYhc7CzaQTlBmqDuzxPDpigSyeKQQ= github.com/docker/cli v27.3.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= @@ -763,8 +767,8 @@ github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6/go.mod h1:3VeW github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= -github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -823,6 +827,8 @@ github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -1588,8 +1594,8 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -helm.sh/helm/v3 v3.16.2 h1:Y9v7ry+ubQmi+cb5zw1Llx8OKHU9Hk9NQ/+P+LGBe2o= -helm.sh/helm/v3 v3.16.2/go.mod h1:SyTXgKBjNqi2NPsHCW5dDAsHqvGIu0kdNYNH9gQaw70= +helm.sh/helm/v3 v3.16.3 h1:kb8bSxMeRJ+knsK/ovvlaVPfdis0X3/ZhYCSFRP+YmY= +helm.sh/helm/v3 v3.16.3/go.mod h1:zeVWGDR4JJgiRbT3AnNsjYaX8OTJlIE9zC+Q7F7iUSU= 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= From 96d716ae00a0fcaf2740139a0154450c4a2d7b3f Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 18 Nov 2024 06:34:10 +0800 Subject: [PATCH 045/177] fix: update helm-diff to version 3.9.12 in CI and Dockerfiles (#1792) Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 8 ++++---- Dockerfile | 2 +- Dockerfile.debian-stable-slim | 2 +- Dockerfile.ubuntu | 2 +- pkg/app/init.go | 4 ++-- test/integration/run.sh | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8807e776..221ccf32 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -68,7 +68,7 @@ jobs: # we will mark this combination as failable, # and instruct users to upgrade helm and helm-secrets at once. plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.11 + plugin-diff-version: 3.9.12 extra-helmfile-flags: '' v1mode: '' - helm-version: v3.16.2 @@ -80,14 +80,14 @@ jobs: - helm-version: v3.16.2 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.11 + plugin-diff-version: 3.9.12 extra-helmfile-flags: '' v1mode: '' # Helmfile v1 - helm-version: v3.16.2 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.11 + plugin-diff-version: 3.9.12 extra-helmfile-flags: '' v1mode: 'true' # In case you need to test some optional helmfile features, @@ -95,7 +95,7 @@ jobs: - helm-version: v3.16.2 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.11 + plugin-diff-version: 3.9.12 extra-helmfile-flags: '--enable-live-output' v1mode: '' steps: diff --git a/Dockerfile b/Dockerfile index 20c4812d..823b4fbe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -94,7 +94,7 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.11 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.12 && \ helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index 2ecff646..b70aa769 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -99,7 +99,7 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.11 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.12 && \ helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 7dfc6a66..df02c01e 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -99,7 +99,7 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.11 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.12 && \ helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ diff --git a/pkg/app/init.go b/pkg/app/init.go index efbdf030..47d4f16f 100644 --- a/pkg/app/init.go +++ b/pkg/app/init.go @@ -18,8 +18,8 @@ import ( const ( HelmRequiredVersion = "v3.15.4" - HelmRecommendedVersion = "v3.16.2" - HelmDiffRecommendedVersion = "v3.9.11" + HelmRecommendedVersion = "v3.16.3" + HelmDiffRecommendedVersion = "v3.9.12" HelmSecretsRecommendedVersion = "v4.6.0" HelmGitRecommendedVersion = "v0.15.1" HelmS3RecommendedVersion = "v0.16.0" diff --git a/test/integration/run.sh b/test/integration/run.sh index faedd4b4..e4248cc8 100755 --- a/test/integration/run.sh +++ b/test/integration/run.sh @@ -27,7 +27,7 @@ export HELM_DATA_HOME="${helm_dir}/data" 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.9.11}" +HELM_DIFF_VERSION="${HELM_DIFF_VERSION:-3.9.12}" HELM_SECRETS_VERSION="${HELM_SECRETS_VERSION:-3.15.0}" export GNUPGHOME="${PWD}/${dir}/.gnupg" export SOPS_PGP_FP="B2D6D7BBEC03B2E66571C8C00AD18E16CFDEF700" From 0b1746bdf30be284222dc4fc7ffa21f0a4c20266 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 18 Nov 2024 06:35:51 +0800 Subject: [PATCH 046/177] build: update Helm version to v3.16.3 in CI and Dockerfiles (#1791) * build: update Helm version to v3.16.3 in CI and Dockerfiles Signed-off-by: yxxhero * fix: update Helm SHA256 checksums in Dockerfiles Signed-off-by: yxxhero --------- Signed-off-by: yxxhero Co-authored-by: Zubair Haque --- .github/workflows/ci.yaml | 8 ++++---- Dockerfile | 6 +++--- Dockerfile.debian-stable-slim | 6 +++--- Dockerfile.ubuntu | 6 +++--- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 221ccf32..5283fee3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -71,20 +71,20 @@ jobs: plugin-diff-version: 3.9.12 extra-helmfile-flags: '' v1mode: '' - - helm-version: v3.16.2 + - helm-version: v3.16.3 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' v1mode: '' - - helm-version: v3.16.2 + - helm-version: v3.16.3 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.12 extra-helmfile-flags: '' v1mode: '' # Helmfile v1 - - helm-version: v3.16.2 + - helm-version: v3.16.3 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.12 @@ -92,7 +92,7 @@ jobs: v1mode: 'true' # In case you need to test some optional helmfile features, # enable it via extra-helmfile-flags below. - - helm-version: v3.16.2 + - helm-version: v3.16.3 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.12 diff --git a/Dockerfile b/Dockerfile index 823b4fbe..036ca66c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.2" +ARG HELM_VERSION="v3.16.3" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="9318379b847e333460d33d291d4c088156299a26cd93d570a7f5d0c36e50b5bb" ;; \ - "linux/arm64") HELM_SHA256="1888301aeb7d08a03b6d9f4d2b73dcd09b89c41577e80e3455c113629fc657a4" ;; \ + "linux/amd64") HELM_SHA256="f5355c79190951eed23c5432a3b920e071f4c00a64f75e077de0dd4cb7b294ea" ;; \ + "linux/arm64") HELM_SHA256="5bd34ed774df6914b323ff84a0a156ea6ff2ba1eaf0113962fa773f3f9def798" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index b70aa769..8bbbdc94 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.2" +ARG HELM_VERSION="v3.16.3" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="9318379b847e333460d33d291d4c088156299a26cd93d570a7f5d0c36e50b5bb" ;; \ - "linux/arm64") HELM_SHA256="1888301aeb7d08a03b6d9f4d2b73dcd09b89c41577e80e3455c113629fc657a4" ;; \ + "linux/amd64") HELM_SHA256="f5355c79190951eed23c5432a3b920e071f4c00a64f75e077de0dd4cb7b294ea" ;; \ + "linux/arm64") HELM_SHA256="5bd34ed774df6914b323ff84a0a156ea6ff2ba1eaf0113962fa773f3f9def798" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index df02c01e..35de225f 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.2" +ARG HELM_VERSION="v3.16.3" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="9318379b847e333460d33d291d4c088156299a26cd93d570a7f5d0c36e50b5bb" ;; \ - "linux/arm64") HELM_SHA256="1888301aeb7d08a03b6d9f4d2b73dcd09b89c41577e80e3455c113629fc657a4" ;; \ + "linux/amd64") HELM_SHA256="f5355c79190951eed23c5432a3b920e071f4c00a64f75e077de0dd4cb7b294ea" ;; \ + "linux/arm64") HELM_SHA256="5bd34ed774df6914b323ff84a0a156ea6ff2ba1eaf0113962fa773f3f9def798" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ From 4287471accfbc88ec3794e1b434b7201b6eed9a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20=C5=81uczak?= Date: Mon, 18 Nov 2024 09:35:48 +0100 Subject: [PATCH 047/177] feat: add HELMFILE_INTERACTIVE env var to enable interactive mode (#1787) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add HELMFILE_INTERACTIVE env var to enable interactive mode This commit adds the `HELMFILE_INTERACTIVE` environment variable to enable the interactive mode by default. Anything other than `true` will disable the interactive mode. The precedence has the `--interactive` flag. Signed-off-by: Krzysztof Łuczak * Trim trailing whitespaces Signed-off-by: Krzysztof Łuczak --------- Signed-off-by: Krzysztof Łuczak --- docs/index.md | 16 ++++++++++------ pkg/config/global.go | 5 ++++- pkg/envvar/const.go | 1 + 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/docs/index.md b/docs/index.md index 74b55afd..dad9f99f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -233,7 +233,7 @@ helmDefaults: deleteWait: false # Timeout is the time in seconds to wait for helmfile destroy/delete (default 300) deleteTimeout: 300 - # suppressOutputLineRegex is a list of regex patterns to suppress output lines from helm diff (default []), available in helmfile v0.162.0 + # suppressOutputLineRegex is a list of regex patterns to suppress output lines from helm diff (default []), available in helmfile v0.162.0 suppressOutputLineRegex: - "version" @@ -349,7 +349,7 @@ releases: plainHttp: false # suppressDiff skip the helm diff output. Useful for charts which produces large not helpful diff, default: false suppressDiff: false - # suppressOutputLineRegex is a list of regex patterns to suppress output lines from helm diff (default []), available in helmfile v0.162.0 + # suppressOutputLineRegex is a list of regex patterns to suppress output lines from helm diff (default []), available in helmfile v0.162.0 suppressOutputLineRegex: - "version" @@ -542,7 +542,7 @@ Helmfile uses some OS environment variables to override default behaviour: * `HELMFILE_DISABLE_INSECURE_FEATURES` - disable insecure features, expecting `true` lower case * `HELMFILE_DISABLE_RUNNER_UNIQUE_ID` - disable unique logging ID, expecting any non-empty value * `HELMFILE_SKIP_INSECURE_TEMPLATE_FUNCTIONS` - disable insecure template functions, expecting `true` lower case -* `HELMFILE_USE_HELM_STATUS_TO_CHECK_RELEASE_EXISTENCE` - expecting non-empty value to use `helm status` to check release existence, instead of `helm list` which is the default behaviour +* `HELMFILE_USE_HELM_STATUS_TO_CHECK_RELEASE_EXISTENCE` - expecting non-empty value to use `helm status` to check release existence, instead of `helm list` which is the default behaviour * `HELMFILE_EXPERIMENTAL` - enable experimental features, expecting `true` lower case * `HELMFILE_ENVIRONMENT` - specify [Helmfile environment](https://helmfile.readthedocs.io/en/latest/#environment), it has lower priority than CLI argument `--environment` * `HELMFILE_TEMPDIR` - specify directory to store temporary files @@ -550,7 +550,8 @@ Helmfile uses some OS environment variables to override default behaviour: * `HELMFILE_V1MODE` - Helmfile v0.x behaves like v1.x with `true`, Helmfile v1.x behaves like v0.x with `false` as value * `HELMFILE_GOCCY_GOYAML` - use *goccy/go-yaml* instead of *gopkg.in/yaml.v2*. It's `false` by default in Helmfile v0.x and `true` by default for Helmfile v1.x. * `HELMFILE_CACHE_HOME` - specify directory to store cached files for remote operations -* `HELMFILE_FILE_PATH` - specify the path to the helmfile.yaml file +* `HELMFILE_FILE_PATH` - specify the path to the helmfile.yaml file +* `HELMFILE_INTERACTIVE` - enable interactive mode, expecting `true` lower case. The same as `--interactive` CLI flag ## CLI Reference @@ -920,7 +921,7 @@ releases: ``` ### Environment Values -Helmfile supports 3 values languages : +Helmfile supports 3 values languages : - Straight yaml - Go templates to generate straight yaml - HCL @@ -1008,7 +1009,7 @@ HCL values supports interpolations and sharing values across files * Helmfile hcl `values` are referenced using the `hv` accessor. * Helmfile hcl `locals` are referenced using the `local` accessor. * Duplicated variables across .hcl `values` blocks are forbidden (An error will pop up specifying where are the duplicates) -* All cty [standard library functions](`https://pkg.go.dev/github.com/zclconf/go-cty@v1.14.3/cty/function/stdlib`) are available and custom functions could be created in the future +* All cty [standard library functions](`https://pkg.go.dev/github.com/zclconf/go-cty@v1.14.3/cty/function/stdlib`) are available and custom functions could be created in the future Consider the following example : @@ -1657,6 +1658,9 @@ Use it when you're running `helmfile` manually on your local machine or a kind o For your local use-case, aliasing it like `alias hi='helmfile --interactive'` would be convenient. +Another way to use it is to set the environment variable `HELMFILE_INTERACTIVE=true` to enable the interactive mode by default. +Anything other than `true` will disable the interactive mode. The precedence has the `--interactive` flag. + ## Running Helmfile without an Internet connection Once you download all required charts into your machine, you can run `helmfile sync --skip-deps` to deploy your apps. diff --git a/pkg/config/global.go b/pkg/config/global.go index d095e618..719d2132 100644 --- a/pkg/config/global.go +++ b/pkg/config/global.go @@ -246,7 +246,10 @@ func (g *GlobalImpl) ValidateConfig() error { // Interactive returns the Interactive func (g *GlobalImpl) Interactive() bool { - return g.GlobalOptions.Interactive + if g.GlobalOptions.Interactive { + return true + } + return os.Getenv(envvar.Interactive) == "true" } // Args returns the args to use for helm diff --git a/pkg/envvar/const.go b/pkg/envvar/const.go index a40f5d43..94df7381 100644 --- a/pkg/envvar/const.go +++ b/pkg/envvar/const.go @@ -18,4 +18,5 @@ const ( V1Mode = "HELMFILE_V1MODE" GoccyGoYaml = "HELMFILE_GOCCY_GOYAML" CacheHome = "HELMFILE_CACHE_HOME" + Interactive = "HELMFILE_INTERACTIVE" ) From 52116581f90e31d5cff1b1e523ee7d69ad79dd5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Nov 2024 11:17:44 +0800 Subject: [PATCH 048/177] build(deps): bump github.com/hashicorp/hcl/v2 from 2.22.0 to 2.23.0 (#1793) Bumps [github.com/hashicorp/hcl/v2](https://github.com/hashicorp/hcl) from 2.22.0 to 2.23.0. - [Release notes](https://github.com/hashicorp/hcl/releases) - [Changelog](https://github.com/hashicorp/hcl/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/hcl/compare/v2.22.0...v2.23.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/hcl/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 86526610..c6c37833 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.6 - github.com/hashicorp/hcl/v2 v2.22.0 + github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.20.3 github.com/helmfile/vals v0.37.8 github.com/spf13/cobra v1.8.1 diff --git a/go.sum b/go.sum index a0842254..e605e3a8 100644 --- a/go.sum +++ b/go.sum @@ -719,8 +719,8 @@ github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iP github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/hcl/v2 v2.22.0 h1:hkZ3nCtqeJsDhPRFz5EA9iwcG1hNWGePOTw6oyul12M= -github.com/hashicorp/hcl/v2 v2.22.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= +github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos= +github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= github.com/hashicorp/hcp-sdk-go v0.119.0 h1:31sjlO+VcDahdVE3K/+LKMoQe3v6tC0ESPayUcWtrf4= github.com/hashicorp/hcp-sdk-go v0.119.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1DdPo= From a015b56cbf08c93f0caae8db1baffbb5bcfd2b39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Nov 2024 07:31:50 +0800 Subject: [PATCH 049/177] build(deps): bump github.com/Masterminds/semver/v3 from 3.3.0 to 3.3.1 (#1795) Bumps [github.com/Masterminds/semver/v3](https://github.com/Masterminds/semver) from 3.3.0 to 3.3.1. - [Release notes](https://github.com/Masterminds/semver/releases) - [Changelog](https://github.com/Masterminds/semver/blob/master/CHANGELOG.md) - [Commits](https://github.com/Masterminds/semver/compare/v3.3.0...v3.3.1) --- updated-dependencies: - dependency-name: github.com/Masterminds/semver/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c6c37833..f836f1e8 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.23.1 require ( dario.cat/mergo v1.0.1 - github.com/Masterminds/semver/v3 v3.3.0 + github.com/Masterminds/semver/v3 v3.3.1 github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 diff --git a/go.sum b/go.sum index e605e3a8..97b30cfd 100644 --- a/go.sum +++ b/go.sum @@ -276,8 +276,8 @@ github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0= -github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= +github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs= github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= From 9320822d16959168c9eebb78359b1e6cd173f6bb Mon Sep 17 00:00:00 2001 From: Zubair Haque Date: Thu, 21 Nov 2024 09:55:53 -0600 Subject: [PATCH 050/177] chore: update with testify/assert assertion and table driven tests for fs.go (#1794) * update with testify/assert assertion and table driven tests Signed-off-by: zhaque44 * updating test with missing scenario Signed-off-by: zhaque44 --------- Signed-off-by: zhaque44 --- pkg/filesystem/fs_test.go | 210 ++++++++++++++++++++++++++------------ 1 file changed, 146 insertions(+), 64 deletions(-) diff --git a/pkg/filesystem/fs_test.go b/pkg/filesystem/fs_test.go index 49b3af1d..94219179 100644 --- a/pkg/filesystem/fs_test.go +++ b/pkg/filesystem/fs_test.go @@ -7,6 +7,7 @@ import ( "strings" "testing" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -39,69 +40,154 @@ func NewTestFileSystem() FileSystem { } func TestFs_resolveSymlinks(t *testing.T) { + cases := []struct { + name string + symlinkPath string + expected string + expectedErr error + }{ + { + name: "existing file symlink", + symlinkPath: "../existing_file.txt", + expected: "/real/existing_file.txt", + expectedErr: nil, + }, + { + name: "missing file symlink", + symlinkPath: "../missing_file.txt", + expected: "", + expectedErr: os.ErrExist, + }, + { + name: "local existing file symlink", + symlinkPath: "./existing_file.txt", + expected: "./existing_file.txt", + expectedErr: nil, + }, + { + name: "absolute existing file symlink", + symlinkPath: "/a/b/c/existing_file.txt", + expected: "/a/b/c/existing_file.txt", + expectedErr: nil, + }, + { + name: "current directory existing file symlink", + symlinkPath: "existing_file.txt", + expected: "existing_file.txt", + expectedErr: nil, + }, + } + ffs := NewTestFileSystem() - path, err := ffs.resolveSymlinks("../existing_file.txt") - require.NoErrorf(t, err, "Expected no error but got %v", err) - require.Equalf(t, "/real/existing_file.txt", path, "Expected absolute path %s but got %s", "/real/existing_file.txt", path) - path, err = ffs.resolveSymlinks("../missing_file.txt") - require.ErrorIsf(t, err, os.ErrExist, "Expected error %v but got %v", os.ErrExist, err) - require.Equalf(t, "", path, "Expected empty path but got %s", path) - - path, err = ffs.resolveSymlinks("./existing_file.txt") - require.NoErrorf(t, err, "Expected no error but got %v", err) - require.Equalf(t, "./existing_file.txt", path, "Expected local path %s but got %s", "./existing_file.txt", path) - - path, err = ffs.resolveSymlinks("existing_file.txt") - require.NoErrorf(t, err, "Expected no error but got %v", err) - require.Equalf(t, "existing_file.txt", path, "Expected local path %s but got %s", "existing_file.txt", path) - - path, err = ffs.resolveSymlinks("/a/b/c/existing_file.txt") - - require.NoErrorf(t, err, "Expected no error but got %v", err) - require.Equalf(t, "/a/b/c/existing_file.txt", path, "Expected absolute path %s but got %s", "/a/b/c/existing_file.txt", path) + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + path, err := ffs.resolveSymlinks(c.symlinkPath) + if c.expectedErr != nil { + require.ErrorIs(t, err, c.expectedErr) + } else { + require.NoError(t, err) + } + assert.Equal(t, c.expected, path) + }) + } } func TestFs_fileExistsDefault(t *testing.T) { + cases := []struct { + name string + filePath string + expected bool + expectedErr error + }{ + { + name: "existing file", + filePath: "existing_file.txt", + expected: true, + expectedErr: nil, + }, + { + name: "missing file", + filePath: "missing_file.txt", + expected: false, + expectedErr: os.ErrExist, + }, + } + ffs := NewTestFileSystem() - exists, err := ffs.FileExists("existing_file.txt") - require.NoErrorf(t, err, "Expected no error but got %v", err) - require.Truef(t, exists, "Expected file %s, not found", "existing_file.txt") - exists, err = ffs.FileExists("missing_file.txt") - require.Falsef(t, exists, "Not expected file %s, found", "missing_file.txt") - require.ErrorIsf(t, err, os.ErrExist, "Expected error %v but got %v", os.ErrExist, err) - - dfs := DefaultFileSystem() - exists, err = dfs.FileExists("-") - require.NoErrorf(t, err, "Expected no error but got %v", err) - require.Truef(t, exists, "Expected file %s, not found", "-") + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + exists, err := ffs.FileExists(c.filePath) + if c.expectedErr != nil { + require.ErrorIs(t, err, c.expectedErr) + } else { + require.NoError(t, err) + } + assert.Equal(t, c.expected, exists) + }) + } } func TestFs_fileExistsAtDefault(t *testing.T) { + cases := []struct { + name string + filePath string + expected bool + }{ + { + name: "existing file", + filePath: "existing_file.txt", + expected: true, + }, + { + name: "missing file", + filePath: "missing_file.txt", + expected: false, + }, + { + name: "existing dir", + filePath: "existing_dir", + expected: false, + }, + } + ffs := NewTestFileSystem() - exists := ffs.FileExistsAt("existing_file.txt") - require.Truef(t, exists, "Expected file %s, not found", "existing_file.txt") - - exists = ffs.FileExistsAt("missing_file.txt") - require.Falsef(t, exists, "Not expected file %s, found", "missing_file.txt") - - exists = ffs.FileExistsAt("existing_dir") - require.Falsef(t, exists, "Not expected file %s, found", "existing_dir") - - dfs := DefaultFileSystem() - exists = dfs.FileExistsAt("-") - require.Truef(t, exists, "Expected file %s, not found", "-") + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + exists := ffs.FileExistsAt(c.filePath) + assert.Equal(t, c.expected, exists) + }) + } } func TestFs_directoryExistsDefault(t *testing.T) { - ffs := NewTestFileSystem() - exists := ffs.DirectoryExistsAt("existing_dir") - require.Truef(t, exists, "Expected file %s, not found", "existing_dir") + cases := []struct { + name string + dirPath string + expected bool + }{ + { + name: "existing dir", + dirPath: "existing_dir", + expected: true, + }, + { + name: "missing dir", + dirPath: "missing_dir", + expected: false, + }, + } - exists = ffs.DirectoryExistsAt("missing_dir") - require.Falsef(t, exists, "Not expected file %s, found", "missing_dir") + ffs := NewTestFileSystem() + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + exists := ffs.DirectoryExistsAt(c.dirPath) + assert.Equal(t, c.expected, exists) + }) + } } func TestFsTeadFile(t *testing.T) { @@ -122,6 +208,7 @@ func TestFsTeadFile(t *testing.T) { path: "-", }, } + for _, c := range cases { t.Run(c.name, func(t *testing.T) { dir := t.TempDir() @@ -129,9 +216,6 @@ func TestFsTeadFile(t *testing.T) { dfs := DefaultFileSystem() tmpfile, err := os.Create(yamlPath) - if err != nil { - t.Errorf("create file %s error: %v", yamlPath, err) - } require.NoErrorf(t, err, "create file %s error: %v", yamlPath, err) _, err = tmpfile.Write(c.content) @@ -156,18 +240,16 @@ func TestFsTeadFile(t *testing.T) { func TestFs_DefaultBuilder(t *testing.T) { ffs := DefaultFileSystem() - if ffs.ReadFile == nil || - ffs.ReadDir == nil || - ffs.DeleteFile == nil || - ffs.FileExists == nil || - ffs.Glob == nil || - ffs.FileExistsAt == nil || - ffs.DirectoryExistsAt == nil || - ffs.Stat == nil || - ffs.Getwd == nil || - ffs.Chdir == nil || - ffs.Abs == nil || - ffs.EvalSymlinks == nil { - t.Errorf("Missing functions in DefaultFileSystem") - } + assert.NotNil(t, ffs.ReadFile) + assert.NotNil(t, ffs.ReadDir) + assert.NotNil(t, ffs.DeleteFile) + assert.NotNil(t, ffs.FileExists) + assert.NotNil(t, ffs.Glob) + assert.NotNil(t, ffs.FileExistsAt) + assert.NotNil(t, ffs.DirectoryExistsAt) + assert.NotNil(t, ffs.Stat) + assert.NotNil(t, ffs.Getwd) + assert.NotNil(t, ffs.Chdir) + assert.NotNil(t, ffs.Abs) + assert.NotNil(t, ffs.EvalSymlinks) } From e718fa16b486db11eee1f57d997fa713d9f8478a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 08:01:31 +0800 Subject: [PATCH 051/177] build(deps): bump k8s.io/apimachinery from 0.31.2 to 0.31.3 (#1798) Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.31.2 to 0.31.3. - [Commits](https://github.com/kubernetes/apimachinery/compare/v0.31.2...v0.31.3) --- updated-dependencies: - dependency-name: k8s.io/apimachinery dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f836f1e8..c126ccda 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( golang.org/x/term v0.26.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.16.3 - k8s.io/apimachinery v0.31.2 + k8s.io/apimachinery v0.31.3 ) replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 diff --git a/go.sum b/go.sum index 97b30cfd..3501f864 100644 --- a/go.sum +++ b/go.sum @@ -1605,8 +1605,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= -k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= -k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= +k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/cli-runtime v0.31.1 h1:/ZmKhmZ6hNqDM+yf9s3Y4KEYakNXUn5sod2LWGGwCuk= k8s.io/cli-runtime v0.31.1/go.mod h1:pKv1cDIaq7ehWGuXQ+A//1OIF+7DI+xudXtExMCbe9U= k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= From d07b23193f125b00bdf2172a24e46b6ec4739efe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 15:33:15 +0800 Subject: [PATCH 052/177] build(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#1800) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.9.0 to 1.10.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.9.0...v1.10.0) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index c126ccda..3c537005 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/helmfile/vals v0.37.8 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 github.com/tj/assert v0.0.3 github.com/variantdev/dag v1.1.0 diff --git a/go.sum b/go.sum index 3501f864..86f2539a 100644 --- a/go.sum +++ b/go.sum @@ -946,8 +946,9 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 h1:BhIUXV2ySTLrKgh/Hnts+QTQlIbWtomXt3LMdzME0A0= github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939/go.mod h1:omGxs4/6hNjxPKUTjmaNkPzehSnNJOJN6pMEbrlYIT4= github.com/tetratelabs/wazero v1.8.1 h1:NrcgVbWfkWvVc4UtT4LRLDf91PsOzDzefMdwhLfA550= From 78c85219b908b6b4a5310759ce98b659d26eb276 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 08:08:51 +0800 Subject: [PATCH 053/177] build(deps): bump github.com/goccy/go-yaml from 1.14.3 to 1.15.0 (#1804) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.14.3 to 1.15.0. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.14.3...v1.15.0) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3c537005..342babd6 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.14.3 + github.com/goccy/go-yaml v1.15.0 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 86f2539a..713b495c 100644 --- a/go.sum +++ b/go.sum @@ -540,8 +540,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.14.3 h1:8tVD+aqqPLWisSEhM+6wWoiURWXCx6BwaTKS6ZeITgM= -github.com/goccy/go-yaml v1.14.3/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.0 h1:y5h8En94U97WFmXO0xH3rk91bESojNVmuS0v/ws//Qs= +github.com/goccy/go-yaml v1.15.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 1a3dbe4ab6287ca01e9b988680ae9336546416a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 16:50:19 -0500 Subject: [PATCH 054/177] build(deps): bump github.com/goccy/go-yaml from 1.15.0 to 1.15.1 (#1807) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.0 to 1.15.1. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.0...v1.15.1) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 342babd6..5bddf76a 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.0 + github.com/goccy/go-yaml v1.15.1 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 713b495c..bb5f0bd4 100644 --- a/go.sum +++ b/go.sum @@ -540,8 +540,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.15.0 h1:y5h8En94U97WFmXO0xH3rk91bESojNVmuS0v/ws//Qs= -github.com/goccy/go-yaml v1.15.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.1 h1:1vwC1ZjDzXyiMUKf7kKPazc6WUm4xnHGxNlzj4BIVu0= +github.com/goccy/go-yaml v1.15.1/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 188f24ade1b1e94a123a5d6ca2207fe471a24044 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 08:08:58 +0800 Subject: [PATCH 055/177] build(deps): bump github.com/zclconf/go-cty from 1.15.0 to 1.15.1 (#1806) Bumps [github.com/zclconf/go-cty](https://github.com/zclconf/go-cty) from 1.15.0 to 1.15.1. - [Release notes](https://github.com/zclconf/go-cty/releases) - [Changelog](https://github.com/zclconf/go-cty/blob/main/CHANGELOG.md) - [Commits](https://github.com/zclconf/go-cty/compare/v1.15.0...v1.15.1) --- updated-dependencies: - dependency-name: github.com/zclconf/go-cty dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5bddf76a..1af81532 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 github.com/tj/assert v0.0.3 github.com/variantdev/dag v1.1.0 - github.com/zclconf/go-cty v1.15.0 + github.com/zclconf/go-cty v1.15.1 github.com/zclconf/go-cty-yaml v1.1.0 go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 diff --git a/go.sum b/go.sum index bb5f0bd4..db5fa65f 100644 --- a/go.sum +++ b/go.sum @@ -995,8 +995,8 @@ github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1 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= -github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ= -github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty v1.15.1 h1:RgQYm4j2EvoBRXOPxhUvxPzRrGDo1eCOhHXuGfrj5S0= +github.com/zclconf/go-cty v1.15.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= github.com/zclconf/go-cty-yaml v1.1.0 h1:nP+jp0qPHv2IhUVqmQSzjvqAWcObN0KBkUl2rWBdig0= From 7317d561211fa0b915199dc4161a8600e9a4206d Mon Sep 17 00:00:00 2001 From: Dave Neeley Date: Wed, 27 Nov 2024 22:19:08 -0700 Subject: [PATCH 056/177] update example chart URL in remote-secrets doc (#1809) update example chart URL Signed-off-by: David Neeley Co-authored-by: David Neeley --- docs/remote-secrets.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/remote-secrets.md b/docs/remote-secrets.md index abef656a..0b75b8ef 100644 --- a/docs/remote-secrets.md +++ b/docs/remote-secrets.md @@ -17,8 +17,8 @@ To fetch single key from remote secret storage you can use `fetchSecretValue` te repositories: - name: stable - url: https://kubernetes-charts.storage.googleapis.com - + url: https://charts.helm.sh/stable +--- environments: default: values: From 4edfda7d981949cb77a0cf4a74b522b89df4cc25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Nov 2024 14:02:25 +0800 Subject: [PATCH 057/177] build(deps): bump github.com/goccy/go-yaml from 1.15.1 to 1.15.3 (#1811) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.1 to 1.15.3. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.1...v1.15.3) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 1af81532..b77529e3 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.1 + github.com/goccy/go-yaml v1.15.3 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index db5fa65f..42148798 100644 --- a/go.sum +++ b/go.sum @@ -540,8 +540,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.15.1 h1:1vwC1ZjDzXyiMUKf7kKPazc6WUm4xnHGxNlzj4BIVu0= -github.com/goccy/go-yaml v1.15.1/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.3 h1:wQ4UwLFkgbSazdi+i9AVmZE3vKTktlNlI2kQqXo5L+I= +github.com/goccy/go-yaml v1.15.3/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From c9173b3e52c5c9bf7be0ac6e823247600cc62bfe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 08:13:09 +0800 Subject: [PATCH 058/177] build(deps): bump github.com/goccy/go-yaml from 1.15.3 to 1.15.6 (#1812) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.3 to 1.15.6. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.3...v1.15.6) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b77529e3..e8d6e9c8 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.3 + github.com/goccy/go-yaml v1.15.6 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 42148798..1ddc380f 100644 --- a/go.sum +++ b/go.sum @@ -540,8 +540,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.15.3 h1:wQ4UwLFkgbSazdi+i9AVmZE3vKTktlNlI2kQqXo5L+I= -github.com/goccy/go-yaml v1.15.3/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.6 h1:gy5kf1yjMia3/c3wWD+u1z3lU5XlhpT8FZGaLJU9cOA= +github.com/goccy/go-yaml v1.15.6/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 8891439cdc50b36c88a37214428d27f684b5b09e Mon Sep 17 00:00:00 2001 From: Thomas Loubiou Date: Wed, 4 Dec 2024 11:51:21 +0100 Subject: [PATCH 059/177] fix: inject global values in Chartify (#1805) * fix: inject global values in Chartify Signed-off-by: Thomas Loubiou * test: add integration tests for template --values Signed-off-by: Thomas Loubiou --------- Signed-off-by: Thomas Loubiou --- pkg/app/app.go | 1 + pkg/state/state.go | 5 ++ test/integration/test-cases/chartify.sh | 10 +-- .../chartify/input/extra-values.yaml | 3 + .../chartify/output/template-values | 61 +++++++++++++++++++ 5 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 test/integration/test-cases/chartify/input/extra-values.yaml create mode 100644 test/integration/test-cases/chartify/output/template-values diff --git a/pkg/app/app.go b/pkg/app/app.go index 7d0e0e11..a99e79fa 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -250,6 +250,7 @@ func (a *App) Template(c TemplateConfigProvider) error { Concurrency: c.Concurrency(), IncludeTransitiveNeeds: c.IncludeNeeds(), Set: c.Set(), + Values: c.Values(), KubeVersion: c.KubeVersion(), }, func() { ok, errs = a.template(run, c) diff --git a/pkg/state/state.go b/pkg/state/state.go index 629372ce..6c954faf 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1127,6 +1127,7 @@ type ChartPrepareOptions struct { Concurrency int KubeVersion string Set []string + Values []string // Delete wait DeleteWait bool DeleteTimeout int @@ -1294,6 +1295,10 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre chartifyOpts.KubeVersion = st.getKubeVersion(release, opts.KubeVersion) chartifyOpts.ApiVersions = st.getApiVersions(release) + if opts.Values != nil { + chartifyOpts.ValuesFiles = append(opts.Values, chartifyOpts.ValuesFiles...) + } + // https://github.com/helmfile/helmfile/pull/867 // https://github.com/helmfile/helmfile/issues/895 var flags []string diff --git a/test/integration/test-cases/chartify.sh b/test/integration/test-cases/chartify.sh index 581e2d00..963fbbd6 100644 --- a/test/integration/test-cases/chartify.sh +++ b/test/integration/test-cases/chartify.sh @@ -12,16 +12,18 @@ fi chartify_tmp=$(mktemp -d) chartify_template_reverse=${chartify_tmp}/chartify.template.log - test_start "helmfile template with chartify" info "Comparing template/chartify" -${helmfile} -f ${chartify_case_input_dir}/${config_file} template > ${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail" +${helmfile} -f ${chartify_case_input_dir}/${config_file} template >${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail" ./dyff between -bs ${chartify_case_output_dir}/template ${chartify_template_reverse} || fail "\"helmfile template\" should be consistent" info "Comparing template/chartify with set" -${helmfile} -f ${chartify_case_input_dir}/${config_file} template --set image.tag=v2 > ${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail" +${helmfile} -f ${chartify_case_input_dir}/${config_file} template --set image.tag=v2 >${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail" ./dyff between -bs ${chartify_case_output_dir}/template-set ${chartify_template_reverse} || fail "\"helmfile template\" should be consistent" +info "Comparing template/chartify with values" +${helmfile} -f ${chartify_case_input_dir}/${config_file} template --values "./extra-values.yaml" >${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail" +./dyff between -bs ${chartify_case_output_dir}/template-values ${chartify_template_reverse} || fail "\"helmfile template\" should be consistent" -test_pass "helmfile template with chartify" \ No newline at end of file +test_pass "helmfile template with chartify" diff --git a/test/integration/test-cases/chartify/input/extra-values.yaml b/test/integration/test-cases/chartify/input/extra-values.yaml new file mode 100644 index 00000000..6c94f108 --- /dev/null +++ b/test/integration/test-cases/chartify/input/extra-values.yaml @@ -0,0 +1,3 @@ +--- +image: + tag: v3 diff --git a/test/integration/test-cases/chartify/output/template-values b/test/integration/test-cases/chartify/output/template-values new file mode 100644 index 00000000..f34afa09 --- /dev/null +++ b/test/integration/test-cases/chartify/output/template-values @@ -0,0 +1,61 @@ +--- +# Source: httpbin/templates/patched_resources.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app: httpbin + chart: httpbin-0.1.0 + heritage: Helm + release: httpbin + name: httpbin-httpbin +spec: + ports: + - name: httpbin + port: 8000 + protocol: TCP + targetPort: 8000 + selector: + app: httpbin + release: httpbin + type: LoadBalancer +--- +# Source: httpbin/templates/patched_resources.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: httpbin + chart: httpbin-0.1.0 + heritage: Helm + release: httpbin + name: httpbin-httpbin +spec: + replicas: 1 + selector: + matchLabels: + app: httpbin + strategy: + type: Recreate + template: + metadata: + labels: + app: httpbin + release: httpbin + spec: + containers: + - image: docker.io/citizenstig/httpbin:v3 + imagePullPolicy: Always + livenessProbe: + httpGet: + path: / + port: 8000 + name: httpbin + ports: + - containerPort: 8000 + readinessProbe: + httpGet: + path: / + port: 8000 + resources: {} +status: {} From 85e12c2fe94ceda68dc5183f54dabc62d9309e0d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 12:47:52 +0000 Subject: [PATCH 060/177] build(deps): bump github.com/helmfile/vals from 0.37.8 to 0.38.0 (#1814) --- go.mod | 108 ++++++++++++++------------- go.sum | 225 ++++++++++++++++++++++++++++++--------------------------- 2 files changed, 173 insertions(+), 160 deletions(-) diff --git a/go.mod b/go.mod index e8d6e9c8..c86f8a76 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/hashicorp/go-getter v1.7.6 github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.20.3 - github.com/helmfile/vals v0.37.8 + github.com/helmfile/vals v0.38.0 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.10.0 @@ -37,8 +37,8 @@ replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545 require ( cloud.google.com/go v0.116.0 // indirect - cloud.google.com/go/iam v1.2.1 // indirect - cloud.google.com/go/storage v1.46.0 // indirect + cloud.google.com/go/iam v1.2.2 // indirect + cloud.google.com/go/storage v1.47.0 // indirect filippo.io/age v1.2.0 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect @@ -59,7 +59,7 @@ require ( github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/googleapis/gax-go/v2 v2.13.0 // indirect + github.com/googleapis/gax-go/v2 v2.14.0 // indirect github.com/goware/prefixer v0.0.0-20160118172347-395022866408 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -97,76 +97,76 @@ require ( 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.30.0 // indirect - golang.org/x/oauth2 v0.23.0 // indirect + golang.org/x/net v0.31.0 // indirect + golang.org/x/oauth2 v0.24.0 // indirect golang.org/x/sys v0.27.0 // indirect - golang.org/x/text v0.19.0 // indirect - golang.org/x/time v0.7.0 // indirect - google.golang.org/api v0.204.0 // indirect - google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 // indirect - google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + golang.org/x/text v0.20.0 // indirect + golang.org/x/time v0.8.0 // indirect + google.golang.org/api v0.209.0 // indirect + google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f // indirect + google.golang.org/grpc v1.68.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/ini.v1 v1.67.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) require ( + al.essio.dev/pkg/shellescape v1.5.1 // indirect cel.dev/expr v0.16.1 // indirect - cloud.google.com/go/auth v0.10.0 // indirect + cloud.google.com/go/auth v0.10.2 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.5 // indirect cloud.google.com/go/compute/metadata v0.5.2 // indirect cloud.google.com/go/kms v1.20.1 // indirect - cloud.google.com/go/longrunning v0.6.1 // indirect - cloud.google.com/go/monitoring v1.21.1 // indirect + cloud.google.com/go/longrunning v0.6.2 // indirect + cloud.google.com/go/monitoring v1.21.2 // indirect cloud.google.com/go/secretmanager v1.14.2 // indirect github.com/1Password/connect-sdk-go v1.5.3 // indirect - github.com/1password/onepassword-sdk-go v0.1.3 // indirect + github.com/1password/onepassword-sdk-go v0.1.4 // indirect github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/AlecAivazis/survey/v2 v2.3.6 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.1.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.2.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.3.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.3.1 // indirect github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect - github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton // indirect + github.com/ProtonMail/go-crypto v1.1.3 // indirect github.com/agext/levenshtein v1.2.3 // indirect - github.com/alessio/shellescape v1.4.1 // indirect github.com/antchfx/jsonquery v1.3.6 // indirect github.com/antchfx/xpath v1.3.2 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go-v2 v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5 // indirect - github.com/aws/aws-sdk-go-v2/config v1.27.39 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.37 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.25 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 // indirect + github.com/aws/aws-sdk-go-v2 v1.32.6 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 // indirect + github.com/aws/aws-sdk-go-v2/config v1.28.6 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.47 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.42 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18 // indirect - github.com/aws/aws-sdk-go-v2/service/kms v1.36.3 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.63.3 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.23.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.31.3 // indirect - github.com/aws/smithy-go v1.21.0 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.37.7 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.70.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.7 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 // indirect + github.com/aws/smithy-go v1.22.1 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect @@ -180,8 +180,8 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/containerd/platforms v0.2.1 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect - github.com/cyberark/conjur-api-go v0.12.6 // indirect - github.com/danieljoos/wincred v1.1.2 // indirect + github.com/cyberark/conjur-api-go v0.12.7 // indirect + github.com/danieljoos/wincred v1.2.2 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/cli v27.3.1+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect @@ -190,14 +190,15 @@ require ( github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/dylibso/observe-sdk/go v0.0.0-20240819160327-2d926c5d788a // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/envoyproxy/go-control-plane v0.13.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect - github.com/extism/go-sdk v1.3.1 // indirect + github.com/extism/go-sdk v1.6.1 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe // indirect - github.com/getsops/sops/v3 v3.9.1 // indirect + github.com/getsops/sops/v3 v3.9.2 // indirect github.com/go-errors/errors v1.4.2 // indirect github.com/go-jose/go-jose/v4 v4.0.4 // indirect github.com/go-logr/logr v1.4.2 // indirect @@ -229,8 +230,9 @@ require ( github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcp-sdk-go v0.119.0 // indirect + github.com/hashicorp/hcp-sdk-go v0.125.0 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect + github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca // indirect github.com/imdario/mergo v0.3.16 // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect github.com/josharian/intern v1.0.0 // indirect @@ -264,17 +266,18 @@ require ( github.com/rivo/uniseg v0.4.7 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect + github.com/tetratelabs/wabin v0.0.0-20230304001439-f6f874872834 // indirect github.com/tetratelabs/wazero v1.8.1 // indirect github.com/tidwall/gjson v1.18.0 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect - github.com/urfave/cli v1.22.15 // indirect + github.com/urfave/cli v1.22.16 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xlab/treeprint v1.2.0 // indirect - github.com/zalando/go-keyring v0.2.3-0.20230503081219-17db2e5354bd // indirect + github.com/zalando/go-keyring v0.2.6 // indirect go.mongodb.org/mongo-driver v1.14.0 // indirect go.opentelemetry.io/contrib/detectors/gcp v1.29.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0 // indirect @@ -284,21 +287,22 @@ require ( go.opentelemetry.io/otel/sdk v1.29.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.29.0 // indirect go.opentelemetry.io/otel/trace v1.30.0 // indirect + go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.28.0 // indirect + golang.org/x/crypto v0.29.0 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f // indirect google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect 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.31.2 // indirect + k8s.io/api v0.31.3 // indirect k8s.io/cli-runtime v0.31.1 // indirect - k8s.io/client-go v0.31.2 // indirect + k8s.io/client-go v0.31.3 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect diff --git a/go.sum b/go.sum index 1ddc380f..a7e0c492 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +al.essio.dev/pkg/shellescape v1.5.1 h1:86HrALUujYS/h+GtqoB26SBEdkWfmMI6FubjXlsXyho= +al.essio.dev/pkg/shellescape v1.5.1/go.mod h1:6sIqp7X2P6mThCQ7twERpZTuigpr6KbZWtls1U8I890= c2sp.org/CCTV/age v0.0.0-20240306222714-3ec4d716e805 h1:u2qwJeEvnypw+OCPUHmoZE3IqwfuN5kgDfo5MLzpNM0= c2sp.org/CCTV/age v0.0.0-20240306222714-3ec4d716e805/go.mod h1:FomMrUJ2Lxt5jCLmZkG3FHa72zUprnhd3v/Z18Snm4w= cel.dev/expr v0.16.1 h1:NR0+oFYzR1CqLFhTAqg3ql59G9VfN8fKq1TCHJ6gq1g= @@ -50,8 +52,8 @@ cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjby cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= -cloud.google.com/go/auth v0.10.0 h1:tWlkvFAh+wwTOzXIjrwM64karR1iTBZ/GRr0S/DULYo= -cloud.google.com/go/auth v0.10.0/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= +cloud.google.com/go/auth v0.10.2 h1:oKF7rgBfSHdp/kuhXtqU/tNDr0mZqhYbEh+6SiqzkKo= +cloud.google.com/go/auth v0.10.2/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= cloud.google.com/go/auth/oauth2adapt v0.2.5 h1:2p29+dePqsCHPP1bqDJcKj4qxRyYCcbzKpFyKGt3MTk= cloud.google.com/go/auth/oauth2adapt v0.2.5/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= @@ -115,8 +117,8 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97 cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v1.2.1 h1:QFct02HRb7H12J/3utj0qf5tobFh9V4vR6h9eX5EBRU= -cloud.google.com/go/iam v1.2.1/go.mod h1:3VUIJDPpwT6p/amXRC5GY8fCCh70lxPygguVtI0Z4/g= +cloud.google.com/go/iam v1.2.2 h1:ozUSofHUGf/F4tCNy/mu9tHLTaxZFLOUiKzjcgWHGIA= +cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY= cloud.google.com/go/kms v1.20.1 h1:og29Wv59uf2FVaZlesaiDAqHFzHaoUyHI3HYp9VUHVg= cloud.google.com/go/kms v1.20.1/go.mod h1:LywpNiVCvzYNJWS9JUcGJSVTNSwPwi0vBAotzDqn2nc= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= @@ -125,16 +127,16 @@ cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaML cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= cloud.google.com/go/logging v1.12.0 h1:ex1igYcGFd4S/RZWOCU51StlIEuey5bjqwH9ZYjHibk= cloud.google.com/go/logging v1.12.0/go.mod h1:wwYBt5HlYP1InnrtYI0wtwttpVU1rifnMT7RejksUAM= -cloud.google.com/go/longrunning v0.6.1 h1:lOLTFxYpr8hcRtcwWir5ITh1PAKUD/sG2lKrTSYjyMc= -cloud.google.com/go/longrunning v0.6.1/go.mod h1:nHISoOZpBcmlwbJmiVk5oDRz0qG/ZxPynEGs1iZ79s0= +cloud.google.com/go/longrunning v0.6.2 h1:xjDfh1pQcWPEvnfjZmwjKQEcHnpz6lHjfy7Fo0MK+hc= +cloud.google.com/go/longrunning v0.6.2/go.mod h1:k/vIs83RN4bE3YCswdXC5PFfWVILjm3hpEUlSko4PiI= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= -cloud.google.com/go/monitoring v1.21.1 h1:zWtbIoBMnU5LP9A/fz8LmWMGHpk4skdfeiaa66QdFGc= -cloud.google.com/go/monitoring v1.21.1/go.mod h1:Rj++LKrlht9uBi8+Eb530dIrzG/cU/lB8mt+lbeFK1c= +cloud.google.com/go/monitoring v1.21.2 h1:FChwVtClH19E7pJ+e0xUhJPGksctZNVOk2UhMmblmdU= +cloud.google.com/go/monitoring v1.21.2/go.mod h1:hS3pXvaG8KgWTSz+dAdyzPrGUYmi2Q+WFX8g2hqVEZU= cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= @@ -187,12 +189,12 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.46.0 h1:OTXISBpFd8KaA2ClT3K3oRk8UGOcTHtrZ1bW88xKiic= -cloud.google.com/go/storage v1.46.0/go.mod h1:lM+gMAW91EfXIeMTBmixRsKL/XCxysytoAgduVikjMk= +cloud.google.com/go/storage v1.47.0 h1:ajqgt30fnOMmLfWfu1PWcb+V9Dxz6n+9WKjdNg5R4HM= +cloud.google.com/go/storage v1.47.0/go.mod h1:Ks0vP374w0PW6jOUameJbapbQKXqkjGd/OJRp2fb9IQ= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= -cloud.google.com/go/trace v1.11.1 h1:UNqdP+HYYtnm6lb91aNA5JQ0X14GnxkABGlfz2PzPew= -cloud.google.com/go/trace v1.11.1/go.mod h1:IQKNQuBzH72EGaXEodKlNJrWykGZxet2zgjtS60OtjA= +cloud.google.com/go/trace v1.11.2 h1:4ZmaBdL8Ng/ajrgKqY5jfvzqMXbrDcBsUGXOT9aqTtI= +cloud.google.com/go/trace v1.11.2/go.mod h1:bn7OwXd4pd5rFuAnTrzBuoZ4ax2XQeG3qNgYmfCy0Io= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= @@ -209,8 +211,8 @@ filippo.io/age v1.2.0 h1:vRDp7pUMaAJzXNIWJVAZnEf/Dyi4Vu4wI8S1LBzufhE= filippo.io/age v1.2.0/go.mod h1:JL9ew2lTN+Pyft4RiNGguFfOpewKwSHm5ayKD/A4004= github.com/1Password/connect-sdk-go v1.5.3 h1:KyjJ+kCKj6BwB2Y8tPM1Ixg5uIS6HsB0uWA8U38p/Uk= github.com/1Password/connect-sdk-go v1.5.3/go.mod h1:5rSymY4oIYtS4G3t0oMkGAXBeoYiukV3vkqlnEjIDJs= -github.com/1password/onepassword-sdk-go v0.1.3 h1:PP8+pydBt40Uh21tXP9bmPCPTlBc23JW5iVpOjzssw4= -github.com/1password/onepassword-sdk-go v0.1.3/go.mod h1:nZEOzWFvodClltx8G0xtcNGqzNrrcfW589Rb9T82hE8= +github.com/1password/onepassword-sdk-go v0.1.4 h1:WLSc3d8BTI0+ltlzMA5i726IxUrujnQvCjdKM2GkQO0= +github.com/1password/onepassword-sdk-go v0.1.4/go.mod h1:Wb3xGWJSzazA699hlAULC/kK5gvjxyTEP5uZNyP21Ro= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AlecAivazis/survey/v2 v2.3.6 h1:NvTuVHISgTHEHeBFqt6BHOe4Ny/NwGZr7w+F8S9ziyw= @@ -229,10 +231,10 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1. github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.0.0/go.mod h1:s1tW/At+xHqjNFvWU4G0c0Qv33KOhvbGNj0RCTQDV8s= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0 h1:LcJtQjCXJUm1s7JpUHZvu+bpgURhCatxVNbGADXniX0= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0/go.mod h1:+OgGVo0Httq7N5oayfvaLQ/Jq+2gJdqfp++Hyyl7Tws= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.1.0 h1:DRiANoJTiW6obBQe3SqZizkuV1PEgfiiGivmVocDy64= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.1.0/go.mod h1:qLIye2hwb/ZouqhpSD9Zn3SJipvpEnz1Ywl3VUk9Y0s= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.2.0 h1:TkNl6WlpHdZSMt0Zngw8y0c9ZMi3GwmYl0kKNbW9PvU= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.2.0/go.mod h1:ukmL56lWl275SgNFijuwx0Wv6n6HmzzpPWW4kMoy/wY= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.3.0 h1:7rKG7UmnrxX4N53TFhkYqjc+kVUZuw0fL8I3Fh+Ld9E= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.3.0/go.mod h1:Wjo+24QJVhhl/L7jy6w9yzFF2yDOf3cKECAa8ecf9vE= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.3.0 h1:WLUIpeyv04H0RCcQHaA4TNoyrQ39Ox7V+re+iaqzTe0= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.3.0/go.mod h1:hd8hTTIY3VmUVPRHNH7GVCHO3SHgXkJKZHReby/bnUQ= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.0 h1:eXnN9kaS8TiDwXjoie3hMRLuwdUBUMW9KRgOqB3mCaw= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.0/go.mod h1:XIpam8wumeZ5rVMuhdDQLMfIPDf1WO3IzrCRO3e3e3o= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0 h1:nVocQV40OQne5613EeLayJiRAJuKlBGy+m22qWG+WRg= @@ -257,10 +259,10 @@ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUM github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.3.1 h1:gUDtaZk8heteyfdmv+pcfHvhR9llnh7c7GMwZ8RVG04= +github.com/AzureAD/microsoft-authentication-library-for-go v1.3.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4 h1:s7/zwMi5w+KnlumDVbX1+P6mNAk5o7Wvx0VmvrQ7Bm0= github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4/go.mod h1:ipnA9Lpn5YM+FDSQZ7VWNjcuVurchInoGKm+v7O0sGs= @@ -289,8 +291,8 @@ github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDe github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton h1:ZGewsAoeSirbUS5cO8L0FMQA+iSop9xR1nmFYifDBPo= -github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-crypto v1.1.3 h1:nRBOetoydLeUb4nHajyO2bKqMLfWQ/ZPwkXqXxPxCFk= +github.com/ProtonMail/go-crypto v1.1.3/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= github.com/a8m/envsubst v1.4.2 h1:4yWIHXOLEJHQEFd4UjrWDrYeYlV7ncFWJOCBRLOZHQg= @@ -299,8 +301,6 @@ github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7l github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= 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/antchfx/jsonquery v1.3.6 h1:TaSfeAh7n6T11I74bsZ1FswreIfrbJ0X+OyLflx6mx4= github.com/antchfx/jsonquery v1.3.6/go.mod h1:fGzSGJn9Y826Qd3pC8Wx45avuUwpkePsACQJYy+58BU= github.com/antchfx/xpath v1.3.2 h1:LNjzlsSjinu3bQpw9hWMY9ocB80oLOWuQqFvO6xt51U= @@ -317,46 +317,46 @@ github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= -github.com/aws/aws-sdk-go-v2 v1.31.0 h1:3V05LbxTSItI5kUqNwhJrrrY1BAXxXt0sN0l72QmG5U= -github.com/aws/aws-sdk-go-v2 v1.31.0/go.mod h1:ztolYtaEUtdpf9Wftr31CJfLVjOnD/CVRkKOOYgF8hA= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5 h1:xDAuZTn4IMm8o1LnBZvmrL8JA1io4o3YWNXgohbf20g= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5/go.mod h1:wYSv6iDS621sEFLfKvpPE2ugjTuGlAG7iROg0hLOkfc= -github.com/aws/aws-sdk-go-v2/config v1.27.39 h1:FCylu78eTGzW1ynHcongXK9YHtoXD5AiiUqq3YfJYjU= -github.com/aws/aws-sdk-go-v2/config v1.27.39/go.mod h1:wczj2hbyskP4LjMKBEZwPRO1shXY+GsQleab+ZXT2ik= -github.com/aws/aws-sdk-go-v2/credentials v1.17.37 h1:G2aOH01yW8X373JK419THj5QVqu9vKEwxSEsGxihoW0= -github.com/aws/aws-sdk-go-v2/credentials v1.17.37/go.mod h1:0ecCjlb7htYCptRD45lXJ6aJDQac6D2NlKGpZqyTG6A= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 h1:C/d03NAmh8C4BZXhuRNboF/DqhBkBCeDiJDcaqIT5pA= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14/go.mod h1:7I0Ju7p9mCIdlrfS+JCgqcYD0VXz/N4yozsox+0o078= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.25 h1:HkpHeZMM39sGtMHVYG1buAg93vhj5d7F81y6G0OAbGc= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.25/go.mod h1:j3Vz04ZjaWA6kygOsZRpmWe4CyGqfqq2u3unDTU0QGA= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 h1:kYQ3H1u0ANr9KEKlGs/jTLrBFPo8P8NaH/w7A01NeeM= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18/go.mod h1:r506HmK5JDUh9+Mw4CfGJGSSoqIiLCndAuqXuhbv67Y= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 h1:Z7IdFUONvTcvS7YuhtVxN99v2cCoHRXOS4mTr0B/pUc= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18/go.mod h1:DkKMmksZVVyat+Y+r1dEOgJEfUeA7UngIHWeKsi0yNc= +github.com/aws/aws-sdk-go-v2 v1.32.6 h1:7BokKRgRPuGmKkFMhEg/jSul+tB9VvXhcViILtfG8b4= +github.com/aws/aws-sdk-go-v2 v1.32.6/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 h1:lL7IfaFzngfx0ZwUGOZdsFFnQ5uLvR0hWqqhyE7Q9M8= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7/go.mod h1:QraP0UcVlQJsmHfioCrveWOC1nbiWUl3ej08h4mXWoc= +github.com/aws/aws-sdk-go-v2/config v1.28.6 h1:D89IKtGrs/I3QXOLNTH93NJYtDhm8SYa9Q5CsPShmyo= +github.com/aws/aws-sdk-go-v2/config v1.28.6/go.mod h1:GDzxJ5wyyFSCoLkS+UhGB0dArhb9mI+Co4dHtoTxbko= +github.com/aws/aws-sdk-go-v2/credentials v1.17.47 h1:48bA+3/fCdi2yAwVt+3COvmatZ6jUDNkDTIsqDiMUdw= +github.com/aws/aws-sdk-go-v2/credentials v1.17.47/go.mod h1:+KdckOejLW3Ks3b0E3b5rHsr2f9yuORBum0WPnE5o5w= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21 h1:AmoU1pziydclFT/xRV+xXE/Vb8fttJCLRPv8oAkprc0= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21/go.mod h1:AjUdLYe4Tgs6kpH4Bv7uMZo7pottoyHMn4eTcIcneaY= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.42 h1:vEnk9vtjJ62OO2wOhEmgKMZgNcn1w0aF7XCiNXO5rK0= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.42/go.mod h1:GUOPbPJWRZsdt1OJ355upCrry4d3ZFgdX6rhT7gtkto= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 h1:s/fF4+yDQDoElYhfIVvSNyeCydfbuTKzhxSXDXCPasU= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25/go.mod h1:IgPfDv5jqFIzQSNbUEMoitNooSMXjRSDkhXv8jiROvU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 h1:ZntTCl5EsYnhN/IygQEUugpdwbhdkom9uHcbCftiGgA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25/go.mod h1:DBdPrgeocww+CSl1C8cEV8PN1mHMBhuCDLpXezyvWkE= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18 h1:OWYvKL53l1rbsUmW7bQyJVsYU/Ii3bbAAQIIFNbM0Tk= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18/go.mod h1:CUx0G1v3wG6l01tUB+j7Y8kclA8NSqK4ef0YG79a4cg= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 h1:QFASJGfT8wMXtuP3D5CRmMjARHv9ZmzFUMJznHDOY3w= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5/go.mod h1:QdZ3OmoIjSX+8D1OPAzPxDfjXASbBMDsz9qvtyIhtik= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20 h1:rTWjG6AvWekO2B1LHeM3ktU7MqyX9rzWQ7hgzneZW7E= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20/go.mod h1:RGW2DDpVc8hu6Y6yG8G5CHVmVOAn1oV8rNKOHRJyswg= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 h1:Xbwbmk44URTiHNx6PNo0ujDE6ERlsCKJD3u1zfnzAPg= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20/go.mod h1:oAfOFzUB14ltPZj1rWwRc3d/6OgD76R8KlvU3EqM9Fg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18 h1:eb+tFOIl9ZsUe2259/BKPeniKuz4/02zZFH/i4Nf8Rg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18/go.mod h1:GVCC2IJNJTmdlyEsSmofEy7EfJncP7DNnXDzRjJ5Keg= -github.com/aws/aws-sdk-go-v2/service/kms v1.36.3 h1:iHi6lC6LfW6SNvB2bixmlOW3WMyWFrHZCWX+P+CCxMk= -github.com/aws/aws-sdk-go-v2/service/kms v1.36.3/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= -github.com/aws/aws-sdk-go-v2/service/s3 v1.63.3 h1:3zt8qqznMuAZWDTDpcwv9Xr11M/lVj2FsRR7oYBt0OA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.63.3/go.mod h1:NLTqRLe3pUNu3nTEHI6XlHLKYmc8fbHUdMxAB6+s41Q= -github.com/aws/aws-sdk-go-v2/service/sso v1.23.3 h1:rs4JCczF805+FDv2tRhZ1NU0RB2H6ryAvsWPanAr72Y= -github.com/aws/aws-sdk-go-v2/service/sso v1.23.3/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3 h1:S7EPdMVZod8BGKQQPTBK+FcX9g7bKR7c4+HxWqHP7Vg= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= -github.com/aws/aws-sdk-go-v2/service/sts v1.31.3 h1:VzudTFrDCIDakXtemR7l6Qzt2+JYsVqo2MxBPt5k8T8= -github.com/aws/aws-sdk-go-v2/service/sts v1.31.3/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= -github.com/aws/smithy-go v1.21.0 h1:H7L8dtDRk0P1Qm6y0ji7MCYMQObJ5R9CRpyPhRUkLYA= -github.com/aws/smithy-go v1.21.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25 h1:r67ps7oHCYnflpgDy2LZU0MAQtQbYIOqNNnqGO6xQkE= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25/go.mod h1:GrGY+Q4fIokYLtjCVB/aFfCVL6hhGUFl8inD18fDalE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.6 h1:HCpPsWqmYQieU7SS6E9HXfdAMSud0pteVXieJmcpIRI= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.6/go.mod h1:ngUiVRCco++u+soRRVBIvBZxSMMvOVMXA4PJ36JLfSw= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 h1:50+XsN70RS7dwJ2CkVNXzj7U2L1HKP8nqTd3XWEXBN4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6/go.mod h1:WqgLmwY7so32kG01zD8CPTJWVWM+TzJoOVHwTg4aPug= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6 h1:BbGDtTi0T1DYlmjBiCr/le3wzhA37O8QTC5/Ab8+EXk= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6/go.mod h1:hLMJt7Q8ePgViKupeymbqI0la+t9/iYFBjxQCFwuAwI= +github.com/aws/aws-sdk-go-v2/service/kms v1.37.7 h1:dZmNIRtPUvtvUIIDVNpvtnJQ8N8Iqm7SQAxf18htZYw= +github.com/aws/aws-sdk-go-v2/service/kms v1.37.7/go.mod h1:vj8PlfJH9mnGeIzd6uMLPi5VgiqzGG7AZoe1kf1uTXM= +github.com/aws/aws-sdk-go-v2/service/s3 v1.70.0 h1:HrHFR8RoS4l4EvodRMFcJMYQ8o3UhmALn2nbInXaxZA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.70.0/go.mod h1:sT/iQz8JK3u/5gZkT+Hmr7GzVZehUMkRZpOaAwYXeGY= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.7 h1:rLnYAfXQ3YAccocshIH5mzNNwZBkBo+bP6EhIxak6Hw= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.7/go.mod h1:ZHtuQJ6t9A/+YDuxOLnbryAmITtr8UysSny3qcyvJTc= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6 h1:JnhTZR3PiYDNKlXy50/pNeix9aGMo6lLpXwJ1mw8MD4= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6/go.mod h1:URronUEGfXZN1VpdktPSD1EkAL9mfrV+2F4sjH38qOY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 h1:s4074ZO1Hk8qv65GqNXqDjmkf4HSQqJukaLuuW0TpDA= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.2/go.mod h1:mVggCnIWoM09jP71Wh+ea7+5gAp53q+49wDFs1SW5z8= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -424,10 +424,10 @@ github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t 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.12.6 h1:AmJbsyBfgdQ0TbH3D9MduqX88Mnb0O8ST9MKqDJpMHw= -github.com/cyberark/conjur-api-go v0.12.6/go.mod h1:NwX17s8cIbiM+gx7PzHGwBkFXbNIXRLHciKakVabq6Q= -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/cyberark/conjur-api-go v0.12.7 h1:LxkiEeDolVoVR96Zfr+s2NhlEdyt/sIT2oFbtcYdlhk= +github.com/cyberark/conjur-api-go v0.12.7/go.mod h1:/lZcWpHodKrwJC85J8h6R8uCvt3TknQeUZMUxSinFGU= +github.com/danieljoos/wincred v1.2.2 h1:774zMFJrqaeYCK2W57BgAem/MLi6mtSE47MB6BOJ0i0= +github.com/danieljoos/wincred v1.2.2/go.mod h1:w7w4Utbrz8lqeMbDAK0lkNJUv5sAOkFi7nd/ogr0Uh8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -460,6 +460,8 @@ github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arX 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/dylibso/observe-sdk/go v0.0.0-20240819160327-2d926c5d788a h1:UwSIFv5g5lIvbGgtf3tVwC7Ky9rmMFBp0RMs+6f6YqE= +github.com/dylibso/observe-sdk/go v0.0.0-20240819160327-2d926c5d788a/go.mod h1:C8DzXehI4zAbrdlbtOByKX6pfivJTBiV9Jjqv56Yd9Q= 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= @@ -476,8 +478,8 @@ github.com/envoyproxy/go-control-plane v0.13.0/go.mod h1:GRaKG3dwvFoTg4nj7aXdZnv github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= -github.com/extism/go-sdk v1.3.1 h1:eVpuv36b67Km/tAb7Cq6msHEW8kkdFgpZO/7fCwjuoE= -github.com/extism/go-sdk v1.3.1/go.mod h1:tPMWfCSOThie3LSTSZKbrQjRm2oAXxUUjSE4HJWjYQM= +github.com/extism/go-sdk v1.6.1 h1:gkbkG5KzYKrv8mLggw5ojg/JulXfEbLIRVhbw9Ot7S0= +github.com/extism/go-sdk v1.6.1/go.mod h1:yRolc4PvIUQ9J/BBB3QZ5EY1MtXAN2jqBGDGR3Sk54M= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= @@ -493,8 +495,8 @@ github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe h1:QKe/kmAYbndxwu91TcjHERsnMh5SgOB1x/qicvOdUJ8= github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe/go.mod h1:awFzISqLJoZLm+i9QQ4SgMNHDqljH6jWV0B36V5MrUM= -github.com/getsops/sops/v3 v3.9.1 h1:wXsqzEsUPVQPcxsvjpwpqqD3DVRe9UZKJ7LSf5rzuLA= -github.com/getsops/sops/v3 v3.9.1/go.mod h1:k3XzAfcvMI1Rfyw2tky0/RakHrdbVcUrtCGTYsmkMY8= +github.com/getsops/sops/v3 v3.9.2 h1:Cuuahc/UGu7W3+NXd+mrl+2oXGxxj/jIPsw6Ah2CbxA= +github.com/getsops/sops/v3 v3.9.2/go.mod h1:J8CMEdmPWT8gxFaNmPBSrc5NFd4uNndf8aFQwhD/ZR8= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= @@ -668,8 +670,8 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= -github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= +github.com/googleapis/gax-go/v2 v2.14.0 h1:f+jMrjBPl+DL9nI4IQzLUxMq7XrAqFYB7hBPqMNIe8o= +github.com/googleapis/gax-go/v2 v2.14.0/go.mod h1:lhBCnjdLrWRaPvLWhmc8IS24m9mr07qSYnHncrgo+zk= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= @@ -721,16 +723,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos= github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= -github.com/hashicorp/hcp-sdk-go v0.119.0 h1:31sjlO+VcDahdVE3K/+LKMoQe3v6tC0ESPayUcWtrf4= -github.com/hashicorp/hcp-sdk-go v0.119.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= +github.com/hashicorp/hcp-sdk-go v0.125.0 h1:pak7lGeNmoQTR5Dkx+CxYF6xLjn1UJ4XPg43ldyle+Y= +github.com/hashicorp/hcp-sdk-go v0.125.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1DdPo= github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= github.com/helmfile/chartify v0.20.3 h1:Mq1WzCM4ns4ozZuO6/9FQ57EUUdUHA+D+ZEdUSydgzw= github.com/helmfile/chartify v0.20.3/go.mod h1:NBmUWOt3P0gHOpXp9myofUzs0Gy/Q+R2Aos3p/a6glk= -github.com/helmfile/vals v0.37.8 h1:uimGb/RKlAH6VGovKcM16wkV7Oz7w1C+zz+omf+1vEo= -github.com/helmfile/vals v0.37.8/go.mod h1:rxVbfFSIUEwBBYXgT0bbcsB34YFAvSYPq7JMfH1owGs= +github.com/helmfile/vals v0.38.0 h1:XeqgQfBOGs3Tllo5Nlx3mcB3Je9U3sZE18BhnRYqhu8= +github.com/helmfile/vals v0.38.0/go.mod h1:g19d0aEn/BLOa9de42X3VXYMQTVs2FkJYFEfVPb4P3U= 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= @@ -739,6 +741,8 @@ github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca h1:T54Ema1DU8ngI+aef9ZhAhNGQhcRTrWxVeG07F+c/Rw= +github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -951,6 +955,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 h1:BhIUXV2ySTLrKgh/Hnts+QTQlIbWtomXt3LMdzME0A0= github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939/go.mod h1:omGxs4/6hNjxPKUTjmaNkPzehSnNJOJN6pMEbrlYIT4= +github.com/tetratelabs/wabin v0.0.0-20230304001439-f6f874872834 h1:ZF+QBjOI+tILZjBaFj3HgFonKXUcwgJ4djLb6i42S3Q= +github.com/tetratelabs/wabin v0.0.0-20230304001439-f6f874872834/go.mod h1:m9ymHTgNSEjuxvw8E7WWe4Pl4hZQHXONY8wE6dMLaRk= github.com/tetratelabs/wazero v1.8.1 h1:NrcgVbWfkWvVc4UtT4LRLDf91PsOzDzefMdwhLfA550= github.com/tetratelabs/wazero v1.8.1/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs= github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= @@ -967,8 +973,8 @@ github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVK github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/urfave/cli v1.22.15 h1:nuqt+pdC/KqswQKhETJjo7pvn/k4xMUxgW6liI7XpnM= -github.com/urfave/cli v1.22.15/go.mod h1:wSan1hmo5zeyLGBjRJbzRTNk8gwoYa2B9n4q9dmRIc0= +github.com/urfave/cli v1.22.16 h1:MH0k6uJxdwdeWQTwhSO42Pwr4YLrNLwBtg1MRgTqPdQ= +github.com/urfave/cli v1.22.16/go.mod h1:EeJR6BKodywf4zciqrdw6hpCPk68JO9z5LazXZMn5Po= github.com/variantdev/dag v1.1.0 h1:xodYlSng33KWGvIGMpKUyLcIZRXKiNUx612mZJqYrDg= github.com/variantdev/dag v1.1.0/go.mod h1:pH1TQsNSLj2uxMo9NNl9zdGy01Wtn+/2MT96BrKmVyE= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= @@ -993,8 +999,8 @@ github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMzt 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= +github.com/zalando/go-keyring v0.2.6 h1:r7Yc3+H+Ux0+M72zacZoItR3UDxeWfKTcabvkI8ua9s= +github.com/zalando/go-keyring v0.2.6/go.mod h1:2TCrxYrbUNYfNS/Kgy/LSrkSQzZ5UPVH85RwfczwvcI= github.com/zclconf/go-cty v1.15.1 h1:RgQYm4j2EvoBRXOPxhUvxPzRrGDo1eCOhHXuGfrj5S0= github.com/zclconf/go-cty v1.15.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= @@ -1020,6 +1026,8 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 h1:ZIg3ZT/ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0/go.mod h1:DQAwmETtZV00skUwgD6+0U89g80NKsJE3DCKeLLPQMI= go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 h1:WDdP9acbMYjbKIyJUhTvtzj601sVJOqgWdUxSdR/Ysc= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I= go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ= go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= @@ -1029,6 +1037,8 @@ go.opentelemetry.io/otel/sdk/metric v1.29.0/go.mod h1:6zZLdCl2fkauYoZIOn/soQIDSW go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc= go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= +go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= go.szostok.io/version v1.2.0 h1:8eMMdfsonjbibwZRLJ8TnrErY8bThFTQsZYV16mcXms= @@ -1050,8 +1060,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= -golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= +golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= +golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1141,8 +1151,8 @@ golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= +golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= 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= @@ -1168,8 +1178,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= -golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= +golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1234,7 +1244,6 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc 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= @@ -1280,13 +1289,13 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= -golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= -golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -1399,8 +1408,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.204.0 h1:3PjmQQEDkR/ENVZZwIYB4W/KzYtN8OrqnNcHWpeR8E4= -google.golang.org/api v0.204.0/go.mod h1:69y8QSoKIbL9F94bWgWAq6wGqGwyjBgi2y8rAK8zLag= +google.golang.org/api v0.209.0 h1:Ja2OXNlyRlWCWu8o+GgI4yUn/wz9h/5ZfFbKz+dQX+w= +google.golang.org/api v0.209.0/go.mod h1:I53S168Yr/PNDNMi5yPnDc0/LGRZO6o7PoEbl/HY3CM= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1509,12 +1518,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 h1:Q3nlH8iSQSRUwOskjbcSMcF2jiYMNiQYZ0c2KEJLKKU= -google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38/go.mod h1:xBI+tzfqGGN2JBeSebfKXFSdBpWVQ7sLW40PTupVRm4= -google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 h1:fVoAXEKA4+yufmbdVYv+SE73+cPZbbbe8paLsHfkK+U= -google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53/go.mod h1:riSXTwQ4+nqmPGtobMFyW5FqVAmIs0St6VPp4Ug7CE4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 h1:zciRKQ4kBpFgpfC5QQCVtnnNAcLIqweL7plyZRQHVpI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f h1:zDoHYmMzMacIdjNe+P2XiTmPsLawi/pCbSPfxt6lTfw= +google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f/go.mod h1:Q5m6g8b5KaFFzsQFIGdJkSJDGeJiybVenoYFMMa3ohI= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f h1:C1QccEa9kUwvMgEUORqQD9S17QesQijxjZ84sO82mfo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1550,8 +1559,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= -google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= +google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a h1:UIpYSuWdWHSzjwcAFRLjKcPXFZVVLXGEM23W+NWqipw= google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a/go.mod h1:9i1T9n4ZinTUZGgzENMi8MDDgbGC5mqTS75JAv6xN3A= @@ -1570,8 +1579,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1604,14 +1613,14 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh 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.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= -k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= +k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= +k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/cli-runtime v0.31.1 h1:/ZmKhmZ6hNqDM+yf9s3Y4KEYakNXUn5sod2LWGGwCuk= k8s.io/cli-runtime v0.31.1/go.mod h1:pKv1cDIaq7ehWGuXQ+A//1OIF+7DI+xudXtExMCbe9U= -k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= -k8s.io/client-go v0.31.2/go.mod h1:NPa74jSVR/+eez2dFsEIHNa+3o09vtNaWwWwb1qSxSs= +k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= +k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= From ebaf1ec9f1cccd49bae39bb0d5765493cb4168bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 14:17:03 +0000 Subject: [PATCH 061/177] build(deps): bump github.com/helmfile/chartify from 0.20.3 to 0.20.4 (#1815) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c86f8a76..6cfc164d 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.6 github.com/hashicorp/hcl/v2 v2.23.0 - github.com/helmfile/chartify v0.20.3 + github.com/helmfile/chartify v0.20.4 github.com/helmfile/vals v0.38.0 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index a7e0c492..5497fe91 100644 --- a/go.sum +++ b/go.sum @@ -729,8 +729,8 @@ github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1Dd github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= -github.com/helmfile/chartify v0.20.3 h1:Mq1WzCM4ns4ozZuO6/9FQ57EUUdUHA+D+ZEdUSydgzw= -github.com/helmfile/chartify v0.20.3/go.mod h1:NBmUWOt3P0gHOpXp9myofUzs0Gy/Q+R2Aos3p/a6glk= +github.com/helmfile/chartify v0.20.4 h1:SnFTiiJoLl+ySQEv8AuQyjpZRxRuSOXQIFEcfh0sIFM= +github.com/helmfile/chartify v0.20.4/go.mod h1:ithmjuPjAs7tlZLrr8/EMgVU0hluqsPhJldx7QlHotA= github.com/helmfile/vals v0.38.0 h1:XeqgQfBOGs3Tllo5Nlx3mcB3Je9U3sZE18BhnRYqhu8= github.com/helmfile/vals v0.38.0/go.mod h1:g19d0aEn/BLOa9de42X3VXYMQTVs2FkJYFEfVPb4P3U= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= From 370b0043580ed637ee17d80c93155e167899984d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 00:23:57 +0000 Subject: [PATCH 062/177] build(deps): bump golang.org/x/sync from 0.9.0 to 0.10.0 (#1816) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6cfc164d..58e7c37c 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/zclconf/go-cty-yaml v1.1.0 go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.9.0 + golang.org/x/sync v0.10.0 golang.org/x/term v0.26.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.16.3 diff --git a/go.sum b/go.sum index 5497fe91..6d56b195 100644 --- a/go.sum +++ b/go.sum @@ -1194,8 +1194,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 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= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= From 89ab95fb1439a7d8832056973d19f6ab5af34b07 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 13:15:44 -0500 Subject: [PATCH 063/177] build(deps): bump github.com/goccy/go-yaml from 1.15.6 to 1.15.7 (#1818) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.6 to 1.15.7. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.6...v1.15.7) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 58e7c37c..348e33fa 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.6 + github.com/goccy/go-yaml v1.15.7 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 6d56b195..9448c418 100644 --- a/go.sum +++ b/go.sum @@ -542,8 +542,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.15.6 h1:gy5kf1yjMia3/c3wWD+u1z3lU5XlhpT8FZGaLJU9cOA= -github.com/goccy/go-yaml v1.15.6/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.7 h1:L7XuKpd/A66X4w/dlk08lVfiIADdy79a1AzRoIefC98= +github.com/goccy/go-yaml v1.15.7/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 1b4d778009684385022a16976086f48e890fbbf7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2024 07:51:23 +0800 Subject: [PATCH 064/177] build(deps): bump golang.org/x/term from 0.26.0 to 0.27.0 (#1817) Bumps [golang.org/x/term](https://github.com/golang/term) from 0.26.0 to 0.27.0. - [Commits](https://github.com/golang/term/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 348e33fa..aad6ec54 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.10.0 - golang.org/x/term v0.26.0 + golang.org/x/term v0.27.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.16.3 k8s.io/apimachinery v0.31.3 @@ -99,7 +99,7 @@ require ( go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/api v0.209.0 // indirect diff --git a/go.sum b/go.sum index 9448c418..e3346bd8 100644 --- a/go.sum +++ b/go.sum @@ -1268,16 +1268,16 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.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.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.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= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= -golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= 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= From b1f827394c99862600f9816e9d34c329b67b9e10 Mon Sep 17 00:00:00 2001 From: "Aya (Igarashi) Ozawa" Date: Mon, 9 Dec 2024 18:16:32 +0900 Subject: [PATCH 065/177] chore(doc): fix the indent of the selector usage sample yaml (#1819) Signed-off-by: Aya Igarashi --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index dad9f99f..a8c5a93e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1347,7 +1347,7 @@ helmfiles: - name=prometheus - tier=frontend - path: apps/b-helmfile.yaml # no selector, so all releases are used -selectors: [] + selectors: [] - path: apps/c-helmfile.yaml # parent selector to be used or cli selector for the initial helmfile selectorsInherited: true ``` From bd12fa1cc322491f6a1ef6a1c524b87848c84c58 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 9 Dec 2024 23:37:56 +0800 Subject: [PATCH 066/177] feat(state): add support for setString in ReleaseSpec and HelmState (#1821) * feat(state): add support for setString in ReleaseSpec and HelmState Signed-off-by: yxxhero * docs: add setString section to index.md for helm configuration Signed-off-by: yxxhero * tests: fix more tests Signed-off-by: yxxhero --------- Signed-off-by: yxxhero --- docs/index.md | 10 +++++ pkg/app/app_test.go | 77 ++++++++++++++++++++++++++++++++++++ pkg/state/state.go | 52 ++++++++++++++++++++---- pkg/state/state_exec_tmpl.go | 2 + pkg/state/temp_test.go | 12 +++--- 5 files changed, 140 insertions(+), 13 deletions(-) diff --git a/docs/index.md b/docs/index.md index a8c5a93e..fdc0fef1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -282,6 +282,16 @@ releases: domain: {{ requiredEnv "PLATFORM_ID" }}.my-domain.com scheme: {{ env "SCHEME" | default "https" }} # Use `values` whenever possible! + # `setString` translates to helm's `--set-string key=val` + setString: + # set a single array value in an array, translates to --set-string bar[0]={1,2} + - name: bar[0] + values: + - 1 + - 2 + # set a templated value + - name: namespace + value: {{ .Namespace }} # `set` translates to helm's `--set key=val`, that is known to suffer from type issues like https://github.com/roboll/helmfile/issues/608 set: # single value loaded from a local file, translates to --set-file foo.config=path/to/file diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index f6094f79..21860443 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -4006,6 +4006,73 @@ myrelease4 testNamespace true true id:myrelease1 mychart1 assert.Equal(t, expected, out) } +func testSetStringValuesTemplate(t *testing.T, goccyGoYaml bool) { + t.Helper() + + v := runtime.GoccyGoYaml + runtime.GoccyGoYaml = goccyGoYaml + t.Cleanup(func() { + runtime.GoccyGoYaml = v + }) + + files := map[string]string{ + "/path/to/helmfile.yaml": ` +releases: +- name: zipkin + chart: stable/zipkin + values: + - val2: "val2" + valuesTemplate: + - val1: '{{"{{ .Release.Name }}"}}' + setString: + - name: "name" + value: "val" +`, + } + expectedValues := []any{ + map[string]any{"val1": "zipkin"}, + map[string]any{"val2": "val2"}} + expectedSetValues := []state.SetValue{ + {Name: "name", Value: "val"}} + + app := appWithFs(&App{ + OverrideHelmBinary: DefaultHelmBinary, + OverrideKubeContext: "default", + Logger: newAppTestLogger(), + Env: "default", + FileOrDir: "helmfile.yaml", + }, files) + + expectNoCallsToHelm(app) + + var specs []state.ReleaseSpec + collectReleases := func(run *Run) (bool, []error) { + specs = append(specs, run.state.Releases...) + return false, nil + } + + err := app.ForEachState( + collectReleases, + false, + SetFilter(true), + ) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + if len(specs) != 1 { + t.Fatalf("expected 1 release; got %d releases", len(specs)) + } + actualValues := specs[0].Values + actualSetStringValues := specs[0].SetStringValues + + if !reflect.DeepEqual(expectedValues, actualValues) { + t.Errorf("expected values: %v; got values: %v", expectedValues, actualValues) + } + if !reflect.DeepEqual(expectedSetValues, actualSetStringValues) { + t.Errorf("expected set-string: %v; got set: %v", expectedValues, actualValues) + } +} func testSetValuesTemplate(t *testing.T, goccyGoYaml bool) { t.Helper() @@ -4089,6 +4156,16 @@ func TestSetValuesTemplate(t *testing.T) { }) } +func TestSetStringValuesTemplate(t *testing.T) { + t.Run("with goccy/go-yaml", func(t *testing.T) { + testSetStringValuesTemplate(t, true) + }) + + t.Run("with gopkg.in/yaml.v2", func(t *testing.T) { + testSetStringValuesTemplate(t, false) + }) +} + func location() string { _, fn, line, _ := goruntime.Caller(1) return fmt.Sprintf("%s:%d", filepath.Base(fn), line) diff --git a/pkg/state/state.go b/pkg/state/state.go index 6c954faf..61ac599b 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -309,13 +309,14 @@ type ReleaseSpec struct { Hooks []event.Hook `yaml:"hooks,omitempty"` // Name is the name of this release - Name string `yaml:"name,omitempty"` - Namespace string `yaml:"namespace,omitempty"` - Labels map[string]string `yaml:"labels,omitempty"` - Values []any `yaml:"values,omitempty"` - Secrets []any `yaml:"secrets,omitempty"` - SetValues []SetValue `yaml:"set,omitempty"` - duration time.Duration + Name string `yaml:"name,omitempty"` + Namespace string `yaml:"namespace,omitempty"` + Labels map[string]string `yaml:"labels,omitempty"` + Values []any `yaml:"values,omitempty"` + Secrets []any `yaml:"secrets,omitempty"` + SetValues []SetValue `yaml:"set,omitempty"` + SetStringValues []SetValue `yaml:"setString,omitempty"` + duration time.Duration ValuesTemplate []any `yaml:"valuesTemplate,omitempty"` SetValuesTemplate []SetValue `yaml:"setTemplate,omitempty"` @@ -3341,6 +3342,15 @@ func (st *HelmState) namespaceAndValuesFlags(helm helmexec.Interface, release *R flags = append(flags, setFlags...) } + if len(release.SetStringValues) > 0 { + setStringFlags, err := st.setStringFlags(release.SetStringValues) + if err != nil { + return nil, files, fmt.Errorf("Failed to render set string value entry in %s for release %s: %v", st.FilePath, release.Name, err) + } + + flags = append(flags, setStringFlags...) + } + /*********** * START 'env' section for backwards compatibility ***********/ @@ -3400,6 +3410,34 @@ func (st *HelmState) setFlags(setValues []SetValue) ([]string, error) { return flags, nil } +// setStringFlags is to generate the set-string flags for helm +func (st *HelmState) setStringFlags(setValues []SetValue) ([]string, error) { + var flags []string + + for _, set := range setValues { + if set.Value != "" { + renderedValue, err := renderValsSecrets(st.valsRuntime, set.Value) + if err != nil { + return nil, err + } + flags = append(flags, "--set-string", fmt.Sprintf("%s=%s", escape(set.Name), escape(renderedValue[0]))) + } else if len(set.Values) > 0 { + renderedValues, err := renderValsSecrets(st.valsRuntime, set.Values...) + if err != nil { + return nil, err + } + items := make([]string, len(renderedValues)) + for i, raw := range renderedValues { + items[i] = escape(raw) + } + v := strings.Join(items, ",") + flags = append(flags, "--set-string", fmt.Sprintf("%s={%s}", escape(set.Name), v)) + } + } + + return flags, nil +} + // renderValsSecrets helper function which renders 'ref+.*' secrets func renderValsSecrets(e vals.Evaluator, input ...string) ([]string, error) { output := make([]string, len(input)) diff --git a/pkg/state/state_exec_tmpl.go b/pkg/state/state_exec_tmpl.go index f4ec6dce..23684d4b 100644 --- a/pkg/state/state_exec_tmpl.go +++ b/pkg/state/state_exec_tmpl.go @@ -199,6 +199,8 @@ func (st *HelmState) releaseWithInheritedTemplate(r *ReleaseSpec, inheritancePat src.SetValuesTemplate = nil case "set": src.SetValues = nil + case "setString": + src.SetStringValues = nil case "secrets": src.Secrets = nil default: diff --git a/pkg/state/temp_test.go b/pkg/state/temp_test.go index 1fb59c3a..cc6769be 100644 --- a/pkg/state/temp_test.go +++ b/pkg/state/temp_test.go @@ -38,39 +38,39 @@ func TestGenerateID(t *testing.T) { run(testcase{ subject: "baseline", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, - want: "foo-values-5db58595d7", + want: "foo-values-5b58697694", }) run(testcase{ subject: "different bytes content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: []byte(`{"k":"v"}`), - want: "foo-values-78d88d86dd", + want: "foo-values-58bff47d77", }) run(testcase{ subject: "different map content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: map[string]any{"k": "v"}, - want: "foo-values-f9c8967cd", + want: "foo-values-5fb8948f75", }) run(testcase{ subject: "different chart", release: ReleaseSpec{Name: "foo", Chart: "stable/envoy"}, - want: "foo-values-cdfb97444", + want: "foo-values-784b76684f", }) run(testcase{ subject: "different name", release: ReleaseSpec{Name: "bar", Chart: "incubator/raw"}, - want: "bar-values-749bc4c6d4", + want: "bar-values-f48df5f49", }) run(testcase{ subject: "specific ns", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw", Namespace: "myns"}, - want: "myns-foo-values-7b74fbd6d6", + want: "myns-foo-values-6b68696b8c", }) for id, n := range ids { From 3ad8e639728a25dfed1a0ce13c29e75312f1d6af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 06:54:29 +0800 Subject: [PATCH 067/177] build(deps): bump github.com/goccy/go-yaml from 1.15.7 to 1.15.8 (#1822) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index aad6ec54..94345605 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.7 + github.com/goccy/go-yaml v1.15.8 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index e3346bd8..cd06556c 100644 --- a/go.sum +++ b/go.sum @@ -542,8 +542,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.15.7 h1:L7XuKpd/A66X4w/dlk08lVfiIADdy79a1AzRoIefC98= -github.com/goccy/go-yaml v1.15.7/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.8 h1:0UhHxTWCcHQh4lZPIOdKY0ENpuBTAnx4n0L07VnbFag= +github.com/goccy/go-yaml v1.15.8/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From f99c9c0ec404e095b4a7da14ba83f8d0f034d048 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Tue, 10 Dec 2024 08:41:55 +0800 Subject: [PATCH 068/177] test(state): add TestHelmState_setStringFlags for setStringFlags method (#1823) Signed-off-by: yxxhero --- pkg/state/state_test.go | 60 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/pkg/state/state_test.go b/pkg/state/state_test.go index a7d1b62b..c0262e61 100644 --- a/pkg/state/state_test.go +++ b/pkg/state/state_test.go @@ -4203,3 +4203,63 @@ func TestAppendVerifyFlags(t *testing.T) { }) } } + +// TestHelmState_setStringFlags tests the setStringFlags method +func TestHelmState_setStringFlags(t *testing.T) { + tests := []struct { + name string + setStringValues []SetValue + want []string + wantErr bool + }{ + { + name: "single value", + setStringValues: []SetValue{ + { + Name: "key", + Value: "value", + }, + }, + want: []string{"--set-string", "key=value"}, + wantErr: false, + }, + { + name: "multiple values", + setStringValues: []SetValue{ + { + Name: "key", + Values: []string{"value1", "value2"}, + }, + }, + want: []string{"--set-string", "key={value1,value2}"}, + wantErr: false, + }, + { + name: "rendered value error", + setStringValues: []SetValue{ + { + Name: "key", + Value: "ref+echo://value", + }, + }, + want: []string{"--set-string", "key=value"}, + wantErr: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + st := &HelmState{ + valsRuntime: valsRuntime, + } + got, err := st.setStringFlags(tt.setStringValues) + if (err != nil) != tt.wantErr { + t.Errorf("setStringFlags() error = %v, wantErr %v", err, tt.wantErr) + return + } + if !reflect.DeepEqual(got, tt.want) { + t.Errorf("setStringFlags() got = %v, want %v", got, tt.want) + } + }) + } +} From 74f14cee9f859cc2b154df171b0782b03d3e40eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:07:38 +0000 Subject: [PATCH 069/177] build(deps): bump k8s.io/apimachinery from 0.31.3 to 0.31.4 (#1826) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 94345605..00ffaacc 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( golang.org/x/term v0.27.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.16.3 - k8s.io/apimachinery v0.31.3 + k8s.io/apimachinery v0.31.4 ) replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 diff --git a/go.sum b/go.sum index cd06556c..ad6e307e 100644 --- a/go.sum +++ b/go.sum @@ -1615,8 +1615,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= -k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= -k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/apimachinery v0.31.4 h1:8xjE2C4CzhYVm9DGf60yohpNUh5AEBnPxCryPBECmlM= +k8s.io/apimachinery v0.31.4/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/cli-runtime v0.31.1 h1:/ZmKhmZ6hNqDM+yf9s3Y4KEYakNXUn5sod2LWGGwCuk= k8s.io/cli-runtime v0.31.1/go.mod h1:pKv1cDIaq7ehWGuXQ+A//1OIF+7DI+xudXtExMCbe9U= k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= From b733c8ff1635af852f694cbc2a9eee58af182ca3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 01:05:36 +0000 Subject: [PATCH 070/177] build(deps): bump golang.org/x/crypto from 0.29.0 to 0.31.0 (#1828) --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 00ffaacc..cc11395d 100644 --- a/go.mod +++ b/go.mod @@ -100,7 +100,7 @@ require ( golang.org/x/net v0.31.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/api v0.209.0 // indirect google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f // indirect @@ -290,7 +290,7 @@ require ( go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.29.0 // indirect + golang.org/x/crypto v0.31.0 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/tools v0.22.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/go.sum b/go.sum index ad6e307e..34575c8a 100644 --- a/go.sum +++ b/go.sum @@ -1060,8 +1060,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1289,8 +1289,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From 68e22db3e184962a143b3144e1eb568126c7f59f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 07:54:27 +0800 Subject: [PATCH 071/177] build(deps): bump github.com/goccy/go-yaml from 1.15.8 to 1.15.9 (#1831) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.8 to 1.15.9. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.8...v1.15.9) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index cc11395d..46f7e43f 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.8 + github.com/goccy/go-yaml v1.15.9 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 34575c8a..f1798583 100644 --- a/go.sum +++ b/go.sum @@ -542,8 +542,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.15.8 h1:0UhHxTWCcHQh4lZPIOdKY0ENpuBTAnx4n0L07VnbFag= -github.com/goccy/go-yaml v1.15.8/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.9 h1:500CYajdgpK4Smqrf86u7VMZuj/bFt2ghdff9D/nQYc= +github.com/goccy/go-yaml v1.15.9/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 3d97ed058660b097e1768934bb281acb20750ecd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 07:54:51 +0800 Subject: [PATCH 072/177] build(deps): bump k8s.io/apimachinery from 0.31.4 to 0.32.0 (#1830) Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.31.4 to 0.32.0. - [Commits](https://github.com/kubernetes/apimachinery/compare/v0.31.4...v0.32.0) --- updated-dependencies: - dependency-name: k8s.io/apimachinery dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 14 +++++++------- go.sum | 40 ++++++++++++++++++++-------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 46f7e43f..7715e8e3 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( golang.org/x/term v0.27.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.16.3 - k8s.io/apimachinery v0.31.4 + k8s.io/apimachinery v0.32.0 ) replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 @@ -107,7 +107,7 @@ require ( google.golang.org/grpc v1.68.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/ini.v1 v1.67.0 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) @@ -291,8 +291,8 @@ require ( go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.31.0 // indirect - golang.org/x/mod v0.18.0 // indirect - golang.org/x/tools v0.22.0 // indirect + golang.org/x/mod v0.21.0 // indirect + golang.org/x/tools v0.26.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f // indirect google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a // indirect @@ -304,10 +304,10 @@ require ( k8s.io/cli-runtime v0.31.1 // indirect k8s.io/client-go v0.31.3 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect - k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect + k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect + k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect oras.land/oras-go v1.2.5 // indirect sigs.k8s.io/kustomize/api v0.17.3 // indirect sigs.k8s.io/kustomize/kyaml v0.17.2 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect ) diff --git a/go.sum b/go.sum index f1798583..8c225918 100644 --- a/go.sum +++ b/go.sum @@ -645,8 +645,8 @@ github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= -github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= @@ -851,10 +851,10 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= -github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= +github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= +github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= +github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -1098,8 +1098,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= -golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= +golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1350,8 +1350,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 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.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= +golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= 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= @@ -1615,30 +1615,30 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= -k8s.io/apimachinery v0.31.4 h1:8xjE2C4CzhYVm9DGf60yohpNUh5AEBnPxCryPBECmlM= -k8s.io/apimachinery v0.31.4/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg= +k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= k8s.io/cli-runtime v0.31.1 h1:/ZmKhmZ6hNqDM+yf9s3Y4KEYakNXUn5sod2LWGGwCuk= k8s.io/cli-runtime v0.31.1/go.mod h1:pKv1cDIaq7ehWGuXQ+A//1OIF+7DI+xudXtExMCbe9U= k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= +k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= +k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= +k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= oras.land/oras-go v1.2.5 h1:XpYuAwAb0DfQsunIyMfeET92emK8km3W4yEzZvUbsTo= oras.land/oras-go v1.2.5/go.mod h1:PuAwRShRZCsZb7g8Ar3jKKQR/2A/qN+pkYxIOd/FAoo= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= +sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= sigs.k8s.io/kustomize/api v0.17.3 h1:6GCuHSsxq7fN5yhF2XrC+AAr8gxQwhexgHflOAD/JJU= sigs.k8s.io/kustomize/api v0.17.3/go.mod h1:TuDH4mdx7jTfK61SQ/j1QZM/QWR+5rmEiNjvYlhzFhc= sigs.k8s.io/kustomize/kyaml v0.17.2 h1:+AzvoJUY0kq4QAhH/ydPHHMRLijtUKiyVyh7fOSshr0= sigs.k8s.io/kustomize/kyaml v0.17.2/go.mod h1:9V0mCjIEYjlXuCdYsSXvyoy2BTsLESH7TlGV81S282U= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA= +sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= From d383a0fcb6c2a3db0c9ded64e0488200956c13ac Mon Sep 17 00:00:00 2001 From: Zubair Haque Date: Sun, 15 Dec 2024 18:49:47 -0600 Subject: [PATCH 073/177] feat: updating sops version to 3.9.2 (#1834) updating sops version to 3.9.2 Signed-off-by: zhaque44 --- .github/workflows/Makefile | 2 +- Dockerfile | 2 +- Dockerfile.debian-stable-slim | 2 +- Dockerfile.ubuntu | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/Makefile b/.github/workflows/Makefile index f5742d11..5bfb356e 100644 --- a/.github/workflows/Makefile +++ b/.github/workflows/Makefile @@ -2,7 +2,7 @@ HELM_VERSION ?= v3.7.2 KUSTOMIZE_VERSION ?= v5.4.3 K8S_VERSION ?= v1.28.11 MINIKUBE_VERSION ?= v1.31.1 -SOPS_VERSION ?= v3.9.1 +SOPS_VERSION ?= v3.9.2 # --- CHANGE_MINIKUBE_NONE_USER ?= true diff --git a/Dockerfile b/Dockerfile index 036ca66c..0a65d684 100644 --- a/Dockerfile +++ b/Dockerfile @@ -77,7 +77,7 @@ RUN set -x && \ rm "${KUSTOMIZE_FILENAME}" && \ [ "$(kustomize version)" = "${KUSTOMIZE_VERSION}" ] -ENV SOPS_VERSION="v3.9.1" +ENV SOPS_VERSION="v3.9.2" ARG SOPS_FILENAME="sops-${SOPS_VERSION}.${TARGETOS}.${TARGETARCH}" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/getsops/sops/releases/download/${SOPS_VERSION}/${SOPS_FILENAME}" && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index 8bbbdc94..1a8ce62d 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -82,7 +82,7 @@ RUN set -x && \ rm "${KUSTOMIZE_FILENAME}" && \ [ "$(kustomize version)" = "${KUSTOMIZE_VERSION}" ] -ENV SOPS_VERSION="v3.9.1" +ENV SOPS_VERSION="v3.9.2" ARG SOPS_FILENAME="sops-${SOPS_VERSION}.${TARGETOS}.${TARGETARCH}" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/getsops/sops/releases/download/${SOPS_VERSION}/${SOPS_FILENAME}" && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 35de225f..598bad74 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -82,7 +82,7 @@ RUN set -x && \ rm "${KUSTOMIZE_FILENAME}" && \ [ "$(kustomize version)" = "${KUSTOMIZE_VERSION}" ] -ENV SOPS_VERSION="v3.9.1" +ENV SOPS_VERSION="v3.9.2" ARG SOPS_FILENAME="sops-${SOPS_VERSION}.${TARGETOS}.${TARGETARCH}" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/getsops/sops/releases/download/${SOPS_VERSION}/${SOPS_FILENAME}" && \ From 5a2ad23608be59c8da97afc14c535c9259471ec6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Dec 2024 07:24:30 +0800 Subject: [PATCH 074/177] build(deps): bump github.com/goccy/go-yaml from 1.15.9 to 1.15.10 (#1835) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.9 to 1.15.10. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.9...v1.15.10) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7715e8e3..d04ef527 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.9 + github.com/goccy/go-yaml v1.15.10 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 8c225918..32130953 100644 --- a/go.sum +++ b/go.sum @@ -542,8 +542,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.15.9 h1:500CYajdgpK4Smqrf86u7VMZuj/bFt2ghdff9D/nQYc= -github.com/goccy/go-yaml v1.15.9/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.10 h1:9exV2CDYm/FWHPptIIgcDiPQS+X/4uTR+HEl+GF9xJU= +github.com/goccy/go-yaml v1.15.10/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 4a54201136107b33c6da327eb1f58e5437618bb3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 07:40:41 +0800 Subject: [PATCH 075/177] build(deps): bump helm.sh/helm/v3 from 3.16.3 to 3.16.4 (#1836) Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.16.3 to 3.16.4. - [Release notes](https://github.com/helm/helm/releases) - [Commits](https://github.com/helm/helm/compare/v3.16.3...v3.16.4) --- updated-dependencies: - dependency-name: helm.sh/helm/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index d04ef527..c1c2d789 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( golang.org/x/sync v0.10.0 golang.org/x/term v0.27.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.16.3 + helm.sh/helm/v3 v3.16.4 k8s.io/apimachinery v0.32.0 ) @@ -301,7 +301,7 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/api v0.31.3 // indirect - k8s.io/cli-runtime v0.31.1 // indirect + k8s.io/cli-runtime v0.31.3 // indirect k8s.io/client-go v0.31.3 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect diff --git a/go.sum b/go.sum index 32130953..3bc59640 100644 --- a/go.sum +++ b/go.sum @@ -1604,8 +1604,8 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -helm.sh/helm/v3 v3.16.3 h1:kb8bSxMeRJ+knsK/ovvlaVPfdis0X3/ZhYCSFRP+YmY= -helm.sh/helm/v3 v3.16.3/go.mod h1:zeVWGDR4JJgiRbT3AnNsjYaX8OTJlIE9zC+Q7F7iUSU= +helm.sh/helm/v3 v3.16.4 h1:rBn/h9MACw+QlhxQTjpl8Ifx+VTWaYsw3rguGBYBzr0= +helm.sh/helm/v3 v3.16.4/go.mod h1:k8QPotUt57wWbi90w3LNmg3/MWcLPigVv+0/X4B8BzA= 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= @@ -1617,8 +1617,8 @@ k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg= k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/cli-runtime v0.31.1 h1:/ZmKhmZ6hNqDM+yf9s3Y4KEYakNXUn5sod2LWGGwCuk= -k8s.io/cli-runtime v0.31.1/go.mod h1:pKv1cDIaq7ehWGuXQ+A//1OIF+7DI+xudXtExMCbe9U= +k8s.io/cli-runtime v0.31.3 h1:fEQD9Xokir78y7pVK/fCJN090/iYNrLHpFbGU4ul9TI= +k8s.io/cli-runtime v0.31.3/go.mod h1:Q2jkyTpl+f6AtodQvgDI8io3jrfr+Z0LyQBPJJ2Btq8= k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= From 53f25a1fd3f50737565a8e6d67d1f0fcec02d42c Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Wed, 18 Dec 2024 15:50:35 +0800 Subject: [PATCH 076/177] build: update Helm version to v3.16.4 in CI and Dockerfiles (#1837) Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 8 ++++---- Dockerfile | 6 +++--- Dockerfile.debian-stable-slim | 6 +++--- Dockerfile.ubuntu | 6 +++--- pkg/app/init.go | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5283fee3..6c9c64fa 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -71,20 +71,20 @@ jobs: plugin-diff-version: 3.9.12 extra-helmfile-flags: '' v1mode: '' - - helm-version: v3.16.3 + - helm-version: v3.16.4 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' v1mode: '' - - helm-version: v3.16.3 + - helm-version: v3.16.4 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.12 extra-helmfile-flags: '' v1mode: '' # Helmfile v1 - - helm-version: v3.16.3 + - helm-version: v3.16.4 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.12 @@ -92,7 +92,7 @@ jobs: v1mode: 'true' # In case you need to test some optional helmfile features, # enable it via extra-helmfile-flags below. - - helm-version: v3.16.3 + - helm-version: v3.16.4 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.12 diff --git a/Dockerfile b/Dockerfile index 0a65d684..3e766912 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.3" +ARG HELM_VERSION="v3.16.4" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="f5355c79190951eed23c5432a3b920e071f4c00a64f75e077de0dd4cb7b294ea" ;; \ - "linux/arm64") HELM_SHA256="5bd34ed774df6914b323ff84a0a156ea6ff2ba1eaf0113962fa773f3f9def798" ;; \ + "linux/amd64") HELM_SHA256="fc307327959aa38ed8f9f7e66d45492bb022a66c3e5da6063958254b9767d179" ;; \ + "linux/arm64") HELM_SHA256="d3f8f15b3d9ec8c8678fbf3280c3e5902efabe5912e2f9fcf29107efbc8ead69" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index 1a8ce62d..e0dd6f58 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.3" +ARG HELM_VERSION="v3.16.4" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="f5355c79190951eed23c5432a3b920e071f4c00a64f75e077de0dd4cb7b294ea" ;; \ - "linux/arm64") HELM_SHA256="5bd34ed774df6914b323ff84a0a156ea6ff2ba1eaf0113962fa773f3f9def798" ;; \ + "linux/amd64") HELM_SHA256="fc307327959aa38ed8f9f7e66d45492bb022a66c3e5da6063958254b9767d179" ;; \ + "linux/arm64") HELM_SHA256="d3f8f15b3d9ec8c8678fbf3280c3e5902efabe5912e2f9fcf29107efbc8ead69" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 598bad74..c1a16b5a 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.3" +ARG HELM_VERSION="v3.16.4" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="f5355c79190951eed23c5432a3b920e071f4c00a64f75e077de0dd4cb7b294ea" ;; \ - "linux/arm64") HELM_SHA256="5bd34ed774df6914b323ff84a0a156ea6ff2ba1eaf0113962fa773f3f9def798" ;; \ + "linux/amd64") HELM_SHA256="fc307327959aa38ed8f9f7e66d45492bb022a66c3e5da6063958254b9767d179" ;; \ + "linux/arm64") HELM_SHA256="d3f8f15b3d9ec8c8678fbf3280c3e5902efabe5912e2f9fcf29107efbc8ead69" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/pkg/app/init.go b/pkg/app/init.go index 47d4f16f..2010f65a 100644 --- a/pkg/app/init.go +++ b/pkg/app/init.go @@ -18,7 +18,7 @@ import ( const ( HelmRequiredVersion = "v3.15.4" - HelmRecommendedVersion = "v3.16.3" + HelmRecommendedVersion = "v3.16.4" HelmDiffRecommendedVersion = "v3.9.12" HelmSecretsRecommendedVersion = "v4.6.0" HelmGitRecommendedVersion = "v0.15.1" From 24681ac8dc76a47383f224c365e5a1806f7d1b8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 07:39:55 +0800 Subject: [PATCH 077/177] build(deps): bump github.com/goccy/go-yaml from 1.15.10 to 1.15.11 (#1838) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.10 to 1.15.11. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.10...v1.15.11) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c1c2d789..05918361 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.10 + github.com/goccy/go-yaml v1.15.11 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 3bc59640..5a91206f 100644 --- a/go.sum +++ b/go.sum @@ -542,8 +542,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.15.10 h1:9exV2CDYm/FWHPptIIgcDiPQS+X/4uTR+HEl+GF9xJU= -github.com/goccy/go-yaml v1.15.10/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.11 h1:XeEd/2INF0TXXWMzJ9ALqJLGjGDl4PIi1gmrK+7KpAs= +github.com/goccy/go-yaml v1.15.11/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 11346d8dddcee4df48a43e21152d7b02310a6431 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 07:49:42 +0800 Subject: [PATCH 078/177] build(deps): bump filippo.io/age from 1.2.0 to 1.2.1 (#1840) Bumps [filippo.io/age](https://github.com/FiloSottile/age) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/FiloSottile/age/releases) - [Commits](https://github.com/FiloSottile/age/compare/v1.2.0...v1.2.1) --- updated-dependencies: - dependency-name: filippo.io/age dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 05918361..0620dabd 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,7 @@ require ( cloud.google.com/go v0.116.0 // indirect cloud.google.com/go/iam v1.2.2 // indirect cloud.google.com/go/storage v1.47.0 // indirect - filippo.io/age v1.2.0 // indirect + filippo.io/age v1.2.1 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 // indirect diff --git a/go.sum b/go.sum index 5a91206f..d40067ce 100644 --- a/go.sum +++ b/go.sum @@ -207,8 +207,8 @@ cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoIS dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/age v1.2.0 h1:vRDp7pUMaAJzXNIWJVAZnEf/Dyi4Vu4wI8S1LBzufhE= -filippo.io/age v1.2.0/go.mod h1:JL9ew2lTN+Pyft4RiNGguFfOpewKwSHm5ayKD/A4004= +filippo.io/age v1.2.1 h1:X0TZjehAZylOIj4DubWYU1vWQxv9bJpo+Uu2/LGhi1o= +filippo.io/age v1.2.1/go.mod h1:JL9ew2lTN+Pyft4RiNGguFfOpewKwSHm5ayKD/A4004= github.com/1Password/connect-sdk-go v1.5.3 h1:KyjJ+kCKj6BwB2Y8tPM1Ixg5uIS6HsB0uWA8U38p/Uk= github.com/1Password/connect-sdk-go v1.5.3/go.mod h1:5rSymY4oIYtS4G3t0oMkGAXBeoYiukV3vkqlnEjIDJs= github.com/1password/onepassword-sdk-go v0.1.4 h1:WLSc3d8BTI0+ltlzMA5i726IxUrujnQvCjdKM2GkQO0= From 226c369e3bce3dd59fc0031b4ba0e8a7897ba464 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 21 Dec 2024 07:03:17 +0800 Subject: [PATCH 079/177] build(deps): bump github.com/goccy/go-yaml from 1.15.11 to 1.15.12 (#1843) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.11 to 1.15.12. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.11...v1.15.12) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0620dabd..d3e995ad 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.11 + github.com/goccy/go-yaml v1.15.12 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index d40067ce..b176c518 100644 --- a/go.sum +++ b/go.sum @@ -542,8 +542,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.15.11 h1:XeEd/2INF0TXXWMzJ9ALqJLGjGDl4PIi1gmrK+7KpAs= -github.com/goccy/go-yaml v1.15.11/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.12 h1:KLUSwfrUcTU6F8sAkf23OIPYC6aFVMNFSu4btROEm6w= +github.com/goccy/go-yaml v1.15.12/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 14677e288f184a4a6ab68ffc5e789754939f2efd Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Sat, 21 Dec 2024 09:21:52 +0800 Subject: [PATCH 080/177] build: update helm-diff to v3.9.13 in Dockerfiles and init.go (#1841) Signed-off-by: yxxhero --- Dockerfile | 2 +- Dockerfile.debian-stable-slim | 2 +- Dockerfile.ubuntu | 2 +- pkg/app/init.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3e766912..62179045 100644 --- a/Dockerfile +++ b/Dockerfile @@ -94,7 +94,7 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.12 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.13 && \ helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index e0dd6f58..39ba1507 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -99,7 +99,7 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.12 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.13 && \ helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index c1a16b5a..79fda56a 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -99,7 +99,7 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.12 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.13 && \ helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ diff --git a/pkg/app/init.go b/pkg/app/init.go index 2010f65a..f1b475b0 100644 --- a/pkg/app/init.go +++ b/pkg/app/init.go @@ -19,7 +19,7 @@ import ( const ( HelmRequiredVersion = "v3.15.4" HelmRecommendedVersion = "v3.16.4" - HelmDiffRecommendedVersion = "v3.9.12" + HelmDiffRecommendedVersion = "v3.9.13" HelmSecretsRecommendedVersion = "v4.6.0" HelmGitRecommendedVersion = "v0.15.1" HelmS3RecommendedVersion = "v0.16.0" From 392333c59840a521e4ec0c438b4cffcd16249b8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Dec 2024 07:16:23 +0800 Subject: [PATCH 081/177] build(deps): bump github.com/helmfile/chartify from 0.20.4 to 0.20.5 (#1845) Bumps [github.com/helmfile/chartify](https://github.com/helmfile/chartify) from 0.20.4 to 0.20.5. - [Release notes](https://github.com/helmfile/chartify/releases) - [Commits](https://github.com/helmfile/chartify/compare/v0.20.4...v0.20.5) --- updated-dependencies: - dependency-name: github.com/helmfile/chartify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d3e995ad..3a4de6a5 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.6 github.com/hashicorp/hcl/v2 v2.23.0 - github.com/helmfile/chartify v0.20.4 + github.com/helmfile/chartify v0.20.5 github.com/helmfile/vals v0.38.0 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index b176c518..1c9f1f7c 100644 --- a/go.sum +++ b/go.sum @@ -729,8 +729,8 @@ github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1Dd github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= -github.com/helmfile/chartify v0.20.4 h1:SnFTiiJoLl+ySQEv8AuQyjpZRxRuSOXQIFEcfh0sIFM= -github.com/helmfile/chartify v0.20.4/go.mod h1:ithmjuPjAs7tlZLrr8/EMgVU0hluqsPhJldx7QlHotA= +github.com/helmfile/chartify v0.20.5 h1:UTl7KgCO/BiuDi0LOFUsHAx50jWJgsy8nIWdMXtjMgE= +github.com/helmfile/chartify v0.20.5/go.mod h1:E/Fxk99q6xh/sz42/muY6GHnN+UnVD0tb08/lQcdJZw= github.com/helmfile/vals v0.38.0 h1:XeqgQfBOGs3Tllo5Nlx3mcB3Je9U3sZE18BhnRYqhu8= github.com/helmfile/vals v0.38.0/go.mod h1:g19d0aEn/BLOa9de42X3VXYMQTVs2FkJYFEfVPb4P3U= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= From 6027903c3338a19a59487b46ece1b6248c70ff26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Dec 2024 07:17:35 +0800 Subject: [PATCH 082/177] build(deps): bump github.com/goccy/go-yaml from 1.15.12 to 1.15.13 (#1844) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.12 to 1.15.13. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.12...v1.15.13) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3a4de6a5..7bb3a1c2 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.12 + github.com/goccy/go-yaml v1.15.13 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 1c9f1f7c..81353f8b 100644 --- a/go.sum +++ b/go.sum @@ -542,8 +542,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-yaml v1.15.12 h1:KLUSwfrUcTU6F8sAkf23OIPYC6aFVMNFSu4btROEm6w= -github.com/goccy/go-yaml v1.15.12/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.13 h1:Xd87Yddmr2rC1SLLTm2MNDcTjeO/GYo0JGiww6gSTDg= +github.com/goccy/go-yaml v1.15.13/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From d4b4fc41c519a9a56f3afd90117837aa2fbc118a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Dec 2024 08:19:45 +0800 Subject: [PATCH 083/177] build(deps): bump jinja2 from 3.1.4 to 3.1.5 in /docs (#1846) Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.4 to 3.1.5. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.4...3.1.5) --- updated-dependencies: - dependency-name: jinja2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index ebcdeb07..ae1e456e 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -4,7 +4,7 @@ ghp-import==2.0.2 gitdb==4.0.9 GitPython==3.1.41 importlib-metadata==4.11.3 -Jinja2==3.1.4 +Jinja2==3.1.5 Markdown==3.6 MarkupSafe==2.1.1 mergedeep==1.3.4 From e13397d9b587a570953316e37bd4bdbeefaf41fd Mon Sep 17 00:00:00 2001 From: Zubair Haque Date: Wed, 1 Jan 2025 17:33:24 -0600 Subject: [PATCH 084/177] CVE-2024-45338: updating golang.org/x/net: to version: v0.33.0 (#1849) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7bb3a1c2..bc51da88 100644 --- a/go.mod +++ b/go.mod @@ -97,7 +97,7 @@ require ( 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.31.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.21.0 // indirect diff --git a/go.sum b/go.sum index 81353f8b..180e7862 100644 --- a/go.sum +++ b/go.sum @@ -1151,8 +1151,8 @@ golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= 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= From b0660c9b9d4e0f945082b7ce20bc71796b42de06 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jan 2025 07:39:50 +0800 Subject: [PATCH 085/177] build(deps): bump github.com/zclconf/go-cty from 1.15.1 to 1.16.0 (#1851) Bumps [github.com/zclconf/go-cty](https://github.com/zclconf/go-cty) from 1.15.1 to 1.16.0. - [Release notes](https://github.com/zclconf/go-cty/releases) - [Changelog](https://github.com/zclconf/go-cty/blob/main/CHANGELOG.md) - [Commits](https://github.com/zclconf/go-cty/compare/v1.15.1...v1.16.0) --- updated-dependencies: - dependency-name: github.com/zclconf/go-cty dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index bc51da88..8720766d 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 github.com/tj/assert v0.0.3 github.com/variantdev/dag v1.1.0 - github.com/zclconf/go-cty v1.15.1 + github.com/zclconf/go-cty v1.16.0 github.com/zclconf/go-cty-yaml v1.1.0 go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 diff --git a/go.sum b/go.sum index 180e7862..2da67cca 100644 --- a/go.sum +++ b/go.sum @@ -1001,8 +1001,8 @@ github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1 github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= github.com/zalando/go-keyring v0.2.6 h1:r7Yc3+H+Ux0+M72zacZoItR3UDxeWfKTcabvkI8ua9s= github.com/zalando/go-keyring v0.2.6/go.mod h1:2TCrxYrbUNYfNS/Kgy/LSrkSQzZ5UPVH85RwfczwvcI= -github.com/zclconf/go-cty v1.15.1 h1:RgQYm4j2EvoBRXOPxhUvxPzRrGDo1eCOhHXuGfrj5S0= -github.com/zclconf/go-cty v1.15.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty v1.16.0 h1:xPKEhst+BW5D0wxebMZkxgapvOE/dw7bFTlgSc9nD6w= +github.com/zclconf/go-cty v1.16.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= github.com/zclconf/go-cty-yaml v1.1.0 h1:nP+jp0qPHv2IhUVqmQSzjvqAWcObN0KBkUl2rWBdig0= From c816b72d97579e12f9e671c1f65965e559232a17 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jan 2025 07:40:13 +0800 Subject: [PATCH 086/177] build(deps): bump golang.org/x/term from 0.27.0 to 0.28.0 (#1852) Bumps [golang.org/x/term](https://github.com/golang/term) from 0.27.0 to 0.28.0. - [Commits](https://github.com/golang/term/compare/v0.27.0...v0.28.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 8720766d..fab4c12d 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.10.0 - golang.org/x/term v0.27.0 + golang.org/x/term v0.28.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.16.4 k8s.io/apimachinery v0.32.0 @@ -99,7 +99,7 @@ require ( go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.33.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect - golang.org/x/sys v0.28.0 // indirect + golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/api v0.209.0 // indirect diff --git a/go.sum b/go.sum index 2da67cca..14260efa 100644 --- a/go.sum +++ b/go.sum @@ -1268,16 +1268,16 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.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.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.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= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= -golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= +golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= +golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= 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= From b58ad9e5142e8b377b658d141cbced31cfa4c514 Mon Sep 17 00:00:00 2001 From: Zubair Haque Date: Fri, 10 Jan 2025 06:33:12 -0600 Subject: [PATCH 087/177] update sops versions to 3.9.3 (#1861) Signed-off-by: zhaque44 --- .github/workflows/Makefile | 2 +- Dockerfile | 2 +- Dockerfile.debian-stable-slim | 2 +- Dockerfile.ubuntu | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/Makefile b/.github/workflows/Makefile index 5bfb356e..a71cb30e 100644 --- a/.github/workflows/Makefile +++ b/.github/workflows/Makefile @@ -2,7 +2,7 @@ HELM_VERSION ?= v3.7.2 KUSTOMIZE_VERSION ?= v5.4.3 K8S_VERSION ?= v1.28.11 MINIKUBE_VERSION ?= v1.31.1 -SOPS_VERSION ?= v3.9.2 +SOPS_VERSION ?= v3.9.3 # --- CHANGE_MINIKUBE_NONE_USER ?= true diff --git a/Dockerfile b/Dockerfile index 62179045..c12a5acf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -77,7 +77,7 @@ RUN set -x && \ rm "${KUSTOMIZE_FILENAME}" && \ [ "$(kustomize version)" = "${KUSTOMIZE_VERSION}" ] -ENV SOPS_VERSION="v3.9.2" +ENV SOPS_VERSION="v3.9.3" ARG SOPS_FILENAME="sops-${SOPS_VERSION}.${TARGETOS}.${TARGETARCH}" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/getsops/sops/releases/download/${SOPS_VERSION}/${SOPS_FILENAME}" && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index 39ba1507..89d4fc89 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -82,7 +82,7 @@ RUN set -x && \ rm "${KUSTOMIZE_FILENAME}" && \ [ "$(kustomize version)" = "${KUSTOMIZE_VERSION}" ] -ENV SOPS_VERSION="v3.9.2" +ENV SOPS_VERSION="v3.9.3" ARG SOPS_FILENAME="sops-${SOPS_VERSION}.${TARGETOS}.${TARGETARCH}" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/getsops/sops/releases/download/${SOPS_VERSION}/${SOPS_FILENAME}" && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 79fda56a..2b8a8b14 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -82,7 +82,7 @@ RUN set -x && \ rm "${KUSTOMIZE_FILENAME}" && \ [ "$(kustomize version)" = "${KUSTOMIZE_VERSION}" ] -ENV SOPS_VERSION="v3.9.2" +ENV SOPS_VERSION="v3.9.3" ARG SOPS_FILENAME="sops-${SOPS_VERSION}.${TARGETOS}.${TARGETARCH}" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://github.com/getsops/sops/releases/download/${SOPS_VERSION}/${SOPS_FILENAME}" && \ From 1944c2c893c83272a27bfd00a2da07f8c695c9eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2025 11:02:39 +0800 Subject: [PATCH 088/177] build(deps): bump github.com/hashicorp/go-getter from 1.7.6 to 1.7.7 (#1862) Bumps [github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter) from 1.7.6 to 1.7.7. - [Release notes](https://github.com/hashicorp/go-getter/releases) - [Changelog](https://github.com/hashicorp/go-getter/blob/main/.goreleaser.yml) - [Commits](https://github.com/hashicorp/go-getter/compare/v1.7.6...v1.7.7) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-getter dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +- go.sum | 725 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 717 insertions(+), 14 deletions(-) diff --git a/go.mod b/go.mod index fab4c12d..6941152c 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 - github.com/hashicorp/go-getter v1.7.6 + github.com/hashicorp/go-getter v1.7.7 github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.20.5 github.com/helmfile/vals v0.38.0 @@ -97,7 +97,7 @@ require ( 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.33.0 // indirect + golang.org/x/net v0.34.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect @@ -290,7 +290,7 @@ require ( go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.31.0 // indirect + golang.org/x/crypto v0.32.0 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/tools v0.26.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/go.sum b/go.sum index 14260efa..79174f9c 100644 --- a/go.sum +++ b/go.sum @@ -9,6 +9,7 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -21,6 +22,7 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= @@ -32,32 +34,96 @@ cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+Y cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= +cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= +cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= +cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= +cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= +cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= +cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= +cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= +cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= +cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= +cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= +cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= +cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= +cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= +cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= +cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= +cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= +cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= +cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= +cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= +cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= +cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= +cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= +cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= +cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= +cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= +cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= +cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= +cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= +cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= +cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= +cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= +cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= +cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= +cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= +cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= +cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= +cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= +cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= +cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= +cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= +cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= +cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= cloud.google.com/go/auth v0.10.2 h1:oKF7rgBfSHdp/kuhXtqU/tNDr0mZqhYbEh+6SiqzkKo= cloud.google.com/go/auth v0.10.2/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= cloud.google.com/go/auth/oauth2adapt v0.2.5 h1:2p29+dePqsCHPP1bqDJcKj4qxRyYCcbzKpFyKGt3MTk= cloud.google.com/go/auth/oauth2adapt v0.2.5/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= +cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= +cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= +cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= +cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= +cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= +cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= +cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= +cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= +cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= +cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -65,12 +131,44 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= +cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= +cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= +cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= +cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= +cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= +cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= +cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= +cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= +cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= +cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= +cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= +cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= +cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= +cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= +cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= +cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= +cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= +cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= +cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= +cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= +cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= +cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= +cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= +cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= +cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= @@ -78,137 +176,459 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= +cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= +cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= +cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= +cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= +cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= +cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= +cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= +cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= +cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= +cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= +cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= +cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= +cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= +cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= +cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= +cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= +cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= +cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= +cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= +cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= +cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= +cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= +cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= +cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= +cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= +cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= +cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= +cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= +cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= +cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= +cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= +cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= +cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= +cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= +cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= +cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= +cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= +cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= +cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= +cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= +cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= +cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= +cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= +cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= +cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= +cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= +cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= +cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= +cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= +cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= +cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= +cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= +cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= +cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= +cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= +cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= +cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= +cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= +cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= +cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= +cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= +cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= +cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= +cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= +cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= +cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= +cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= +cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= +cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= +cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= +cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= +cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= +cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= +cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= +cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= +cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= cloud.google.com/go/iam v1.2.2 h1:ozUSofHUGf/F4tCNy/mu9tHLTaxZFLOUiKzjcgWHGIA= cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY= +cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= +cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= +cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= +cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= +cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= +cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= +cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= +cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= +cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= +cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= +cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= +cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= +cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= +cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= +cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= +cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= +cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= +cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= cloud.google.com/go/kms v1.20.1 h1:og29Wv59uf2FVaZlesaiDAqHFzHaoUyHI3HYp9VUHVg= cloud.google.com/go/kms v1.20.1/go.mod h1:LywpNiVCvzYNJWS9JUcGJSVTNSwPwi0vBAotzDqn2nc= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= +cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= +cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= cloud.google.com/go/logging v1.12.0 h1:ex1igYcGFd4S/RZWOCU51StlIEuey5bjqwH9ZYjHibk= cloud.google.com/go/logging v1.12.0/go.mod h1:wwYBt5HlYP1InnrtYI0wtwttpVU1rifnMT7RejksUAM= +cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= +cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= cloud.google.com/go/longrunning v0.6.2 h1:xjDfh1pQcWPEvnfjZmwjKQEcHnpz6lHjfy7Fo0MK+hc= cloud.google.com/go/longrunning v0.6.2/go.mod h1:k/vIs83RN4bE3YCswdXC5PFfWVILjm3hpEUlSko4PiI= +cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= +cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= +cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= +cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= +cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= +cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= +cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= +cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= +cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= +cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= +cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= +cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= cloud.google.com/go/monitoring v1.21.2 h1:FChwVtClH19E7pJ+e0xUhJPGksctZNVOk2UhMmblmdU= cloud.google.com/go/monitoring v1.21.2/go.mod h1:hS3pXvaG8KgWTSz+dAdyzPrGUYmi2Q+WFX8g2hqVEZU= cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= +cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= +cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= +cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= +cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= +cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= +cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= +cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= +cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= +cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= +cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= +cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= +cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= +cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= +cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= +cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= +cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= +cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= +cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= +cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= +cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= +cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= +cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= +cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= +cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= +cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= +cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= +cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= +cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= +cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= +cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= +cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= +cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= +cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= +cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= +cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= +cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= +cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= +cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= +cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= +cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= +cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= +cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= +cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= +cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= +cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= +cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= +cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= +cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= +cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= +cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= +cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= +cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= cloud.google.com/go/secretmanager v1.14.2 h1:2XscWCfy//l/qF96YE18/oUaNJynAx749Jg3u0CjQr8= cloud.google.com/go/secretmanager v1.14.2/go.mod h1:Q18wAPMM6RXLC/zVpWTlqq2IBSbbm7pKBlM3lCKsmjw= cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= +cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= +cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= +cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= +cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= +cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= +cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= +cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= +cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= +cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= +cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= +cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= +cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= +cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= +cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= +cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= +cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= +cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= +cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= +cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= +cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= +cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= +cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= +cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= +cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= +cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= +cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= +cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= cloud.google.com/go/storage v1.47.0 h1:ajqgt30fnOMmLfWfu1PWcb+V9Dxz6n+9WKjdNg5R4HM= cloud.google.com/go/storage v1.47.0/go.mod h1:Ks0vP374w0PW6jOUameJbapbQKXqkjGd/OJRp2fb9IQ= +cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= +cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= +cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= +cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= +cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= +cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= +cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= +cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= +cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= +cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= +cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= +cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= +cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= +cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= +cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= +cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= cloud.google.com/go/trace v1.11.2 h1:4ZmaBdL8Ng/ajrgKqY5jfvzqMXbrDcBsUGXOT9aqTtI= cloud.google.com/go/trace v1.11.2/go.mod h1:bn7OwXd4pd5rFuAnTrzBuoZ4ax2XQeG3qNgYmfCy0Io= +cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= +cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= +cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= +cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= +cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= +cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= +cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= +cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= +cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= +cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= +cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= +cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= +cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= +cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= +cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= +cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= +cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= +cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= +cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= +cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= +cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= +cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= +cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= +cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= +cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= +cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= +cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/age v1.2.1 h1:X0TZjehAZylOIj4DubWYU1vWQxv9bJpo+Uu2/LGhi1o= filippo.io/age v1.2.1/go.mod h1:JL9ew2lTN+Pyft4RiNGguFfOpewKwSHm5ayKD/A4004= +gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= +git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/1Password/connect-sdk-go v1.5.3 h1:KyjJ+kCKj6BwB2Y8tPM1Ixg5uIS6HsB0uWA8U38p/Uk= github.com/1Password/connect-sdk-go v1.5.3/go.mod h1:5rSymY4oIYtS4G3t0oMkGAXBeoYiukV3vkqlnEjIDJs= github.com/1password/onepassword-sdk-go v0.1.4 h1:WLSc3d8BTI0+ltlzMA5i726IxUrujnQvCjdKM2GkQO0= @@ -276,6 +696,7 @@ github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapp github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1/go.mod h1:viRWSEhtMZqz1rhwmOVKkWl6SwmVowfL9O2YR5gI2PE= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= @@ -299,13 +720,21 @@ github.com/a8m/envsubst v1.4.2 h1:4yWIHXOLEJHQEFd4UjrWDrYeYlV7ncFWJOCBRLOZHQg= github.com/a8m/envsubst v1.4.2/go.mod h1:MVUTQNGQ3tsjOOtKCNd+fl8RzhsXcDvvAEzkhGtlsbY= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= 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/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antchfx/jsonquery v1.3.6 h1:TaSfeAh7n6T11I74bsZ1FswreIfrbJ0X+OyLflx6mx4= github.com/antchfx/jsonquery v1.3.6/go.mod h1:fGzSGJn9Y826Qd3pC8Wx45avuUwpkePsACQJYy+58BU= github.com/antchfx/xpath v1.3.2 h1:LNjzlsSjinu3bQpw9hWMY9ocB80oLOWuQqFvO6xt51U= github.com/antchfx/xpath v1.3.2/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= +github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de h1:FxWPpzIjnTlhPwqqXc4/vE0f7GvRjuAsbW+HOIe8KnA= @@ -369,6 +798,8 @@ github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdn github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= +github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70= github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng= @@ -380,10 +811,12 @@ github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3k github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= @@ -397,11 +830,15 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX 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= github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI= github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 h1:uVG5v+c6ndz9seCorYjQmlVlPbh3OMcMWJzAJZWdM/g= @@ -421,6 +858,7 @@ github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7np github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 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= @@ -458,6 +896,8 @@ github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4 github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= 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/dylibso/observe-sdk/go v0.0.0-20240819160327-2d926c5d788a h1:UwSIFv5g5lIvbGgtf3tVwC7Ky9rmMFBp0RMs+6f6YqE= @@ -473,9 +913,14 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= 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/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= github.com/envoyproxy/go-control-plane v0.13.0 h1:HzkeUz1Knt+3bK+8LG1bxOO/jzWZmdxpwC51i202les= github.com/envoyproxy/go-control-plane v0.13.0/go.mod h1:GRaKG3dwvFoTg4nj7aXdZnvMg4d7nvT/wl9WgVXn3Q8= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= github.com/extism/go-sdk v1.6.1 h1:gkbkG5KzYKrv8mLggw5ojg/JulXfEbLIRVhbw9Ot7S0= @@ -485,6 +930,8 @@ github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI= github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -500,12 +947,19 @@ github.com/getsops/sops/v3 v3.9.2/go.mod h1:J8CMEdmPWT8gxFaNmPBSrc5NFd4uNndf8aFQ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= +github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= +github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-jose/go-jose/v4 v4.0.4 h1:VsjPI33J0SB9vQM6PLmNjoHqMQNGPiZ0rHL7Ni7Q6/E= github.com/go-jose/go-jose/v4 v4.0.4/go.mod h1:NKb5HO1EZccyMpiZNbdUw/14tiXNyUJh188dfnMCAfc= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -533,6 +987,8 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= +github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= @@ -542,6 +998,7 @@ github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIx github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-yaml v1.15.13 h1:Xd87Yddmr2rC1SLLTm2MNDcTjeO/GYo0JGiww6gSTDg= github.com/goccy/go-yaml v1.15.13/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= @@ -556,7 +1013,10 @@ github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQg github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -589,15 +1049,18 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v1.8.2 h1:H5XSIre1MB5NbPYFp+i1NBbb5qN1W8Y8YAQoAYbkm8k= github.com/gomodule/redigo v1.8.2/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -629,6 +1092,7 @@ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXi github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/martian/v3 v3.3.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9Fc= github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -640,6 +1104,7 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= @@ -659,6 +1124,8 @@ github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= +github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -670,9 +1137,12 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= +github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= github.com/googleapis/gax-go/v2 v2.14.0 h1:f+jMrjBPl+DL9nI4IQzLUxMq7XrAqFYB7hBPqMNIe8o= github.com/googleapis/gax-go/v2 v2.14.0/go.mod h1:lhBCnjdLrWRaPvLWhmc8IS24m9mr07qSYnHncrgo+zk= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= @@ -684,13 +1154,15 @@ github.com/goware/prefixer v0.0.0-20160118172347-395022866408/go.mod h1:PE1ycukg github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.6 h1:5jHuM+aH373XNtXl9TNTUH5Qd69Trve11tHIrB+6yj4= -github.com/hashicorp/go-getter v1.7.6/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter v1.7.7 h1:vvjtrrTFctNCxytDWukhMOHYXn+UQVbtgkbE3P7UCe0= +github.com/hashicorp/go-getter v1.7.7/go.mod h1:2c6CboOEb9jG6YvmC9xdD+tyAFsrUaJPedwXDGr0TM4= github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= @@ -739,6 +1211,7 @@ github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f h1:7LYC+Yfk github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f/go.mod h1:pFlLw2CfqZiIBOx6BuCeRLCrfxBJipTY0nIOF/VbGcI= github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI= github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca h1:T54Ema1DU8ngI+aef9ZhAhNGQhcRTrWxVeG07F+c/Rw= @@ -764,18 +1237,26 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6 h1:IsMZxCuZqKuao2vNdfD82fjjgPLfyHLpR41Z88viRWs= github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6/go.mod h1:3VeWNIJaW+O5xpRQbPp0Ybqu1vJd/pm7s2F473HRrkw= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -790,14 +1271,17 @@ github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhn github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= @@ -805,12 +1289,15 @@ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/miekg/dns v1.1.57 h1:Jzi7ApEIzwEPLHWRcafCN9LZSBbqQpxjt/wpgvg7wcM= github.com/miekg/dns v1.1.57/go.mod h1:uqRjCRUuEAA6qsOiJvDd+CFo/vW+y5WR6SNmHE55hZk= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= @@ -873,11 +1360,19 @@ github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+v github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= +github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= +github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -891,6 +1386,8 @@ github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJL github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -904,16 +1401,21 @@ github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/scylladb/termtables v0.0.0-20191203121021-c4c0b6d42ff4/go.mod h1:C1a7PQSMz9NShzorzCiG2fk9+xuCgLkPeCvMHYR2OWg= @@ -927,6 +1429,9 @@ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= @@ -949,6 +1454,7 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= @@ -992,6 +1498,7 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI= github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= @@ -1007,6 +1514,8 @@ github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6 github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= github.com/zclconf/go-cty-yaml v1.1.0 h1:nP+jp0qPHv2IhUVqmQSzjvqAWcObN0KBkUl2rWBdig0= github.com/zclconf/go-cty-yaml v1.1.0/go.mod h1:9YLUH4g7lOhVWqUbctnVlZ5KLpg7JAprQNgxSZ1Gyxs= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= @@ -1037,6 +1546,8 @@ go.opentelemetry.io/otel/sdk/metric v1.29.0/go.mod h1:6zZLdCl2fkauYoZIOn/soQIDSW go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc= go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= @@ -1055,25 +1566,47 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= -golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1097,7 +1630,15 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1132,11 +1673,14 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1148,11 +1692,21 @@ golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= -golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.7.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.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= 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= @@ -1176,8 +1730,12 @@ golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7Lm golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= +golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1193,7 +1751,12 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/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.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1213,6 +1776,7 @@ golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1232,11 +1796,14 @@ golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1244,8 +1811,11 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc 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-20210816183151-1e6c022a8912/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-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1265,17 +1835,35 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.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.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= 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.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1287,17 +1875,30 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1310,6 +1911,7 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1339,17 +1941,25 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1360,6 +1970,14 @@ golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= +gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= +gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -1407,7 +2025,16 @@ google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaE google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= +google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= +google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= +google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= +google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= google.golang.org/api v0.209.0 h1:Ja2OXNlyRlWCWu8o+GgI4yUn/wz9h/5ZfFbKz+dQX+w= google.golang.org/api v0.209.0/go.mod h1:I53S168Yr/PNDNMi5yPnDc0/LGRZO6o7PoEbl/HY3CM= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -1452,7 +2079,9 @@ google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1485,6 +2114,7 @@ google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= @@ -1517,7 +2147,35 @@ google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53B google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= -google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= +google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= +google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f h1:zDoHYmMzMacIdjNe+P2XiTmPsLawi/pCbSPfxt6lTfw= google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f/go.mod h1:Q5m6g8b5KaFFzsQFIGdJkSJDGeJiybVenoYFMMa3ohI= google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= @@ -1550,6 +2208,7 @@ google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= @@ -1559,6 +2218,11 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= @@ -1579,6 +2243,9 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -1613,6 +2280,7 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh 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= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg= @@ -1627,9 +2295,44 @@ k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJ k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= +modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= +modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= +modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= +modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= +modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= +modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= +modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= +modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= +modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= +modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= +modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= +modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= +modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= oras.land/oras-go v1.2.5 h1:XpYuAwAb0DfQsunIyMfeET92emK8km3W4yEzZvUbsTo= oras.land/oras-go v1.2.5/go.mod h1:PuAwRShRZCsZb7g8Ar3jKKQR/2A/qN+pkYxIOd/FAoo= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= From 22ad21c1ae6aa542d40f0049c7eb965f0d0853cb Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Sat, 11 Jan 2025 22:41:10 +0800 Subject: [PATCH 089/177] feat: add --take-ownership flag to apply and sync commands (#1863) Signed-off-by: yxxhero --- cmd/apply.go | 1 + cmd/sync.go | 1 + pkg/app/app.go | 2 ++ pkg/app/app_test.go | 5 +++++ pkg/app/config.go | 2 ++ pkg/config/apply.go | 9 +++++++++ pkg/config/sync.go | 8 ++++++++ pkg/state/helmx.go | 13 ++++++++++++ pkg/state/helmx_test.go | 45 +++++++++++++++++++++++++++++++++++++++++ pkg/state/state.go | 4 ++++ 10 files changed, 90 insertions(+) diff --git a/cmd/apply.go b/cmd/apply.go index b019e6f2..9e6cfa47 100644 --- a/cmd/apply.go +++ b/cmd/apply.go @@ -62,6 +62,7 @@ func NewApplyCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.BoolVar(&applyOptions.ShowSecrets, "show-secrets", false, "do not redact secret values in the diff output. should be used for debug purpose only") f.BoolVar(&applyOptions.NoHooks, "no-hooks", false, "do not diff changes made by hooks.") f.BoolVar(&applyOptions.HideNotes, "hide-notes", false, "add --hide-notes flag to helm") + f.BoolVar(&applyOptions.TakeOwnership, "take-ownership", false, "add --take-ownership flag to helm") f.BoolVar(&applyOptions.SuppressDiff, "suppress-diff", false, "suppress diff in the output. Usable in new installs") f.BoolVar(&applyOptions.Wait, "wait", false, `Override helmDefaults.wait setting "helm upgrade --install --wait"`) f.BoolVar(&applyOptions.WaitForJobs, "wait-for-jobs", false, `Override helmDefaults.waitForJobs setting "helm upgrade --install --wait-for-jobs"`) diff --git a/cmd/sync.go b/cmd/sync.go index ae2af7fc..418bf32c 100644 --- a/cmd/sync.go +++ b/cmd/sync.go @@ -42,6 +42,7 @@ func NewSyncCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.BoolVar(&syncOptions.IncludeNeeds, "include-needs", false, `automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when --selector/-l flag is not provided`) f.BoolVar(&syncOptions.IncludeTransitiveNeeds, "include-transitive-needs", false, `like --include-needs, but also includes transitive needs (needs of needs). Does nothing when --selector/-l flag is not provided. Overrides exclusions of other selectors and conditions.`) f.BoolVar(&syncOptions.HideNotes, "hide-notes", false, "add --hide-notes flag to helm") + f.BoolVar(&syncOptions.TakeOwnership, "take-ownership", false, `add --take-ownership flag to helm`) f.BoolVar(&syncOptions.Wait, "wait", false, `Override helmDefaults.wait setting "helm upgrade --install --wait"`) f.BoolVar(&syncOptions.WaitForJobs, "wait-for-jobs", false, `Override helmDefaults.waitForJobs setting "helm upgrade --install --wait-for-jobs"`) f.BoolVar(&syncOptions.ReuseValues, "reuse-values", false, `Override helmDefaults.reuseValues "helm upgrade --install --reuse-values"`) diff --git a/pkg/app/app.go b/pkg/app/app.go index a99e79fa..7991c144 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -1550,6 +1550,7 @@ Do you really want to apply? SkipSchemaValidation: c.SkipSchemaValidation(), SyncArgs: c.SyncArgs(), HideNotes: c.HideNotes(), + TakeOwnership: c.TakeOwnership(), } return subst.SyncReleases(&affectedReleases, helm, c.Values(), c.Concurrency(), syncOpts) })) @@ -1945,6 +1946,7 @@ Do you really want to sync? PostRendererArgs: c.PostRendererArgs(), SyncArgs: c.SyncArgs(), HideNotes: c.HideNotes(), + TakeOwnership: c.TakeOwnership(), } return subst.SyncReleases(&affectedReleases, helm, c.Values(), c.Concurrency(), opts) })) diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index 21860443..b6198f38 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -2248,6 +2248,7 @@ type applyConfig struct { suppressOutputLineRegex []string showOnly []string hideNotes bool + takeOwnership bool // template-only options includeCRDs, skipTests bool @@ -2440,6 +2441,10 @@ func (a applyConfig) HideNotes() bool { return a.hideNotes } +func (a applyConfig) TakeOwnership() bool { + return a.takeOwnership +} + type depsConfig struct { skipRepos bool includeTransitiveNeeds bool diff --git a/pkg/app/config.go b/pkg/app/config.go index d52feabe..bb76811a 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -54,6 +54,7 @@ type ApplyConfigProvider interface { SkipSchemaValidation() bool Cascade() string HideNotes() bool + TakeOwnership() bool SuppressOutputLineRegex() []string Values() []string @@ -103,6 +104,7 @@ type SyncConfigProvider interface { PostRenderer() string PostRendererArgs() []string HideNotes() bool + TakeOwnership() bool Cascade() string Values() []string diff --git a/pkg/config/apply.go b/pkg/config/apply.go index fdb157e0..4d67aa61 100644 --- a/pkg/config/apply.go +++ b/pkg/config/apply.go @@ -70,6 +70,9 @@ type ApplyOptions struct { SyncArgs string // HideNotes is the hide notes flag HideNotes bool + + // TakeOwnership is true if the ownership should be taken + TakeOwnership bool } // NewApply creates a new Apply @@ -257,6 +260,12 @@ func (a *ApplyImpl) SyncArgs() string { return a.ApplyOptions.SyncArgs } +// HideNotes returns the HideNotes. func (a *ApplyImpl) HideNotes() bool { return a.ApplyOptions.HideNotes } + +// TakeOwnership returns the TakeOwnership. +func (a *ApplyImpl) TakeOwnership() bool { + return a.ApplyOptions.TakeOwnership +} diff --git a/pkg/config/sync.go b/pkg/config/sync.go index 1ee69e5c..c8927b72 100644 --- a/pkg/config/sync.go +++ b/pkg/config/sync.go @@ -38,6 +38,8 @@ type SyncOptions struct { SyncArgs string // HideNotes is the hide notes flag HideNotes bool + // TakeOwnership is the take ownership flag + TakeOwnership bool } // NewSyncOptions creates a new Apply @@ -149,6 +151,12 @@ func (t *SyncImpl) SyncArgs() string { return t.SyncOptions.SyncArgs } +// HideNotes returns the hide notes func (t *SyncImpl) HideNotes() bool { return t.SyncOptions.HideNotes } + +// TakeOwnership returns the take ownership +func (t *SyncImpl) TakeOwnership() bool { + return t.SyncOptions.TakeOwnership +} diff --git a/pkg/state/helmx.go b/pkg/state/helmx.go index bf584e34..e03a095a 100644 --- a/pkg/state/helmx.go +++ b/pkg/state/helmx.go @@ -148,6 +148,19 @@ func (st *HelmState) appendHideNotesFlags(flags []string, helm helmexec.Interfac return flags } +// append take-ownership flags to helm flags +func (st *HelmState) appendTakeOwnershipFlags(flags []string, helm helmexec.Interface, ops *SyncOpts) []string { + // see https://github.com/helm/helm/releases/tag/v3.17.0 + if !helm.IsVersionAtLeast("3.17.0") { + return flags + } + switch { + case ops.HideNotes: + flags = append(flags, "--take-ownership") + } + return flags +} + // append show-only flags to helm flags func (st *HelmState) appendShowOnlyFlags(flags []string, showOnly []string) []string { showOnlyFlags := []string{} diff --git a/pkg/state/helmx_test.go b/pkg/state/helmx_test.go index fae63bfc..77e91203 100644 --- a/pkg/state/helmx_test.go +++ b/pkg/state/helmx_test.go @@ -321,3 +321,48 @@ func TestAppendHideNotesFlags(t *testing.T) { }) } } + +func TestAppendTakeOwnershipFlags(t *testing.T) { + type args struct { + flags []string + helm helmexec.Interface + helmSpec HelmSpec + opt *SyncOpts + expected []string + } + tests := []struct { + name string + args args + }{ + { + name: "no take-ownership when helm less than 3.17.0", + args: args{ + flags: []string{}, + helm: testutil.NewVersionHelmExec("3.16.0"), + opt: &SyncOpts{ + HideNotes: true, + }, + expected: []string{}, + }, + }, + { + name: "hide-notes from cmd flag", + args: args{ + flags: []string{}, + helm: testutil.NewVersionHelmExec("3.17.0"), + opt: &SyncOpts{ + HideNotes: true, + }, + expected: []string{"--take-ownership"}, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + st := &HelmState{} + st.HelmDefaults = tt.args.helmSpec + got := st.appendTakeOwnershipFlags(tt.args.flags, tt.args.helm, tt.args.opt) + require.Equalf(t, tt.args.expected, got, "appendTakeOwnershipFlags() = %v, want %v", got, tt.args.expected) + }) + } +} diff --git a/pkg/state/state.go b/pkg/state/state.go index 61ac599b..9c501774 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -789,6 +789,7 @@ type SyncOpts struct { PostRendererArgs []string SyncArgs string HideNotes bool + TakeOwnership bool } type SyncOpt interface{ Apply(*SyncOpts) } @@ -2775,6 +2776,9 @@ func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSp // append hide-notes flag flags = st.appendHideNotesFlags(flags, helm, opt) + // append take-ownership flag + flags = st.appendTakeOwnershipFlags(flags, helm, opt) + flags = st.appendExtraSyncFlags(flags, opt) common, clean, err := st.namespaceAndValuesFlags(helm, release, workerIndex) From 2e21e2fa0b164d6d17b21c30efb02d236646cadf Mon Sep 17 00:00:00 2001 From: Purple Clay Date: Sun, 12 Jan 2025 07:31:12 +0000 Subject: [PATCH 090/177] fix: ensure plain http is supported across all helmfile commands (#1858) fix: ensure plain http is supported across helmfile commands Signed-off-by: purpleclay --- pkg/state/state.go | 53 +++++++++++++++----- pkg/state/state_test.go | 105 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 146 insertions(+), 12 deletions(-) diff --git a/pkg/state/state.go b/pkg/state/state.go index 9c501774..de31e035 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -2665,26 +2665,46 @@ func (st *HelmState) kubeConnectionFlags(release *ReleaseSpec) []string { } func (st *HelmState) appendChartDownloadFlags(flags []string, release *ReleaseSpec) []string { - var repoSkipTLSVerify, repoPlainHttp bool repo, _ := st.GetRepositoryAndNameFromChartName(release.Chart) - if repo != nil { - repoPlainHttp = repo.PlainHttp - repoSkipTLSVerify = repo.SkipTLSVerify - } - - if release.PlainHttp || st.HelmDefaults.PlainHttp || repoPlainHttp { + if st.needsPlainHttp(release, repo) { flags = append(flags, "--plain-http") // --insecure-skip-tls-verify nullifies --plain-http in helm, omit it if PlainHttp is specified return flags } - if release.InsecureSkipTLSVerify || st.HelmDefaults.InsecureSkipTLSVerify || repoSkipTLSVerify { + if st.needsInsecureSkipTLSVerify(release, repo) { flags = append(flags, "--insecure-skip-tls-verify") } return flags } +func (st *HelmState) needsPlainHttp(release *ReleaseSpec, repo *RepositorySpec) bool { + var repoPlainHttp, relPlainHttp bool + if repo != nil { + repoPlainHttp = repo.PlainHttp + } + + if release != nil { + relPlainHttp = release.PlainHttp + } + + return relPlainHttp || st.HelmDefaults.PlainHttp || repoPlainHttp +} + +func (st *HelmState) needsInsecureSkipTLSVerify(release *ReleaseSpec, repo *RepositorySpec) bool { + var repoSkipTLSVerify, relSkipTLSVerify bool + if repo != nil { + repoSkipTLSVerify = repo.SkipTLSVerify + } + + if release != nil { + relSkipTLSVerify = release.InsecureSkipTLSVerify + } + + return relSkipTLSVerify || st.HelmDefaults.InsecureSkipTLSVerify || repoSkipTLSVerify +} + func (st *HelmState) timeoutFlags(release *ReleaseSpec) []string { var flags []string @@ -2848,11 +2868,21 @@ func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec, // `helm template --validate` and `helm upgrade --dry-run` ignore `--kube-version` flag. // For the moment, not specifying kubeVersion. flags = st.appendApiVersionsFlags(flags, release, "") - flags = st.appendConnectionFlags(flags, release) - flags = st.appendChartDownloadFlags(flags, release) + // `helm diff` does not support the `--plain-http` flag, this needs to be removed + repo, _ := st.GetRepositoryAndNameFromChartName(release.Chart) + if st.needsPlainHttp(release, repo) { + var cleanFlags []string + for _, flag := range flags { + if flag != "--plain-http" { + cleanFlags = append(cleanFlags, flag) + } + } + flags = cleanFlags + } + for _, flag := range flags { if flag == "--insecure-skip-tls-verify" { diffVersion, err := helmexec.GetPluginVersion("diff", settings.PluginsDirectory) @@ -3847,10 +3877,9 @@ func (st *HelmState) getOCIChart(release *ReleaseSpec, tempDir string, helm helm st.logger.Debugf("chart already exists at %s", chartPath) } else { flags := st.chartOCIFlags(release) - - // apprnd flags about keyring and verify flags = st.appendVerifyFlags(flags, release) flags = st.appendKeyringFlags(flags, release) + flags = st.appendChartDownloadFlags(flags, release) err := helm.ChartPull(qualifiedChartName, chartPath, flags...) if err != nil { diff --git a/pkg/state/state_test.go b/pkg/state/state_test.go index c0262e61..a2fbc9d7 100644 --- a/pkg/state/state_test.go +++ b/pkg/state/state_test.go @@ -1871,6 +1871,19 @@ func TestHelmState_DiffFlags(t *testing.T) { helm: &exectest.Helm{}, wantDiffFlags: []string{"--api-versions", "helmfile.test/v1", "--api-versions", "helmfile.test/v2", "--kube-version", "1.21"}, }, + { + name: "release with kubeversion and plain http which is ignored", + releases: []ReleaseSpec{ + { + Name: "releaseName", + Chart: "foo", + KubeVersion: "1.21", + PlainHttp: true, + }, + }, + helm: &exectest.Helm{}, + wantDiffFlags: []string{"--kube-version", "1.21"}, + }, } for i := range tests { tt := tests[i] @@ -3582,6 +3595,98 @@ func TestAppendChartDownloadFlags(t *testing.T) { } } +func TestNeedsPlainHttp(t *testing.T) { + tests := []struct { + name string + release *ReleaseSpec + repo *RepositorySpec + defaults HelmSpec + expected bool + }{ + { + name: "PlainHttp in Release", + release: &ReleaseSpec{ + PlainHttp: true, + }, + expected: true, + }, + { + name: "PlainHttp in Repository", + repo: &RepositorySpec{ + PlainHttp: true, + }, + expected: true, + }, + { + name: "PlainHttp in HelmDefaults", + defaults: HelmSpec{ + PlainHttp: true, + }, + expected: true, + }, + { + name: "PlainHttp not set", + expected: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + st := &HelmState{ + ReleaseSetSpec: ReleaseSetSpec{ + HelmDefaults: tt.defaults, + }, + } + require.Equal(t, tt.expected, st.needsPlainHttp(tt.release, tt.repo)) + }) + } +} + +func TestNeedsInsecureSkipTLSVerify(t *testing.T) { + tests := []struct { + name string + release *ReleaseSpec + repo *RepositorySpec + defaults HelmSpec + expected bool + }{ + { + name: "InsecureSkipTLSVerify in Release", + release: &ReleaseSpec{ + InsecureSkipTLSVerify: true, + }, + expected: true, + }, + { + name: "SkipTLSVerify in Repository", + repo: &RepositorySpec{ + SkipTLSVerify: true, + }, + expected: true, + }, + { + name: "InsecureSkipTLSVerify in HelmDefaults", + defaults: HelmSpec{ + InsecureSkipTLSVerify: true, + }, + expected: true, + }, + { + name: "InsecureSkipTLSVerify not set", + expected: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + st := &HelmState{ + ReleaseSetSpec: ReleaseSetSpec{ + HelmDefaults: tt.defaults, + }, + } + require.Equal(t, tt.expected, st.needsInsecureSkipTLSVerify(tt.release, tt.repo)) + }) + } +} + func TestHideChartURL(t *testing.T) { tests := []struct { input string From 2333f093c11a858a683a695fa52d28b1eee7c8d9 Mon Sep 17 00:00:00 2001 From: Purple Clay Date: Mon, 13 Jan 2025 12:55:23 +0000 Subject: [PATCH 091/177] fix: ensure development versions of charts can be used across helmfile commands (#1865) Signed-off-by: purpleclay --- pkg/app/app_template_test.go | 16 ++++++------ pkg/helmexec/exec.go | 4 +-- pkg/helmexec/exec_test.go | 12 ++++----- pkg/state/state.go | 47 ++++++++++++++++++++---------------- pkg/state/state_test.go | 23 ++++++++++++++++++ 5 files changed, 65 insertions(+), 37 deletions(-) diff --git a/pkg/app/app_template_test.go b/pkg/app/app_template_test.go index 0ffb26ce..921bcb84 100644 --- a/pkg/app/app_template_test.go +++ b/pkg/app/app_template_test.go @@ -236,7 +236,7 @@ releases: }, selectors: []string{"name=test2"}, templated: []exectest.Release{ - {Name: "test2", Flags: []string{}}, + {Name: "test2"}, }, }) }) @@ -249,8 +249,8 @@ releases: }, selectors: []string{"name=test3"}, templated: []exectest.Release{ - {Name: "test2", Flags: []string{}}, - {Name: "test3", Flags: []string{}}, + {Name: "test2"}, + {Name: "test3"}, }, }) }) @@ -264,8 +264,8 @@ releases: }, selectors: []string{"name=test3"}, templated: []exectest.Release{ - {Name: "test2", Flags: []string{}}, - {Name: "test3", Flags: []string{}}, + {Name: "test2"}, + {Name: "test3"}, }, }) }) @@ -279,7 +279,7 @@ releases: }, selectors: []string{"name=test2"}, templated: []exectest.Release{ - {Name: "test2", Flags: []string{}}, + {Name: "test2"}, }, }) }) @@ -293,8 +293,8 @@ releases: }, selectors: []string{"name=test3"}, templated: []exectest.Release{ - {Name: "test2", Flags: []string{}}, - {Name: "test3", Flags: []string{}}, + {Name: "test2"}, + {Name: "test3"}, }, }) }) diff --git a/pkg/helmexec/exec.go b/pkg/helmexec/exec.go index 283910ef..a2044470 100644 --- a/pkg/helmexec/exec.go +++ b/pkg/helmexec/exec.go @@ -519,8 +519,8 @@ func (helm *execer) ChartPull(chart string, path string, flags ...string) error if helmVersionConstraint.Check(helm.version) { // in the 3.7.0 version, the chart pull has been replaced with helm pull // https://github.com/helm/helm/releases/tag/v3.7.0 - ociChartURL, ociChartTag := resolveOciChart(chart) - helmArgs = []string{"pull", ociChartURL, "--version", ociChartTag, "--destination", path, "--untar"} + ociChartURL, _ := resolveOciChart(chart) + helmArgs = []string{"pull", ociChartURL, "--destination", path, "--untar"} helmArgs = append(helmArgs, flags...) } else { helmArgs = []string{"chart", "pull", chart} diff --git a/pkg/helmexec/exec_test.go b/pkg/helmexec/exec_test.go index 58d4ce3d..b68c3e76 100644 --- a/pkg/helmexec/exec_test.go +++ b/pkg/helmexec/exec_test.go @@ -826,20 +826,20 @@ exec: helm --kubeconfig config --kube-context dev chart pull chart helmVersion: "v3.10.0", chartName: "repo/helm-charts:0.14.0", chartPath: "path1", - chartFlags: []string{"--untardir", "/tmp/dir"}, + chartFlags: []string{"--untardir", "/tmp/dir", "--version", "0.14.0"}, listResult: `Pulling repo/helm-charts:0.14.0 -exec: helm --kubeconfig config --kube-context dev pull oci://repo/helm-charts --version 0.14.0 --destination path1 --untar --untardir /tmp/dir +exec: helm --kubeconfig config --kube-context dev pull oci://repo/helm-charts --destination path1 --untar --untardir /tmp/dir --version 0.14.0 `, }, { name: "more then v3.7.0 with rc", helmBin: "helm", helmVersion: "v3.14.0-rc.1+g69dcc92", - chartName: "repo/helm-charts:0.14.0", + chartName: "repo/helm-charts", chartPath: "path1", - chartFlags: []string{"--untardir", "/tmp/dir"}, - listResult: `Pulling repo/helm-charts:0.14.0 -exec: helm --kubeconfig config --kube-context dev pull oci://repo/helm-charts --version 0.14.0 --destination path1 --untar --untardir /tmp/dir + chartFlags: []string{"--untardir", "/tmp/dir", "--devel"}, + listResult: `Pulling repo/helm-charts +exec: helm --kubeconfig config --kube-context dev pull oci://repo/helm-charts --destination path1 --untar --untardir /tmp/dir --devel `, }, } diff --git a/pkg/state/state.go b/pkg/state/state.go index de31e035..421491b4 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1368,7 +1368,8 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre // only fetch chart if it is not already fetched if _, err := os.Stat(chartPath); os.IsNotExist(err) { - fetchFlags := st.chartVersionFlags(release) + var fetchFlags []string + fetchFlags = st.appendChartVersionFlags(fetchFlags, release) fetchFlags = append(fetchFlags, "--untar", "--untardir", chartPath) if err := helm.Fetch(chartName, fetchFlags...); err != nil { results <- &chartPrepareResult{err: err} @@ -2722,7 +2723,8 @@ func (st *HelmState) timeoutFlags(release *ReleaseSpec) []string { } func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSpec, workerIndex int, opt *SyncOpts) ([]string, []string, error) { - flags := st.chartVersionFlags(release) + var flags []string + flags = st.appendChartVersionFlags(flags, release) if release.EnableDNS != nil && *release.EnableDNS || release.EnableDNS == nil && st.HelmDefaults.EnableDNS { flags = append(flags, "--enable-dns") } @@ -2810,9 +2812,7 @@ func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSp func (st *HelmState) flagsForTemplate(helm helmexec.Interface, release *ReleaseSpec, workerIndex int, opt *TemplateOpts) ([]string, []string, error) { var flags []string - - flags = st.chartVersionFlags(release) - + flags = st.appendChartVersionFlags(flags, release) flags = st.appendHelmXFlags(flags, release) postRenderer := "" @@ -2840,7 +2840,8 @@ func (st *HelmState) flagsForTemplate(helm helmexec.Interface, release *ReleaseS func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec, disableValidation bool, workerIndex int, opt *DiffOpts) ([]string, []string, error) { settings := cli.New() - flags := st.chartVersionFlags(release) + var flags []string + flags = st.appendChartVersionFlags(flags, release) disableOpenAPIValidation := false if release.DisableOpenAPIValidation != nil { @@ -2944,9 +2945,7 @@ func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec, return append(flags, common...), files, nil } -func (st *HelmState) chartVersionFlags(release *ReleaseSpec) []string { - flags := []string{} - +func (st *HelmState) appendChartVersionFlags(flags []string, release *ReleaseSpec) []string { if release.Version != "" { flags = append(flags, "--version", release.Version) } @@ -3880,6 +3879,7 @@ func (st *HelmState) getOCIChart(release *ReleaseSpec, tempDir string, helm helm flags = st.appendVerifyFlags(flags, release) flags = st.appendKeyringFlags(flags, release) flags = st.appendChartDownloadFlags(flags, release) + flags = st.appendChartVersionFlags(flags, release) err := helm.ChartPull(qualifiedChartName, chartPath, flags...) if err != nil { @@ -3915,31 +3915,36 @@ func (st *HelmState) IsOCIChart(chart string) bool { return repo.OCI } -func (st *HelmState) getOCIQualifiedChartName(release *ReleaseSpec, helm helmexec.Interface) (qualifiedChartName, chartName, chartVersion string, err error) { - chartVersion = "latest" - if release.Version != "" { +func (st *HelmState) getOCIQualifiedChartName(release *ReleaseSpec, helm helmexec.Interface) (string, string, string, error) { + chartVersion := "latest" + if st.isDevelopment(release) && release.Version == "" { + // omit version, otherwise --devel flag is ignored by helm and helm-diff + chartVersion = "" + } else if release.Version != "" { chartVersion = release.Version } + if !st.IsOCIChart(release.Chart) { + return "", "", chartVersion, nil + } + + var qualifiedChartName, chartName string if strings.HasPrefix(release.Chart, "oci://") { - split := strings.Split(release.Chart, "/") - chartName = split[len(split)-1] + parts := strings.Split(release.Chart, "/") + chartName = parts[len(parts)-1] qualifiedChartName = strings.Replace(fmt.Sprintf("%s:%s", release.Chart, chartVersion), "oci://", "", 1) } else { var repo *RepositorySpec repo, chartName = st.GetRepositoryAndNameFromChartName(release.Chart) - if repo == nil { - return - } - if !repo.OCI { - return - } qualifiedChartName = fmt.Sprintf("%s/%s:%s", repo.URL, chartName, chartVersion) } + qualifiedChartName = strings.TrimSuffix(qualifiedChartName, ":") + if chartVersion == "latest" && helm.IsVersionAtLeast("3.8.0") { return "", "", "", fmt.Errorf("the version for OCI charts should be semver compliant, the latest tag is not supported anymore for helm >= 3.8.0") } - return + + return qualifiedChartName, chartName, chartVersion, nil } func (st *HelmState) FullFilePath() (string, error) { diff --git a/pkg/state/state_test.go b/pkg/state/state_test.go index a2fbc9d7..9072ea56 100644 --- a/pkg/state/state_test.go +++ b/pkg/state/state_test.go @@ -3216,6 +3216,8 @@ func TestFullFilePath(t *testing.T) { } func TestGetOCIQualifiedChartName(t *testing.T) { + devel := true + tests := []struct { state HelmState expected []struct { @@ -3303,6 +3305,27 @@ func TestGetOCIQualifiedChartName(t *testing.T) { {"registry/chart-path/chart-name:0.1.2", "chart-name", "0.1.2"}, }, }, + { + state: HelmState{ + ReleaseSetSpec: ReleaseSetSpec{ + Repositories: []RepositorySpec{}, + Releases: []ReleaseSpec{ + { + Chart: "oci://registry/chart-path/chart-name", + Devel: &devel, + }, + }, + }, + }, + helmVersion: "3.13.3", + expected: []struct { + qualifiedChartName string + chartName string + chartVersion string + }{ + {"registry/chart-path/chart-name", "chart-name", ""}, + }, + }, } for _, tt := range tests { From 6f89d038c82b4674d41222ab01d864e7cbf5ac96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 08:04:20 +0800 Subject: [PATCH 092/177] build(deps): bump github.com/helmfile/chartify from 0.20.5 to 0.20.6 (#1866) Bumps [github.com/helmfile/chartify](https://github.com/helmfile/chartify) from 0.20.5 to 0.20.6. - [Release notes](https://github.com/helmfile/chartify/releases) - [Commits](https://github.com/helmfile/chartify/compare/v0.20.5...v0.20.6) --- updated-dependencies: - dependency-name: github.com/helmfile/chartify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 5 +++-- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 6941152c..5596c210 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.7 github.com/hashicorp/hcl/v2 v2.23.0 - github.com/helmfile/chartify v0.20.5 + github.com/helmfile/chartify v0.20.6 github.com/helmfile/vals v0.38.0 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 @@ -87,7 +87,7 @@ require ( github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect - github.com/otiai10/copy v1.14.0 // indirect + github.com/otiai10/copy v1.14.1 // indirect github.com/pkg/errors v0.9.1 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect @@ -256,6 +256,7 @@ require ( github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/otiai10/mint v1.6.3 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect diff --git a/go.sum b/go.sum index 79174f9c..392f1348 100644 --- a/go.sum +++ b/go.sum @@ -1201,8 +1201,8 @@ github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1Dd github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= -github.com/helmfile/chartify v0.20.5 h1:UTl7KgCO/BiuDi0LOFUsHAx50jWJgsy8nIWdMXtjMgE= -github.com/helmfile/chartify v0.20.5/go.mod h1:E/Fxk99q6xh/sz42/muY6GHnN+UnVD0tb08/lQcdJZw= +github.com/helmfile/chartify v0.20.6 h1:npNsBLjhGk3YqHx38GD4hfGkkAsFSzlO+rk5o8xDTGU= +github.com/helmfile/chartify v0.20.6/go.mod h1:bWeG6TKdc62oS1ArQ5j8K2PogAqWC9P0hCVSvfvnDME= github.com/helmfile/vals v0.38.0 h1:XeqgQfBOGs3Tllo5Nlx3mcB3Je9U3sZE18BhnRYqhu8= github.com/helmfile/vals v0.38.0/go.mod h1:g19d0aEn/BLOa9de42X3VXYMQTVs2FkJYFEfVPb4P3U= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= @@ -1352,10 +1352,10 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/ory/dockertest/v3 v3.11.0 h1:OiHcxKAvSDUwsEVh2BjxQQc/5EHz9n0va9awCtNGuyA= github.com/ory/dockertest/v3 v3.11.0/go.mod h1:VIPxS1gwT9NpPOrfD3rACs8Y9Z7yhzO4SB194iUDnUI= -github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= -github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= -github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks= -github.com/otiai10/mint v1.5.1/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM= +github.com/otiai10/copy v1.14.1 h1:5/7E6qsUMBaH5AnQ0sSLzzTg1oTECmcCmT6lvF45Na8= +github.com/otiai10/copy v1.14.1/go.mod h1:oQwrEDDOci3IM8dJF0d8+jnbfPDllW6vUjNc3DoZm9I= +github.com/otiai10/mint v1.6.3 h1:87qsV/aw1F5as1eH1zS/yqHY85ANKVMgkDrf9rcxbQs= +github.com/otiai10/mint v1.6.3/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= From 4429e41e1f275a50a026c2555f339b01f621d1d1 Mon Sep 17 00:00:00 2001 From: Zubair Haque Date: Mon, 13 Jan 2025 19:40:16 -0600 Subject: [PATCH 093/177] update kubectl version (1.30) to stay up to date with new releases (#1867) --- .github/workflows/Makefile | 2 +- Dockerfile | 7 +++---- Dockerfile.debian-stable-slim | 6 +++--- Dockerfile.ubuntu | 6 +++--- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/.github/workflows/Makefile b/.github/workflows/Makefile index a71cb30e..f85b53bc 100644 --- a/.github/workflows/Makefile +++ b/.github/workflows/Makefile @@ -1,6 +1,6 @@ HELM_VERSION ?= v3.7.2 KUSTOMIZE_VERSION ?= v5.4.3 -K8S_VERSION ?= v1.28.11 +K8S_VERSION ?= v1.30.8 MINIKUBE_VERSION ?= v1.31.1 SOPS_VERSION ?= v3.9.3 diff --git a/Dockerfile b/Dockerfile index c12a5acf..4afce123 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,13 +50,12 @@ RUN set -x && \ # 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.28.9" +ENV KUBECTL_VERSION="v1.30.8" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl" && \ case ${TARGETPLATFORM} in \ - # checksums are available at https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256 - "linux/amd64") KUBECTL_SHA256="b4693d0b22f509250694b10c7727c42b427d570af04f2065fe23a55d6c0051f1" ;; \ - "linux/arm64") KUBECTL_SHA256="e0341d3973213f8099e7fcbbf6d1d506967bc2b7a4faac3fb3b4340f226e9b2f" ;; \ + "linux/amd64") KUBECTL_SHA256="7f39bdcf768ce4b8c1428894c70c49c8b4d2eee52f3606eb02f5f7d10f66d692" ;; \ + "linux/arm64") KUBECTL_SHA256="e51d6a76fade0871a9143b64dc62a5ff44f369aa6cb4b04967d93798bf39d15b" ;; \ esac && \ echo "${KUBECTL_SHA256} kubectl" | sha256sum -c && \ chmod +x kubectl && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index 89d4fc89..fb9906fd 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -55,13 +55,13 @@ RUN set -x && \ # 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.28.9" +ENV KUBECTL_VERSION="v1.30.8" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl" && \ case ${TARGETPLATFORM} in \ # checksums are available at https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256 - "linux/amd64") KUBECTL_SHA256="b4693d0b22f509250694b10c7727c42b427d570af04f2065fe23a55d6c0051f1" ;; \ - "linux/arm64") KUBECTL_SHA256="e0341d3973213f8099e7fcbbf6d1d506967bc2b7a4faac3fb3b4340f226e9b2f" ;; \ + "linux/amd64") KUBECTL_SHA256="7f39bdcf768ce4b8c1428894c70c49c8b4d2eee52f3606eb02f5f7d10f66d692" ;; \ + "linux/arm64") KUBECTL_SHA256="e51d6a76fade0871a9143b64dc62a5ff44f369aa6cb4b04967d93798bf39d15b" ;; \ esac && \ echo "${KUBECTL_SHA256} kubectl" | sha256sum -c && \ chmod +x kubectl && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 2b8a8b14..171ff9b0 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -55,13 +55,13 @@ RUN set -x && \ # 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.28.9" +ENV KUBECTL_VERSION="v1.30.8" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl" && \ case ${TARGETPLATFORM} in \ # checksums are available at https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256 - "linux/amd64") KUBECTL_SHA256="b4693d0b22f509250694b10c7727c42b427d570af04f2065fe23a55d6c0051f1" ;; \ - "linux/arm64") KUBECTL_SHA256="e0341d3973213f8099e7fcbbf6d1d506967bc2b7a4faac3fb3b4340f226e9b2f" ;; \ + "linux/amd64") KUBECTL_SHA256="7f39bdcf768ce4b8c1428894c70c49c8b4d2eee52f3606eb02f5f7d10f66d692" ;; \ + "linux/arm64") KUBECTL_SHA256="e51d6a76fade0871a9143b64dc62a5ff44f369aa6cb4b04967d93798bf39d15b" ;; \ esac && \ echo "${KUBECTL_SHA256} kubectl" | sha256sum -c && \ chmod +x kubectl && \ From d8f0c0cd608f600e8c012f7df6360c56d7121a20 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 08:29:26 +0800 Subject: [PATCH 094/177] build(deps): bump github.com/zclconf/go-cty from 1.16.0 to 1.16.1 (#1870) Bumps [github.com/zclconf/go-cty](https://github.com/zclconf/go-cty) from 1.16.0 to 1.16.1. - [Release notes](https://github.com/zclconf/go-cty/releases) - [Changelog](https://github.com/zclconf/go-cty/blob/main/CHANGELOG.md) - [Commits](https://github.com/zclconf/go-cty/compare/v1.16.0...v1.16.1) --- updated-dependencies: - dependency-name: github.com/zclconf/go-cty dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5596c210..c5226ab9 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 github.com/tj/assert v0.0.3 github.com/variantdev/dag v1.1.0 - github.com/zclconf/go-cty v1.16.0 + github.com/zclconf/go-cty v1.16.1 github.com/zclconf/go-cty-yaml v1.1.0 go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 diff --git a/go.sum b/go.sum index 392f1348..f9d05dce 100644 --- a/go.sum +++ b/go.sum @@ -1508,8 +1508,8 @@ github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1 github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= github.com/zalando/go-keyring v0.2.6 h1:r7Yc3+H+Ux0+M72zacZoItR3UDxeWfKTcabvkI8ua9s= github.com/zalando/go-keyring v0.2.6/go.mod h1:2TCrxYrbUNYfNS/Kgy/LSrkSQzZ5UPVH85RwfczwvcI= -github.com/zclconf/go-cty v1.16.0 h1:xPKEhst+BW5D0wxebMZkxgapvOE/dw7bFTlgSc9nD6w= -github.com/zclconf/go-cty v1.16.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty v1.16.1 h1:a5TZEPzBFFR53udlIKApXzj8JIF4ZNQ6abH79z5R1S0= +github.com/zclconf/go-cty v1.16.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= github.com/zclconf/go-cty-yaml v1.1.0 h1:nP+jp0qPHv2IhUVqmQSzjvqAWcObN0KBkUl2rWBdig0= From a3f7146a6ea3ed66faf72be0fe218de866ce0e44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 08:30:31 +0800 Subject: [PATCH 095/177] build(deps): bump github.com/hashicorp/go-getter from 1.7.7 to 1.7.8 (#1869) Bumps [github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter) from 1.7.7 to 1.7.8. - [Release notes](https://github.com/hashicorp/go-getter/releases) - [Changelog](https://github.com/hashicorp/go-getter/blob/main/.goreleaser.yml) - [Commits](https://github.com/hashicorp/go-getter/compare/v1.7.7...v1.7.8) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-getter dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c5226ab9..b5534a5a 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 - github.com/hashicorp/go-getter v1.7.7 + github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.20.6 github.com/helmfile/vals v0.38.0 diff --git a/go.sum b/go.sum index f9d05dce..3164f0d9 100644 --- a/go.sum +++ b/go.sum @@ -1161,8 +1161,8 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.7 h1:vvjtrrTFctNCxytDWukhMOHYXn+UQVbtgkbE3P7UCe0= -github.com/hashicorp/go-getter v1.7.7/go.mod h1:2c6CboOEb9jG6YvmC9xdD+tyAFsrUaJPedwXDGr0TM4= +github.com/hashicorp/go-getter v1.7.8 h1:mshVHx1Fto0/MydBekWan5zUipGq7jO0novchgMmSiY= +github.com/hashicorp/go-getter v1.7.8/go.mod h1:2c6CboOEb9jG6YvmC9xdD+tyAFsrUaJPedwXDGr0TM4= github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= From afe18e8031d7f13e582975e3971d2841716e42b5 Mon Sep 17 00:00:00 2001 From: Justin Lai Date: Wed, 15 Jan 2025 00:33:16 -0500 Subject: [PATCH 096/177] feat: Add "--no-hooks" to helmfile template (#1813) * Adding support for no-hooks in template cmd Signed-off-by: Justin Lai --- cmd/template.go | 2 +- pkg/app/app.go | 1 + pkg/app/app_template_test.go | 16 +++ pkg/app/app_test.go | 6 +- pkg/app/config.go | 1 + pkg/app/testdata/app_template_test/no-hooks | 115 ++++++++++++++++++++ pkg/config/template.go | 7 ++ pkg/state/state.go | 5 + 8 files changed, 151 insertions(+), 2 deletions(-) create mode 100644 pkg/app/testdata/app_template_test/no-hooks diff --git a/cmd/template.go b/cmd/template.go index fb26ff3a..6cb81fea 100644 --- a/cmd/template.go +++ b/cmd/template.go @@ -40,11 +40,11 @@ func NewTemplateCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.BoolVar(&templateOptions.Validate, "validate", false, "validate your manifests against the Kubernetes cluster you are currently pointing at. Note that this requires access to a Kubernetes cluster to obtain information necessary for validating, like the template of available API versions") f.BoolVar(&templateOptions.IncludeCRDs, "include-crds", false, "include CRDs in the templated output") f.BoolVar(&templateOptions.SkipTests, "skip-tests", false, "skip tests from templated output") - f.BoolVar(&templateOptions.SkipNeeds, "skip-needs", true, `do not automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when --selector/-l flag is not provided. Defaults to true when --include-needs or --include-transitive-needs is not provided`) f.BoolVar(&templateOptions.IncludeNeeds, "include-needs", false, `automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when --selector/-l flag is not provided`) f.BoolVar(&templateOptions.IncludeTransitiveNeeds, "include-transitive-needs", false, `like --include-needs, but also includes transitive needs (needs of needs). Does nothing when --selector/-l flag is not provided. Overrides exclusions of other selectors and conditions.`) f.BoolVar(&templateOptions.SkipCleanup, "skip-cleanup", false, "Stop cleaning up temporary values generated by helmfile and helm-secrets. Useful for debugging. Don't use in production for security") + f.BoolVar(&templateOptions.NoHooks, "no-hooks", false, "do not template files made by hooks.") f.StringVar(&templateOptions.PostRenderer, "post-renderer", "", `pass --post-renderer to "helm template" or "helm upgrade --install"`) f.StringArrayVar(&templateOptions.PostRendererArgs, "post-renderer-args", nil, `pass --post-renderer-args to "helm template" or "helm upgrade --install"`) f.BoolVar(&templateOptions.SkipSchemaValidation, "skip-schema-validation", false, `pass skip-schema-validation to "helm template" or "helm upgrade --install"`) diff --git a/pkg/app/app.go b/pkg/app/app.go index 7991c144..61b4dce1 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -1976,6 +1976,7 @@ func (a *App) template(r *Run, c TemplateConfigProvider) (bool, []error) { opts := &state.TemplateOpts{ Set: c.Set(), IncludeCRDs: c.IncludeCRDs(), + NoHooks: c.NoHooks(), OutputDirTemplate: c.OutputDirTemplate(), SkipCleanup: c.SkipCleanup(), SkipTests: c.SkipTests(), diff --git a/pkg/app/app_template_test.go b/pkg/app/app_template_test.go index 921bcb84..a29b1fea 100644 --- a/pkg/app/app_template_test.go +++ b/pkg/app/app_template_test.go @@ -24,6 +24,7 @@ func TestTemplate(t *testing.T) { skipNeeds bool includeNeeds bool includeTransitiveNeeds bool + noHooks bool showOnly []string } @@ -133,6 +134,7 @@ releases: includeNeeds: tc.fields.includeNeeds, includeTransitiveNeeds: tc.fields.includeTransitiveNeeds, showOnly: tc.fields.showOnly, + noHooks: tc.fields.noHooks, }) var gotErr string @@ -299,6 +301,20 @@ releases: }) }) + t.Run("no-hooks", func(t *testing.T) { + check(t, testcase{ + fields: fields{ + skipNeeds: true, + noHooks: true, + }, + selectors: []string{"app=test"}, + templated: []exectest.Release{ + {Name: "external-secrets", Flags: []string{"--namespace", "default", "--no-hooks"}}, + {Name: "my-release", Flags: []string{"--namespace", "default", "--no-hooks"}}, + }, + }) + }) + t.Run("bad selector", func(t *testing.T) { check(t, testcase{ selectors: []string{"app=test_non_existent"}, diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index b6198f38..df79ee51 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -2088,6 +2088,7 @@ type configImpl struct { selectors []string set []string output string + noHooks bool includeCRDs bool skipCleanup bool skipCRDs bool @@ -2167,6 +2168,10 @@ func (c configImpl) IncludeCRDs() bool { return c.includeCRDs } +func (c configImpl) NoHooks() bool { + return c.noHooks +} + func (c configImpl) Concurrency() int { return 1 } @@ -2389,7 +2394,6 @@ func (a applyConfig) DiffArgs() string { } // helmfile-template-only flags - func (a applyConfig) IncludeCRDs() bool { return a.includeCRDs } diff --git a/pkg/app/config.go b/pkg/app/config.go index bb76811a..b6e3a064 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -248,6 +248,7 @@ type TemplateConfigProvider interface { SkipTests() bool OutputDir() string IncludeCRDs() bool + NoHooks() bool KubeVersion() string ShowOnly() []string diff --git a/pkg/app/testdata/app_template_test/no-hooks b/pkg/app/testdata/app_template_test/no-hooks new file mode 100644 index 00000000..67ee2936 --- /dev/null +++ b/pkg/app/testdata/app_template_test/no-hooks @@ -0,0 +1,115 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +merged environment: &{default map[] map[]} +WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs +2 release(s) matching app=test found in helmfile.yaml + +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/default/external-secrets +2 default/default/my-release + +processing releases in group 1/2: default/default/external-secrets +processing releases in group 2/2: default/default/my-release +changing working directory back to "/path/to" diff --git a/pkg/config/template.go b/pkg/config/template.go index 30d2eea4..134cc6aa 100644 --- a/pkg/config/template.go +++ b/pkg/config/template.go @@ -30,6 +30,8 @@ type TemplateOptions struct { IncludeNeeds bool // IncludeTransitiveNeeds is the include transitive needs flag IncludeTransitiveNeeds bool + // No-Hooks is the no hooks flag + NoHooks bool // SkipCleanup is the skip cleanup flag SkipCleanup bool // Propagate '--post-renderer' to helmv3 template and helm install @@ -73,6 +75,11 @@ func (t *TemplateImpl) IncludeCRDs() bool { return t.TemplateOptions.IncludeCRDs } +// NoHooks returns the no hooks +func (t *TemplateImpl) NoHooks() bool { + return t.TemplateOptions.NoHooks +} + // IncludeNeeds returns the include needs func (t *TemplateImpl) IncludeNeeds() bool { return t.TemplateOptions.IncludeNeeds || t.IncludeTransitiveNeeds() diff --git a/pkg/state/state.go b/pkg/state/state.go index 421491b4..e918933b 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1484,6 +1484,7 @@ type TemplateOpts struct { SkipCleanup bool OutputDirTemplate string IncludeCRDs bool + NoHooks bool SkipTests bool PostRenderer string PostRendererArgs []string @@ -1566,6 +1567,10 @@ func (st *HelmState) TemplateReleases(helm helmexec.Interface, outputDir string, flags = append(flags, "--include-crds") } + if opts.NoHooks { + flags = append(flags, "--no-hooks") + } + if opts.SkipTests { flags = append(flags, "--skip-tests") } From d0b75412d1726d5db75010697553e8c90d207c3a Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Thu, 16 Jan 2025 09:36:39 +0800 Subject: [PATCH 097/177] update helm and k8s versions in ci, dockerfiles, and go.mod (#1872) --- .github/workflows/ci.yaml | 12 +++---- Dockerfile | 6 ++-- Dockerfile.debian-stable-slim | 6 ++-- Dockerfile.ubuntu | 6 ++-- go.mod | 32 ++++++++++------- go.sum | 67 ++++++++++++++++++++++------------- pkg/app/init.go | 4 +-- 7 files changed, 79 insertions(+), 54 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6c9c64fa..316a6a2f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -54,13 +54,13 @@ jobs: # 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.15.4 + - helm-version: v3.16.4 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' v1mode: '' - - helm-version: v3.15.4 + - helm-version: v3.16.4 kustomize-version: v5.4.3 # We assume that the helm-secrets plugin is supposed to # work with the two most recent helm minor versions. @@ -71,20 +71,20 @@ jobs: plugin-diff-version: 3.9.12 extra-helmfile-flags: '' v1mode: '' - - helm-version: v3.16.4 + - helm-version: v3.17.0 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' v1mode: '' - - helm-version: v3.16.4 + - helm-version: v3.17.0 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.12 extra-helmfile-flags: '' v1mode: '' # Helmfile v1 - - helm-version: v3.16.4 + - helm-version: v3.17.0 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.12 @@ -92,7 +92,7 @@ jobs: v1mode: 'true' # In case you need to test some optional helmfile features, # enable it via extra-helmfile-flags below. - - helm-version: v3.16.4 + - helm-version: v3.17.0 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.12 diff --git a/Dockerfile b/Dockerfile index 4afce123..a40a38b5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.4" +ARG HELM_VERSION="v3.17.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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="fc307327959aa38ed8f9f7e66d45492bb022a66c3e5da6063958254b9767d179" ;; \ - "linux/arm64") HELM_SHA256="d3f8f15b3d9ec8c8678fbf3280c3e5902efabe5912e2f9fcf29107efbc8ead69" ;; \ + "linux/amd64") HELM_SHA256="fb5d12662fde6eeff36ac4ccacbf3abed96b0ee2de07afdde4edb14e613aee24" ;; \ + "linux/arm64") HELM_SHA256="c4d4be8e80082b7eaa411e3e231d62cf05d01cddfef59b0d01006a7901e11ee4" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index fb9906fd..4e8ef659 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.4" +ARG HELM_VERSION="v3.17.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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="fc307327959aa38ed8f9f7e66d45492bb022a66c3e5da6063958254b9767d179" ;; \ - "linux/arm64") HELM_SHA256="d3f8f15b3d9ec8c8678fbf3280c3e5902efabe5912e2f9fcf29107efbc8ead69" ;; \ + "linux/amd64") HELM_SHA256="fb5d12662fde6eeff36ac4ccacbf3abed96b0ee2de07afdde4edb14e613aee24" ;; \ + "linux/arm64") HELM_SHA256="c4d4be8e80082b7eaa411e3e231d62cf05d01cddfef59b0d01006a7901e11ee4" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 171ff9b0..caa05cf3 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.16.4" +ARG HELM_VERSION="v3.17.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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="fc307327959aa38ed8f9f7e66d45492bb022a66c3e5da6063958254b9767d179" ;; \ - "linux/arm64") HELM_SHA256="d3f8f15b3d9ec8c8678fbf3280c3e5902efabe5912e2f9fcf29107efbc8ead69" ;; \ + "linux/amd64") HELM_SHA256="fb5d12662fde6eeff36ac4ccacbf3abed96b0ee2de07afdde4edb14e613aee24" ;; \ + "linux/arm64") HELM_SHA256="c4d4be8e80082b7eaa411e3e231d62cf05d01cddfef59b0d01006a7901e11ee4" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/go.mod b/go.mod index b5534a5a..f0368f4f 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 - github.com/helmfile/chartify v0.20.6 + github.com/helmfile/chartify v0.20.7 github.com/helmfile/vals v0.38.0 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 @@ -29,7 +29,7 @@ require ( golang.org/x/sync v0.10.0 golang.org/x/term v0.28.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.16.4 + helm.sh/helm/v3 v3.17.0 k8s.io/apimachinery v0.32.0 ) @@ -113,7 +113,7 @@ require ( require ( al.essio.dev/pkg/shellescape v1.5.1 // indirect - cel.dev/expr v0.16.1 // indirect + cel.dev/expr v0.18.0 // indirect cloud.google.com/go/auth v0.10.2 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.5 // indirect cloud.google.com/go/compute/metadata v0.5.2 // indirect @@ -139,6 +139,7 @@ require ( github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect + github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/ProtonMail/go-crypto v1.1.3 // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/antchfx/jsonquery v1.3.6 // indirect @@ -173,9 +174,10 @@ require ( github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/chai2010/gettext-go v1.0.2 // indirect github.com/cloudflare/circl v1.4.0 // indirect github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect - github.com/containerd/containerd v1.7.23 // indirect + github.com/containerd/containerd v1.7.24 // indirect github.com/containerd/errdefs v0.3.0 // indirect github.com/containerd/log v0.1.0 // indirect github.com/containerd/platforms v0.2.1 // indirect @@ -194,6 +196,8 @@ require ( github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/envoyproxy/go-control-plane v0.13.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect + github.com/evanphx/json-patch v5.9.0+incompatible // indirect + github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect github.com/extism/go-sdk v1.6.1 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect @@ -225,7 +229,8 @@ require ( github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect github.com/gorilla/mux v1.8.0 // indirect - github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect + github.com/gorilla/websocket v1.5.0 // indirect + github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect @@ -233,7 +238,6 @@ require ( github.com/hashicorp/hcp-sdk-go v0.125.0 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca // indirect - github.com/imdario/mergo v0.3.16 // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -246,12 +250,14 @@ require ( github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect github.com/moby/locker v1.0.1 // indirect + github.com/moby/spdystream v0.5.0 // indirect github.com/moby/term v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect github.com/muesli/termenv v0.15.1 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect @@ -289,7 +295,6 @@ require ( go.opentelemetry.io/otel/sdk/metric v1.29.0 // indirect go.opentelemetry.io/otel/trace v1.30.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect - go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.32.0 // indirect golang.org/x/mod v0.21.0 // indirect @@ -301,14 +306,17 @@ require ( 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.31.3 // indirect - k8s.io/cli-runtime v0.31.3 // indirect - k8s.io/client-go v0.31.3 // indirect + k8s.io/api v0.32.0 // indirect + k8s.io/apiextensions-apiserver v0.32.0 // indirect + k8s.io/cli-runtime v0.32.0 // indirect + k8s.io/client-go v0.32.0 // indirect + k8s.io/component-base v0.32.0 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect + k8s.io/kubectl v0.32.0 // indirect k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect oras.land/oras-go v1.2.5 // indirect - sigs.k8s.io/kustomize/api v0.17.3 // indirect - sigs.k8s.io/kustomize/kyaml v0.17.2 // indirect + sigs.k8s.io/kustomize/api v0.18.0 // indirect + sigs.k8s.io/kustomize/kyaml v0.18.1 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect ) diff --git a/go.sum b/go.sum index 3164f0d9..15b6815b 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,8 @@ al.essio.dev/pkg/shellescape v1.5.1 h1:86HrALUujYS/h+GtqoB26SBEdkWfmMI6FubjXlsXy al.essio.dev/pkg/shellescape v1.5.1/go.mod h1:6sIqp7X2P6mThCQ7twERpZTuigpr6KbZWtls1U8I890= c2sp.org/CCTV/age v0.0.0-20240306222714-3ec4d716e805 h1:u2qwJeEvnypw+OCPUHmoZE3IqwfuN5kgDfo5MLzpNM0= c2sp.org/CCTV/age v0.0.0-20240306222714-3ec4d716e805/go.mod h1:FomMrUJ2Lxt5jCLmZkG3FHa72zUprnhd3v/Z18Snm4w= -cel.dev/expr v0.16.1 h1:NR0+oFYzR1CqLFhTAqg3ql59G9VfN8fKq1TCHJ6gq1g= -cel.dev/expr v0.16.1/go.mod h1:AsGA5zb3WruAEQeQng1RZdGEXmBj0jvMWh6l5SnNuC8= +cel.dev/expr v0.18.0 h1:CJ6drgk+Hf96lkLikr4rFf19WrU0BOWEihyZnI2TAzo= +cel.dev/expr v0.18.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -697,6 +697,8 @@ github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapp github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= +github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= +github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= @@ -739,6 +741,8 @@ github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= 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= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= @@ -819,6 +823,8 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= +github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= @@ -845,8 +851,8 @@ github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 h1:uVG5v+c6ndz github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= -github.com/containerd/containerd v1.7.23 h1:H2CClyUkmpKAGlhQp95g2WXHfLYc7whAuvZGBNYOOwQ= -github.com/containerd/containerd v1.7.23/go.mod h1:7QUzfURqZWCZV7RLNEn1XjUCQLEf0bkaK4GjUaZehxw= +github.com/containerd/containerd v1.7.24 h1:zxszGrGjrra1yYJW/6rhm9cJ1ZQ8rkKBR48brqsa7nA= +github.com/containerd/containerd v1.7.24/go.mod h1:7QUzfURqZWCZV7RLNEn1XjUCQLEf0bkaK4GjUaZehxw= github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8= github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= github.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4= @@ -923,6 +929,10 @@ github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0+ github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= +github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= +github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc= github.com/extism/go-sdk v1.6.1 h1:gkbkG5KzYKrv8mLggw5ojg/JulXfEbLIRVhbw9Ot7S0= github.com/extism/go-sdk v1.6.1/go.mod h1:yRolc4PvIUQ9J/BBB3QZ5EY1MtXAN2jqBGDGR3Sk54M= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -1147,12 +1157,14 @@ github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gosuri/uitable v0.0.4 h1:IG2xLKRvErL3uhY6e1BylFzG+aJiwQviDDTfOKeKTpY= github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo= github.com/goware/prefixer v0.0.0-20160118172347-395022866408 h1:Y9iQJfEqnN3/Nce9cOegemcy/9Ai5k3huT6E80F3zaw= github.com/goware/prefixer v0.0.0-20160118172347-395022866408/go.mod h1:PE1ycukgRPJ7bJ9a1fdfQ9j8i/cEcRAoLZzbxYpNB/s= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= @@ -1201,8 +1213,8 @@ github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1Dd github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= -github.com/helmfile/chartify v0.20.6 h1:npNsBLjhGk3YqHx38GD4hfGkkAsFSzlO+rk5o8xDTGU= -github.com/helmfile/chartify v0.20.6/go.mod h1:bWeG6TKdc62oS1ArQ5j8K2PogAqWC9P0hCVSvfvnDME= +github.com/helmfile/chartify v0.20.7 h1:aOUvSFHrT/0LOUDz1Mcg2TDBtpvXBrZSYnBZvwmqruo= +github.com/helmfile/chartify v0.20.7/go.mod h1:mWN+sWWf+lnA225jZIqqgpwbGjiT3NAQHGCm5vdC0zw= github.com/helmfile/vals v0.38.0 h1:XeqgQfBOGs3Tllo5Nlx3mcB3Je9U3sZE18BhnRYqhu8= github.com/helmfile/vals v0.38.0/go.mod h1:g19d0aEn/BLOa9de42X3VXYMQTVs2FkJYFEfVPb4P3U= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= @@ -1216,8 +1228,6 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca h1:T54Ema1DU8ngI+aef9ZhAhNGQhcRTrWxVeG07F+c/Rw= github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= -github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= -github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/itchyny/gojq v0.12.16 h1:yLfgLxhIr/6sJNVmYfQjTIv0jGctu6/DgDoivmxTr7g= @@ -1316,6 +1326,8 @@ github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3N github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= +github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU= +github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= @@ -1336,6 +1348,8 @@ github.com/muesli/termenv v0.15.1/go.mod h1:HeAQPTzpfs016yGtA4g00CsdYnVLJvxsS4AN github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= @@ -1550,8 +1564,6 @@ go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= -go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= -go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= go.szostok.io/version v1.2.0 h1:8eMMdfsonjbibwZRLJ8TnrErY8bThFTQsZYV16mcXms= go.szostok.io/version v1.2.0/go.mod h1:EiU0gPxaXb6MZ+apSN0WgDO6F4JXyC99k9PIXf2k2E8= go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= @@ -1853,7 +1865,6 @@ golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXct 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= -golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= @@ -2271,8 +2282,8 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -helm.sh/helm/v3 v3.16.4 h1:rBn/h9MACw+QlhxQTjpl8Ifx+VTWaYsw3rguGBYBzr0= -helm.sh/helm/v3 v3.16.4/go.mod h1:k8QPotUt57wWbi90w3LNmg3/MWcLPigVv+0/X4B8BzA= +helm.sh/helm/v3 v3.17.0 h1:DUD4AGdNVn7PSTYfxe1gmQG7s18QeWv/4jI9TubnhT0= +helm.sh/helm/v3 v3.17.0/go.mod h1:Mo7eGyKPPHlS0Ml67W8z/lbkox/gD9Xt1XpD6bxvZZA= 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= @@ -2281,18 +2292,24 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= -k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= +k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE= +k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0= +k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0= +k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw= k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg= k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/cli-runtime v0.31.3 h1:fEQD9Xokir78y7pVK/fCJN090/iYNrLHpFbGU4ul9TI= -k8s.io/cli-runtime v0.31.3/go.mod h1:Q2jkyTpl+f6AtodQvgDI8io3jrfr+Z0LyQBPJJ2Btq8= -k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= -k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= +k8s.io/cli-runtime v0.32.0 h1:dP+OZqs7zHPpGQMCGAhectbHU2SNCuZtIimRKTv2T1c= +k8s.io/cli-runtime v0.32.0/go.mod h1:Mai8ht2+esoDRK5hr861KRy6z0zHsSTYttNVJXgP3YQ= +k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8= +k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8= +k8s.io/component-base v0.32.0 h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU= +k8s.io/component-base v0.32.0/go.mod h1:JLG2W5TUxUu5uDyKiH2R/7NnxJo1HlPoRIIbVLkK5eM= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= +k8s.io/kubectl v0.32.0 h1:rpxl+ng9qeG79YA4Em9tLSfX0G8W0vfaiPVrc/WR7Xw= +k8s.io/kubectl v0.32.0/go.mod h1:qIjSX+QgPQUgdy8ps6eKsYNF+YmFOAO3WygfucIqFiE= k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= @@ -2337,10 +2354,10 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= -sigs.k8s.io/kustomize/api v0.17.3 h1:6GCuHSsxq7fN5yhF2XrC+AAr8gxQwhexgHflOAD/JJU= -sigs.k8s.io/kustomize/api v0.17.3/go.mod h1:TuDH4mdx7jTfK61SQ/j1QZM/QWR+5rmEiNjvYlhzFhc= -sigs.k8s.io/kustomize/kyaml v0.17.2 h1:+AzvoJUY0kq4QAhH/ydPHHMRLijtUKiyVyh7fOSshr0= -sigs.k8s.io/kustomize/kyaml v0.17.2/go.mod h1:9V0mCjIEYjlXuCdYsSXvyoy2BTsLESH7TlGV81S282U= +sigs.k8s.io/kustomize/api v0.18.0 h1:hTzp67k+3NEVInwz5BHyzc9rGxIauoXferXyjv5lWPo= +sigs.k8s.io/kustomize/api v0.18.0/go.mod h1:f8isXnX+8b+SGLHQ6yO4JG1rdkZlvhaCf/uZbLVMb0U= +sigs.k8s.io/kustomize/kyaml v0.18.1 h1:WvBo56Wzw3fjS+7vBjN6TeivvpbW9GmRaWZ9CIVmt4E= +sigs.k8s.io/kustomize/kyaml v0.18.1/go.mod h1:C3L2BFVU1jgcddNBE1TxuVLgS46TjObMwW5FT9FcjYo= sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA= sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= diff --git a/pkg/app/init.go b/pkg/app/init.go index f1b475b0..4ac0aeb9 100644 --- a/pkg/app/init.go +++ b/pkg/app/init.go @@ -17,8 +17,8 @@ import ( ) const ( - HelmRequiredVersion = "v3.15.4" - HelmRecommendedVersion = "v3.16.4" + HelmRequiredVersion = "v3.16.4" + HelmRecommendedVersion = "v3.17.0" HelmDiffRecommendedVersion = "v3.9.13" HelmSecretsRecommendedVersion = "v4.6.0" HelmGitRecommendedVersion = "v0.15.1" From 38b2cc7f951f3cbd99123ede58dded386b8c596e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2025 18:22:59 +0800 Subject: [PATCH 098/177] build(deps): bump github.com/helmfile/vals from 0.38.0 to 0.39.0 (#1876) Bumps [github.com/helmfile/vals](https://github.com/helmfile/vals) from 0.38.0 to 0.39.0. - [Release notes](https://github.com/helmfile/vals/releases) - [Changelog](https://github.com/helmfile/vals/blob/main/.goreleaser.yml) - [Commits](https://github.com/helmfile/vals/compare/v0.38.0...v0.39.0) --- updated-dependencies: - dependency-name: github.com/helmfile/vals dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 50 +++++++++++++-------------- go.sum | 107 +++++++++++++++++++++++++++++---------------------------- 2 files changed, 79 insertions(+), 78 deletions(-) diff --git a/go.mod b/go.mod index f0368f4f..c095c595 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.20.7 - github.com/helmfile/vals v0.38.0 + github.com/helmfile/vals v0.39.0 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.10.0 @@ -38,7 +38,7 @@ replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545 require ( cloud.google.com/go v0.116.0 // indirect cloud.google.com/go/iam v1.2.2 // indirect - cloud.google.com/go/storage v1.47.0 // indirect + cloud.google.com/go/storage v1.50.0 // indirect filippo.io/age v1.2.1 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect @@ -48,7 +48,7 @@ require ( github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/a8m/envsubst v1.4.2 // indirect - github.com/aws/aws-sdk-go v1.55.5 + github.com/aws/aws-sdk-go v1.55.6 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 @@ -59,7 +59,7 @@ require ( github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/googleapis/gax-go/v2 v2.14.0 // indirect + github.com/googleapis/gax-go/v2 v2.14.1 // indirect github.com/goware/prefixer v0.0.0-20160118172347-395022866408 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -98,14 +98,14 @@ require ( go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.34.0 // indirect - golang.org/x/oauth2 v0.24.0 // indirect + golang.org/x/oauth2 v0.25.0 // indirect golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.8.0 // indirect - google.golang.org/api v0.209.0 // indirect - google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f // indirect + google.golang.org/api v0.215.0 // indirect + google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect google.golang.org/grpc v1.68.0 // indirect - google.golang.org/protobuf v1.35.2 // indirect + google.golang.org/protobuf v1.36.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect sigs.k8s.io/yaml v1.4.0 // indirect @@ -114,19 +114,19 @@ require ( require ( al.essio.dev/pkg/shellescape v1.5.1 // indirect cel.dev/expr v0.18.0 // indirect - cloud.google.com/go/auth v0.10.2 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.5 // indirect - cloud.google.com/go/compute/metadata v0.5.2 // indirect - cloud.google.com/go/kms v1.20.1 // indirect + cloud.google.com/go/auth v0.13.0 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.6 // indirect + cloud.google.com/go/compute/metadata v0.6.0 // indirect + cloud.google.com/go/kms v1.20.5 // indirect cloud.google.com/go/longrunning v0.6.2 // indirect cloud.google.com/go/monitoring v1.21.2 // indirect - cloud.google.com/go/secretmanager v1.14.2 // indirect + cloud.google.com/go/secretmanager v1.14.3 // indirect github.com/1Password/connect-sdk-go v1.5.3 // indirect - github.com/1password/onepassword-sdk-go v0.1.4 // indirect + github.com/1password/onepassword-sdk-go v0.1.6 // indirect github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/AlecAivazis/survey/v2 v2.3.6 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.3.0 // indirect @@ -134,16 +134,16 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.3.1 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.3.2 // indirect github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.1 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/ProtonMail/go-crypto v1.1.3 // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/antchfx/jsonquery v1.3.6 // indirect - github.com/antchfx/xpath v1.3.2 // indirect + github.com/antchfx/xpath v1.3.3 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect @@ -182,7 +182,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/containerd/platforms v0.2.1 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect - github.com/cyberark/conjur-api-go v0.12.7 // indirect + github.com/cyberark/conjur-api-go v0.12.10 // indirect github.com/danieljoos/wincred v1.2.2 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/cli v27.3.1+incompatible // indirect @@ -194,7 +194,7 @@ require ( github.com/dustin/go-humanize v1.0.1 // indirect github.com/dylibso/observe-sdk/go v0.0.0-20240819160327-2d926c5d788a // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect - github.com/envoyproxy/go-control-plane v0.13.0 // indirect + github.com/envoyproxy/go-control-plane v0.13.1 // indirect github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect github.com/evanphx/json-patch v5.9.0+incompatible // indirect github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect @@ -235,7 +235,7 @@ require ( github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcp-sdk-go v0.125.0 // indirect + github.com/hashicorp/hcp-sdk-go v0.131.0 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect @@ -274,7 +274,7 @@ require ( github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect github.com/tetratelabs/wabin v0.0.0-20230304001439-f6f874872834 // indirect - github.com/tetratelabs/wazero v1.8.1 // indirect + github.com/tetratelabs/wazero v1.8.2 // indirect github.com/tidwall/gjson v1.18.0 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect @@ -299,8 +299,8 @@ require ( golang.org/x/crypto v0.32.0 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/tools v0.26.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241223144023-3abc09e42ca8 // indirect google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/gookit/color.v1 v1.1.6 // indirect diff --git a/go.sum b/go.sum index 15b6815b..7fd40a7e 100644 --- a/go.sum +++ b/go.sum @@ -105,10 +105,10 @@ cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVo cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= -cloud.google.com/go/auth v0.10.2 h1:oKF7rgBfSHdp/kuhXtqU/tNDr0mZqhYbEh+6SiqzkKo= -cloud.google.com/go/auth v0.10.2/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= -cloud.google.com/go/auth/oauth2adapt v0.2.5 h1:2p29+dePqsCHPP1bqDJcKj4qxRyYCcbzKpFyKGt3MTk= -cloud.google.com/go/auth/oauth2adapt v0.2.5/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= +cloud.google.com/go/auth v0.13.0 h1:8Fu8TZy167JkW8Tj3q7dIkr2v4cndv41ouecJx0PAHs= +cloud.google.com/go/auth v0.13.0/go.mod h1:COOjD9gwfKNKz+IIduatIhYJQIc0mG3H102r/EMxX6Q= +cloud.google.com/go/auth/oauth2adapt v0.2.6 h1:V6a6XDu2lTwPZWOawrAa9HUK+DB2zfJyTuciBG5hFkU= +cloud.google.com/go/auth/oauth2adapt v0.2.6/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= @@ -188,8 +188,8 @@ cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZ cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= -cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= +cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I= +cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg= cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= @@ -344,8 +344,8 @@ cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4 cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= -cloud.google.com/go/kms v1.20.1 h1:og29Wv59uf2FVaZlesaiDAqHFzHaoUyHI3HYp9VUHVg= -cloud.google.com/go/kms v1.20.1/go.mod h1:LywpNiVCvzYNJWS9JUcGJSVTNSwPwi0vBAotzDqn2nc= +cloud.google.com/go/kms v1.20.5 h1:aQQ8esAIVZ1atdJRxihhdxGQ64/zEbJoJnCz/ydSmKg= +cloud.google.com/go/kms v1.20.5/go.mod h1:C5A8M1sv2YWYy1AE6iSrnddSG9lRGdJq5XEdBy28Lmw= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= @@ -496,8 +496,8 @@ cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISI cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= -cloud.google.com/go/secretmanager v1.14.2 h1:2XscWCfy//l/qF96YE18/oUaNJynAx749Jg3u0CjQr8= -cloud.google.com/go/secretmanager v1.14.2/go.mod h1:Q18wAPMM6RXLC/zVpWTlqq2IBSbbm7pKBlM3lCKsmjw= +cloud.google.com/go/secretmanager v1.14.3 h1:XVGHbcXEsbrgi4XHzgK5np81l1eO7O72WOXHhXUemrM= +cloud.google.com/go/secretmanager v1.14.3/go.mod h1:Pwzcfn69Ni9Lrk1/XBzo1H9+MCJwJ6CDCoeoQUsMN+c= cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= @@ -553,8 +553,8 @@ cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeL cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= -cloud.google.com/go/storage v1.47.0 h1:ajqgt30fnOMmLfWfu1PWcb+V9Dxz6n+9WKjdNg5R4HM= -cloud.google.com/go/storage v1.47.0/go.mod h1:Ks0vP374w0PW6jOUameJbapbQKXqkjGd/OJRp2fb9IQ= +cloud.google.com/go/storage v1.50.0 h1:3TbVkzTooBvnZsk7WaAQfOsNrdoM8QHusXA1cpk6QJs= +cloud.google.com/go/storage v1.50.0/go.mod h1:l7XeiD//vx5lfqE3RavfmU9yvk5Pp0Zhcv482poyafY= cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= @@ -631,18 +631,18 @@ gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zum git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/1Password/connect-sdk-go v1.5.3 h1:KyjJ+kCKj6BwB2Y8tPM1Ixg5uIS6HsB0uWA8U38p/Uk= github.com/1Password/connect-sdk-go v1.5.3/go.mod h1:5rSymY4oIYtS4G3t0oMkGAXBeoYiukV3vkqlnEjIDJs= -github.com/1password/onepassword-sdk-go v0.1.4 h1:WLSc3d8BTI0+ltlzMA5i726IxUrujnQvCjdKM2GkQO0= -github.com/1password/onepassword-sdk-go v0.1.4/go.mod h1:Wb3xGWJSzazA699hlAULC/kK5gvjxyTEP5uZNyP21Ro= +github.com/1password/onepassword-sdk-go v0.1.6 h1:oXmysmOSqhJ5S1+ViV33xwbrE8/0EJjPRo4a3o9afmU= +github.com/1password/onepassword-sdk-go v0.1.6/go.mod h1:tCgAKPZA64sVLmwizpOtFVc+OtXYHCwSp/+2Y+7CxyY= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AlecAivazis/survey/v2 v2.3.6 h1:NvTuVHISgTHEHeBFqt6BHOe4Ny/NwGZr7w+F8S9ziyw= github.com/AlecAivazis/survey/v2 v2.3.6/go.mod h1:4AuI9b7RjAR+G7v9+C4YSlX/YL3K3cWNXgWXOhllqvI= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 h1:JZg6HRh6W6U4OLl6lk7BZ7BLisIzM9dG1R50zUk9C/M= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0/go.mod h1:YL1xnZ6QejvQHWJrX/AvhFl4WW4rqHVoKspWNVwFk0M= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 h1:B/dfvscEQtew9dVuoxqxrUKKv8Ih2f55PydknDamU+g= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0/go.mod h1:fiPSssYvltE08HJchL04dOy+RD4hgrjph0cwGGMntdI= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0 h1:+m0M/LFxN43KvULkDNfdXOgrjtg6UYJPFBJyuEcRCAw= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0/go.mod h1:PwOyop78lveYMRs6oCxjiVyBdyCgIYH6XHIVZO9/SFQ= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 h1:g0EZJwz7xkXQiZAI5xi9f3WWFYBlX1CPTrR+NDToRkQ= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0/go.mod h1:XCW7KnZet0Opnr7HccfUw1PLc4CjHqpcaxW8DHklNkQ= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.1 h1:1mvYtZfWQAnwNah/C+Z+Jb9rQH95LPE2vlmMuWAHJk8= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.1/go.mod h1:75I/mXtme1JyWFtz8GocPHVFyH421IBoZErnO16dd0k= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.1 h1:Bk5uOhSAenHyR5P61D/NzeQCv+4fEVV8mOkJ82NqpWw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.1/go.mod h1:QZ4pw3or1WPmRBxf0cHd1tknzrT54WPBOQoGutCPvSU= github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal v1.1.2 h1:mLY+pNLjCUeKhgnAJWAKhEUQM+RJQo2H1fuGSw1Ky1E= @@ -679,15 +679,15 @@ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUM github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.3.1 h1:gUDtaZk8heteyfdmv+pcfHvhR9llnh7c7GMwZ8RVG04= -github.com/AzureAD/microsoft-authentication-library-for-go v1.3.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.3.2 h1:kYRSnvJju5gYVyhkij+RTJ/VR6QIUaCfWeaFm2ycsjQ= +github.com/AzureAD/microsoft-authentication-library-for-go v1.3.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4 h1:s7/zwMi5w+KnlumDVbX1+P6mNAk5o7Wvx0VmvrQ7Bm0= github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4/go.mod h1:ipnA9Lpn5YM+FDSQZ7VWNjcuVurchInoGKm+v7O0sGs= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.1 h1:pB2F2JKCj1Znmp2rwxxt1J0Fg0wezTMgWYk5Mpbi1kg= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.1/go.mod h1:itPGVDKf9cC/ov4MdvJ2QZ0khw4bfoo9jzwTJlaxy2k= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 h1:UQ0AhxogsIRZDkElkblfnwjc3IaltCm2HUMvezQaL7s= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1/go.mod h1:jyqM3eLpJ3IbIFDTKVz2rF9T/xWGW0rIriGwnz8l9Tk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.48.1 h1:oTX4vsorBZo/Zdum6OKPA4o7544hm6smoRv1QjpTwGo= @@ -731,8 +731,9 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antchfx/jsonquery v1.3.6 h1:TaSfeAh7n6T11I74bsZ1FswreIfrbJ0X+OyLflx6mx4= github.com/antchfx/jsonquery v1.3.6/go.mod h1:fGzSGJn9Y826Qd3pC8Wx45avuUwpkePsACQJYy+58BU= -github.com/antchfx/xpath v1.3.2 h1:LNjzlsSjinu3bQpw9hWMY9ocB80oLOWuQqFvO6xt51U= github.com/antchfx/xpath v1.3.2/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= +github.com/antchfx/xpath v1.3.3 h1:tmuPQa1Uye0Ym1Zn65vxPgfltWb/Lxu2jeqIGteJSRs= +github.com/antchfx/xpath v1.3.3/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= @@ -748,8 +749,8 @@ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:W 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.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= -github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go v1.55.6 h1:cSg4pvZ3m8dgYcgqB97MrcdjUmZ1BeMYKUxMMB89IPk= +github.com/aws/aws-sdk-go v1.55.6/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v1.32.6 h1:7BokKRgRPuGmKkFMhEg/jSul+tB9VvXhcViILtfG8b4= github.com/aws/aws-sdk-go-v2 v1.32.6/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 h1:lL7IfaFzngfx0ZwUGOZdsFFnQ5uLvR0hWqqhyE7Q9M8= @@ -868,8 +869,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 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.12.7 h1:LxkiEeDolVoVR96Zfr+s2NhlEdyt/sIT2oFbtcYdlhk= -github.com/cyberark/conjur-api-go v0.12.7/go.mod h1:/lZcWpHodKrwJC85J8h6R8uCvt3TknQeUZMUxSinFGU= +github.com/cyberark/conjur-api-go v0.12.10 h1:exseTvvp7l4Fhw6RTE0kq9Ddipsk+941k945Nyoq8CE= +github.com/cyberark/conjur-api-go v0.12.10/go.mod h1:XNoyT5ZBLJAGjqXmelLv+eYMG4QxYkZWiw1zld3m0QQ= github.com/danieljoos/wincred v1.2.2 h1:774zMFJrqaeYCK2W57BgAem/MLi6mtSE47MB6BOJ0i0= github.com/danieljoos/wincred v1.2.2/go.mod h1:w7w4Utbrz8lqeMbDAK0lkNJUv5sAOkFi7nd/ogr0Uh8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -921,8 +922,8 @@ github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go. github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= -github.com/envoyproxy/go-control-plane v0.13.0 h1:HzkeUz1Knt+3bK+8LG1bxOO/jzWZmdxpwC51i202les= -github.com/envoyproxy/go-control-plane v0.13.0/go.mod h1:GRaKG3dwvFoTg4nj7aXdZnvMg4d7nvT/wl9WgVXn3Q8= +github.com/envoyproxy/go-control-plane v0.13.1 h1:vPfJZCkob6yTMEgS+0TwfTUfbHjfy/6vOJ8hUWX/uXE= +github.com/envoyproxy/go-control-plane v0.13.1/go.mod h1:X45hY0mufo6Fd0KW3rqsGvQMw58jvjymeCzBU3mWyHw= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= @@ -1149,8 +1150,8 @@ github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqE github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= -github.com/googleapis/gax-go/v2 v2.14.0 h1:f+jMrjBPl+DL9nI4IQzLUxMq7XrAqFYB7hBPqMNIe8o= -github.com/googleapis/gax-go/v2 v2.14.0/go.mod h1:lhBCnjdLrWRaPvLWhmc8IS24m9mr07qSYnHncrgo+zk= +github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q= +github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= @@ -1207,16 +1208,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos= github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= -github.com/hashicorp/hcp-sdk-go v0.125.0 h1:pak7lGeNmoQTR5Dkx+CxYF6xLjn1UJ4XPg43ldyle+Y= -github.com/hashicorp/hcp-sdk-go v0.125.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= +github.com/hashicorp/hcp-sdk-go v0.131.0 h1:2o2peovPIJ1/yj3GGcxyMn0ndiGaCML0mosnsHPsikE= +github.com/hashicorp/hcp-sdk-go v0.131.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1DdPo= github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= github.com/helmfile/chartify v0.20.7 h1:aOUvSFHrT/0LOUDz1Mcg2TDBtpvXBrZSYnBZvwmqruo= github.com/helmfile/chartify v0.20.7/go.mod h1:mWN+sWWf+lnA225jZIqqgpwbGjiT3NAQHGCm5vdC0zw= -github.com/helmfile/vals v0.38.0 h1:XeqgQfBOGs3Tllo5Nlx3mcB3Je9U3sZE18BhnRYqhu8= -github.com/helmfile/vals v0.38.0/go.mod h1:g19d0aEn/BLOa9de42X3VXYMQTVs2FkJYFEfVPb4P3U= +github.com/helmfile/vals v0.39.0 h1:8V1NN4ac7SHFCjq3tlTO8zHKFQ26DY9qVGRKPhYDHoE= +github.com/helmfile/vals v0.39.0/go.mod h1:GoA8SSsiX661IFaG4E5O+FSPl+hW2MLyWR9zxzAjR+A= 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= @@ -1413,8 +1414,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= -github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= +github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E= +github.com/redis/go-redis/v9 v9.7.0/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= @@ -1477,8 +1478,8 @@ github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 h1:BhIUXV github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939/go.mod h1:omGxs4/6hNjxPKUTjmaNkPzehSnNJOJN6pMEbrlYIT4= github.com/tetratelabs/wabin v0.0.0-20230304001439-f6f874872834 h1:ZF+QBjOI+tILZjBaFj3HgFonKXUcwgJ4djLb6i42S3Q= github.com/tetratelabs/wabin v0.0.0-20230304001439-f6f874872834/go.mod h1:m9ymHTgNSEjuxvw8E7WWe4Pl4hZQHXONY8wE6dMLaRk= -github.com/tetratelabs/wazero v1.8.1 h1:NrcgVbWfkWvVc4UtT4LRLDf91PsOzDzefMdwhLfA550= -github.com/tetratelabs/wazero v1.8.1/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs= +github.com/tetratelabs/wazero v1.8.2 h1:yIgLR/b2bN31bjxwXHD8a3d+BogigR952csSDdLYEv4= +github.com/tetratelabs/wazero v1.8.2/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs= github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -1748,8 +1749,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= -golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= +golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -2046,8 +2047,8 @@ google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/ google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= -google.golang.org/api v0.209.0 h1:Ja2OXNlyRlWCWu8o+GgI4yUn/wz9h/5ZfFbKz+dQX+w= -google.golang.org/api v0.209.0/go.mod h1:I53S168Yr/PNDNMi5yPnDc0/LGRZO6o7PoEbl/HY3CM= +google.golang.org/api v0.215.0 h1:jdYF4qnyczlEz2ReWIsosNLDuzXyvFHJtI5gcr0J7t0= +google.golang.org/api v0.215.0/go.mod h1:fta3CVtuJYOEdugLNWm6WodzOS8KdFckABwN4I40hzY= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -2187,12 +2188,12 @@ google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOl google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f h1:zDoHYmMzMacIdjNe+P2XiTmPsLawi/pCbSPfxt6lTfw= -google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f/go.mod h1:Q5m6g8b5KaFFzsQFIGdJkSJDGeJiybVenoYFMMa3ohI= -google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= -google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f h1:C1QccEa9kUwvMgEUORqQD9S17QesQijxjZ84sO82mfo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241223144023-3abc09e42ca8 h1:TqExAhdPaB60Ux47Cn0oLV07rGnxZzIsaRhQaqS666A= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241223144023-3abc09e42ca8/go.mod h1:lcTa1sDdWEIHMWlITnIczmw5w60CF9ffkb8Z+DVmmjA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -2257,8 +2258,8 @@ google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= -google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= +google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From d94fc265a3465a1037aa4f9f01e33ffd3f6b87e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2025 18:23:21 +0800 Subject: [PATCH 099/177] build(deps): bump k8s.io/apimachinery from 0.32.0 to 0.32.1 (#1873) Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.32.0 to 0.32.1. - [Commits](https://github.com/kubernetes/apimachinery/compare/v0.32.0...v0.32.1) --- updated-dependencies: - dependency-name: k8s.io/apimachinery dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c095c595..e451bd13 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( golang.org/x/term v0.28.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.17.0 - k8s.io/apimachinery v0.32.0 + k8s.io/apimachinery v0.32.1 ) replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 diff --git a/go.sum b/go.sum index 7fd40a7e..bf29ebd7 100644 --- a/go.sum +++ b/go.sum @@ -2297,8 +2297,8 @@ k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE= k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0= k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0= k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw= -k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg= -k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/apimachinery v0.32.1 h1:683ENpaCBjma4CYqsmZyhEzrGz6cjn1MY/X2jB2hkZs= +k8s.io/apimachinery v0.32.1/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= k8s.io/cli-runtime v0.32.0 h1:dP+OZqs7zHPpGQMCGAhectbHU2SNCuZtIimRKTv2T1c= k8s.io/cli-runtime v0.32.0/go.mod h1:Mai8ht2+esoDRK5hr861KRy6z0zHsSTYttNVJXgP3YQ= k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8= From e3290845ee01f4751e1e18e30bcc8bc08032c560 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2025 18:24:48 +0800 Subject: [PATCH 100/177] build(deps): bump github.com/goccy/go-yaml from 1.15.13 to 1.15.14 (#1874) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.13 to 1.15.14. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.13...v1.15.14) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e451bd13..e3854192 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.13 + github.com/goccy/go-yaml v1.15.14 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index bf29ebd7..37072e58 100644 --- a/go.sum +++ b/go.sum @@ -1010,8 +1010,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.15.13 h1:Xd87Yddmr2rC1SLLTm2MNDcTjeO/GYo0JGiww6gSTDg= -github.com/goccy/go-yaml v1.15.13/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.14 h1:sOI3SVsuzhFW0cKu8lXgFrB8wyIpc5+AvyMuRyFiDGw= +github.com/goccy/go-yaml v1.15.14/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 2784a4fbd7a9c92dd72ffcdb5f7e3225c80dba1e Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Sat, 18 Jan 2025 08:54:04 +0800 Subject: [PATCH 101/177] build: update helm-diff to v3.9.14 in Dockerfiles and init.go (#1877) Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 8 ++++---- Dockerfile | 2 +- Dockerfile.debian-stable-slim | 2 +- Dockerfile.ubuntu | 2 +- pkg/app/init.go | 2 +- test/integration/run.sh | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 316a6a2f..2e25b18c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -68,7 +68,7 @@ jobs: # we will mark this combination as failable, # and instruct users to upgrade helm and helm-secrets at once. plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.12 + plugin-diff-version: 3.9.14 extra-helmfile-flags: '' v1mode: '' - helm-version: v3.17.0 @@ -80,14 +80,14 @@ jobs: - helm-version: v3.17.0 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.12 + plugin-diff-version: 3.9.14 extra-helmfile-flags: '' v1mode: '' # Helmfile v1 - helm-version: v3.17.0 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.12 + plugin-diff-version: 3.9.14 extra-helmfile-flags: '' v1mode: 'true' # In case you need to test some optional helmfile features, @@ -95,7 +95,7 @@ jobs: - helm-version: v3.17.0 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.12 + plugin-diff-version: 3.9.14 extra-helmfile-flags: '--enable-live-output' v1mode: '' steps: diff --git a/Dockerfile b/Dockerfile index a40a38b5..fef2853c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -93,7 +93,7 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.13 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.14 && \ helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index 4e8ef659..d19a5d40 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -99,7 +99,7 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.13 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.14 && \ helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index caa05cf3..55226c9c 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -99,7 +99,7 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.13 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.14 && \ helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ diff --git a/pkg/app/init.go b/pkg/app/init.go index 4ac0aeb9..31e5cbfb 100644 --- a/pkg/app/init.go +++ b/pkg/app/init.go @@ -19,7 +19,7 @@ import ( const ( HelmRequiredVersion = "v3.16.4" HelmRecommendedVersion = "v3.17.0" - HelmDiffRecommendedVersion = "v3.9.13" + HelmDiffRecommendedVersion = "v3.9.14" HelmSecretsRecommendedVersion = "v4.6.0" HelmGitRecommendedVersion = "v0.15.1" HelmS3RecommendedVersion = "v0.16.0" diff --git a/test/integration/run.sh b/test/integration/run.sh index e4248cc8..b1548856 100755 --- a/test/integration/run.sh +++ b/test/integration/run.sh @@ -27,7 +27,7 @@ export HELM_DATA_HOME="${helm_dir}/data" 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.9.12}" +HELM_DIFF_VERSION="${HELM_DIFF_VERSION:-3.9.14}" HELM_SECRETS_VERSION="${HELM_SECRETS_VERSION:-3.15.0}" export GNUPGHOME="${PWD}/${dir}/.gnupg" export SOPS_PGP_FP="B2D6D7BBEC03B2E66571C8C00AD18E16CFDEF700" From e2e1be6589bc1351c6a907ade3c4140490b5cf34 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 10:13:33 +0800 Subject: [PATCH 102/177] build(deps): bump github.com/goccy/go-yaml from 1.15.14 to 1.15.15 (#1882) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.14 to 1.15.15. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.14...v1.15.15) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e3854192..2dcfa1a9 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.14 + github.com/goccy/go-yaml v1.15.15 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 37072e58..67d25fd7 100644 --- a/go.sum +++ b/go.sum @@ -1010,8 +1010,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.15.14 h1:sOI3SVsuzhFW0cKu8lXgFrB8wyIpc5+AvyMuRyFiDGw= -github.com/goccy/go-yaml v1.15.14/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.15 h1:5turdzAlutS2Q7/QR/9R99Z1K0J00qDb4T0pHJcZ5ew= +github.com/goccy/go-yaml v1.15.15/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 4e58bd4c34018c860f84c413dcc113533dec824c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 07:54:59 +0800 Subject: [PATCH 103/177] build(deps): bump github.com/hashicorp/go-slug from 0.15.0 to 0.16.3 (#1886) Bumps [github.com/hashicorp/go-slug](https://github.com/hashicorp/go-slug) from 0.15.0 to 0.16.3. - [Release notes](https://github.com/hashicorp/go-slug/releases) - [Commits](https://github.com/hashicorp/go-slug/compare/v0.15.0...v0.16.3) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-slug dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2dcfa1a9..12363f9b 100644 --- a/go.mod +++ b/go.mod @@ -66,7 +66,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect - github.com/hashicorp/go-slug v0.15.0 // indirect + github.com/hashicorp/go-slug v0.16.3 // indirect github.com/hashicorp/go-sockaddr v1.0.7 // indirect github.com/hashicorp/go-tfe v1.56.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect diff --git a/go.sum b/go.sum index 67d25fd7..93c16180 100644 --- a/go.sum +++ b/go.sum @@ -1190,8 +1190,8 @@ github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 h1:iBt4Ew4XEGLfh6/bPk4rSY github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8/go.mod h1:aiJI+PIApBRQG7FZTEBx5GiiX+HbOHilUdNxUZi4eV0= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= -github.com/hashicorp/go-slug v0.15.0 h1:AhMnE6JIyW0KoDJlmRDwv4xd52a5ZK3VdioQ7SMmZhI= -github.com/hashicorp/go-slug v0.15.0/go.mod h1:THWVTAXwJEinbsp4/bBRcmbaO5EYNLTqxbG4tZ3gCYQ= +github.com/hashicorp/go-slug v0.16.3 h1:pe0PMwz2UWN1168QksdW/d7u057itB2gY568iF0E2Ns= +github.com/hashicorp/go-slug v0.16.3/go.mod h1:THWVTAXwJEinbsp4/bBRcmbaO5EYNLTqxbG4tZ3gCYQ= github.com/hashicorp/go-sockaddr v1.0.7 h1:G+pTkSO01HpR5qCxg7lxfsFEZaG+C0VssTy/9dbT+Fw= github.com/hashicorp/go-sockaddr v1.0.7/go.mod h1:FZQbEYa1pxkQ7WLpyXJ6cbjpT8q0YgQaK/JakXqGyWw= github.com/hashicorp/go-tfe v1.56.0 h1:AjBTo7TmWoz42l4KhH65Q3NvjRD5yD3XZrG1tzFySeI= From d059b28fb35e3ec827aed632d2511bf5d06265f4 Mon Sep 17 00:00:00 2001 From: Matthias Baur Date: Wed, 22 Jan 2025 13:42:33 +0100 Subject: [PATCH 104/177] Ensure 'helm repo add' is also not pollute on helmfile template (#1887) When having multiple helmfiles in one helmfile.d folder and multiple of them having repositories defined, the errors mention in #1749 still existed. Fixes #1749 (again) Signed-off-by: Matthias Baur --- pkg/app/app.go | 4 ++++ pkg/state/state.go | 4 ---- .../issue-1749/input/helmfile.d/helmfile1.yaml.gotmpl | 4 ++++ .../issue-1749/input/helmfile.d/helmfile2.yaml.gotmpl | 4 ++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pkg/app/app.go b/pkg/app/app.go index 61b4dce1..91beba57 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -240,6 +240,10 @@ func (a *App) Template(c TemplateConfigProvider) error { // Live output should never be enabled for the "template" subcommand to avoid breaking `helmfile template | kubectl apply -f -` run.helm.SetEnableLiveOutput(false) + // Reset helm extra args to not pollute BuildDeps() and AddRepo() on subsequent helmfiles + // https://github.com/helmfile/helmfile/issues/1749 + run.helm.SetExtraArgs() + prepErr := run.withPreparedCharts("template", state.ChartPrepareOptions{ SkipRepos: c.SkipRefresh() || c.SkipDeps(), SkipRefresh: c.SkipRefresh(), diff --git a/pkg/state/state.go b/pkg/state/state.go index e918933b..a28c05d9 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1449,10 +1449,6 @@ func (st *HelmState) runHelmDepBuilds(helm helmexec.Interface, concurrency int, // // See https://github.com/roboll/helmfile/issues/1521 - // Reset helm extra args to not pollute BuildDeps() on subsequent helmfiles - // https://github.com/helmfile/helmfile/issues/1749 - helm.SetExtraArgs() - for _, r := range builds { buildDepsFlags := getBuildDepsFlags(r) if err := helm.BuildDeps(r.releaseName, r.chartPath, buildDepsFlags...); err != nil { diff --git a/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile1.yaml.gotmpl b/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile1.yaml.gotmpl index e70221df..d2ec3c45 100644 --- a/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile1.yaml.gotmpl +++ b/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile1.yaml.gotmpl @@ -1,3 +1,7 @@ +repositories: +- name: bitnami + url: https://charts.bitnami.com/bitnami + releases: - name: test1 chart: ../../../../charts/raw diff --git a/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile2.yaml.gotmpl b/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile2.yaml.gotmpl index 81f1cf1a..17e616e6 100644 --- a/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile2.yaml.gotmpl +++ b/test/integration/test-cases/issue-1749/input/helmfile.d/helmfile2.yaml.gotmpl @@ -1,3 +1,7 @@ +repositories: +- name: prometheus-community + url: https://prometheus-community.github.io/helm-charts + releases: - name: test2 chart: ../../../../charts/raw From 2b9ed46b32579ea71220d8ece9606993c3535a7b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Jan 2025 05:19:47 +0800 Subject: [PATCH 105/177] build(deps): bump github.com/zclconf/go-cty from 1.16.1 to 1.16.2 (#1888) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 12363f9b..d3c842da 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 github.com/tj/assert v0.0.3 github.com/variantdev/dag v1.1.0 - github.com/zclconf/go-cty v1.16.1 + github.com/zclconf/go-cty v1.16.2 github.com/zclconf/go-cty-yaml v1.1.0 go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 diff --git a/go.sum b/go.sum index 93c16180..2f0bf0ad 100644 --- a/go.sum +++ b/go.sum @@ -1523,8 +1523,8 @@ github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1 github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= github.com/zalando/go-keyring v0.2.6 h1:r7Yc3+H+Ux0+M72zacZoItR3UDxeWfKTcabvkI8ua9s= github.com/zalando/go-keyring v0.2.6/go.mod h1:2TCrxYrbUNYfNS/Kgy/LSrkSQzZ5UPVH85RwfczwvcI= -github.com/zclconf/go-cty v1.16.1 h1:a5TZEPzBFFR53udlIKApXzj8JIF4ZNQ6abH79z5R1S0= -github.com/zclconf/go-cty v1.16.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty v1.16.2 h1:LAJSwc3v81IRBZyUVQDUdZ7hs3SYs9jv0eZJDWHD/70= +github.com/zclconf/go-cty v1.16.2/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= github.com/zclconf/go-cty-yaml v1.1.0 h1:nP+jp0qPHv2IhUVqmQSzjvqAWcObN0KBkUl2rWBdig0= From 524636c0a81db31310527d65a852f579095287b9 Mon Sep 17 00:00:00 2001 From: Adam Blasko Date: Thu, 23 Jan 2025 01:30:39 +0100 Subject: [PATCH 106/177] fix: using correct option for takeOwnership flag (#1892) Fixed test to correctly assert the new flag Signed-off-by: Adam Blasko --- pkg/state/helmx.go | 2 +- pkg/state/helmx_test.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/state/helmx.go b/pkg/state/helmx.go index e03a095a..88e8e98a 100644 --- a/pkg/state/helmx.go +++ b/pkg/state/helmx.go @@ -155,7 +155,7 @@ func (st *HelmState) appendTakeOwnershipFlags(flags []string, helm helmexec.Inte return flags } switch { - case ops.HideNotes: + case ops.TakeOwnership: flags = append(flags, "--take-ownership") } return flags diff --git a/pkg/state/helmx_test.go b/pkg/state/helmx_test.go index 77e91203..c9cdc44f 100644 --- a/pkg/state/helmx_test.go +++ b/pkg/state/helmx_test.go @@ -340,18 +340,18 @@ func TestAppendTakeOwnershipFlags(t *testing.T) { flags: []string{}, helm: testutil.NewVersionHelmExec("3.16.0"), opt: &SyncOpts{ - HideNotes: true, + TakeOwnership: true, }, expected: []string{}, }, }, { - name: "hide-notes from cmd flag", + name: "take-ownership from cmd flag", args: args{ flags: []string{}, helm: testutil.NewVersionHelmExec("3.17.0"), opt: &SyncOpts{ - HideNotes: true, + TakeOwnership: true, }, expected: []string{"--take-ownership"}, }, From 9dc0aaa1e7263f2a89e973f4dcbe343dc93c3c1d Mon Sep 17 00:00:00 2001 From: Adam ABICHOU <55128590+adamab48@users.noreply.github.com> Date: Thu, 23 Jan 2025 01:31:00 +0100 Subject: [PATCH 107/177] fix typo in docs (#1889) fix typo Signed-off-by: Adem Abichou --- docs/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index fdc0fef1..88c819b7 100644 --- a/docs/index.md +++ b/docs/index.md @@ -685,7 +685,7 @@ The `helmfile destroy` sub-command uninstalls and purges all the releases define `helmfile --interactive destroy` instructs Helmfile to request your confirmation before actually deleting releases. `destroy` basically runs `helm uninstall --purge` on all the targeted releases. If you don't want purging, use `helmfile delete` instead. -If `--skip-charts` flag is not set, destory would prepare all releases, by fetching charts and templating them. +If `--skip-charts` flag is not set, destroy would prepare all releases, by fetching charts and templating them. ### delete (DEPRECATED) @@ -694,7 +694,7 @@ The `helmfile delete` sub-command deletes all the releases defined in the manife `helmfile --interactive delete` instructs Helmfile to request your confirmation before actually deleting releases. 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`. -If `--skip-charts` flag is not set, destory would prepare all releases, by fetching charts and templating them. +If `--skip-charts` flag is not set, destroy would prepare all releases, by fetching charts and templating them. ### secrets From b5eb879357d0eae3ad914a38f7221bed94573cb6 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Tue, 28 Jan 2025 15:34:59 +0100 Subject: [PATCH 108/177] feat: execute templates against postRendererHooks (#1839) This commit is supposed to add template support to post renderer args. Also, to make it possible to template arguments that are added to helm defaults, during the load, I'm removing default post renderer args from the state and putting them to each release, unless custom args are defined for the release. Signed-off-by: Nikolai Rodionov --- pkg/app/desired_state_file_loader.go | 8 ++++++++ pkg/state/release.go | 12 ++++++++++++ pkg/state/state_exec_tmpl_test.go | 23 +++++++++++++++++++++++ 3 files changed, 43 insertions(+) diff --git a/pkg/app/desired_state_file_loader.go b/pkg/app/desired_state_file_loader.go index a72d3e6d..76fa81f5 100644 --- a/pkg/app/desired_state_file_loader.go +++ b/pkg/app/desired_state_file_loader.go @@ -249,6 +249,14 @@ func (ld *desiredStateLoader) load(env, overrodeEnv *environment.Environment, ba finalState.RenderedValues = currentState.RenderedValues } + if len(finalState.HelmDefaults.PostRendererArgs) > 0 { + for i := range finalState.Releases { + if len(finalState.Releases[i].PostRendererArgs) == 0 { + finalState.Releases[i].PostRendererArgs = finalState.HelmDefaults.PostRendererArgs + } + } + finalState.HelmDefaults.PostRendererArgs = nil + } env = &finalState.Env ld.logger.Debugf("merged environment: %v", env) diff --git a/pkg/state/release.go b/pkg/state/release.go index 5cedcf91..c1b5c437 100644 --- a/pkg/state/release.go +++ b/pkg/state/release.go @@ -90,6 +90,18 @@ func (r ReleaseSpec) ExecuteTemplateExpressions(renderer *tmpl.FileRenderer) (*R result.Labels[key] = s.String() } + { + postRendererArgs := []string{} + for _, ts := range result.PostRendererArgs { + postRendererArg, err := renderer.RenderTemplateContentToString([]byte(ts)) + if err != nil { + return nil, fmt.Errorf("failed executing template expressions in release \"%s\".postRendererArgs = \"%s\": %v", r.Name, ts, err) + } + postRendererArgs = append(postRendererArgs, postRendererArg) + } + result.PostRendererArgs = postRendererArgs + } + if len(result.ValuesTemplate) > 0 { for i, t := range result.ValuesTemplate { switch ts := t.(type) { diff --git a/pkg/state/state_exec_tmpl_test.go b/pkg/state/state_exec_tmpl_test.go index 91efe615..2bb57b0a 100644 --- a/pkg/state/state_exec_tmpl_test.go +++ b/pkg/state/state_exec_tmpl_test.go @@ -123,6 +123,29 @@ func TestHelmState_executeTemplates(t *testing.T) { Values: []any{map[string]any{"key": "app-val0"}}, }, }, + { + name: "Has template expressions in post renderer args", + input: ReleaseSpec{ + Chart: "test-chart", + PostRendererArgs: []string{ + "--release", + "{{ .Release.Name }}", + "--chart", + "{{ .Release.Chart }}", + }, + Name: "test-release", + }, + want: ReleaseSpec{ + Chart: "test-chart", + Name: "test-release", + PostRendererArgs: []string{ + "--release", + "test-chart-dev", + "--chart", + "test-chart", + }, + }, + }, } for i := range tests { From c5d0de2c2ab04698d0d6483415f174a1b2b40d35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Jan 2025 08:08:37 +0800 Subject: [PATCH 109/177] build(deps): bump github.com/spf13/pflag from 1.0.5 to 1.0.6 (#1897) Bumps [github.com/spf13/pflag](https://github.com/spf13/pflag) from 1.0.5 to 1.0.6. - [Release notes](https://github.com/spf13/pflag/releases) - [Commits](https://github.com/spf13/pflag/compare/v1.0.5...v1.0.6) --- updated-dependencies: - dependency-name: github.com/spf13/pflag dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index d3c842da..12d6c088 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/helmfile/chartify v0.20.7 github.com/helmfile/vals v0.39.0 github.com/spf13/cobra v1.8.1 - github.com/spf13/pflag v1.0.5 + github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 github.com/tj/assert v0.0.3 diff --git a/go.sum b/go.sum index 2f0bf0ad..1dd49f0b 100644 --- a/go.sum +++ b/go.sum @@ -1451,8 +1451,9 @@ github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= From 34cb2fc6276c9af7de73787bbb06400f5c676cd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Feb 2025 08:39:51 +0800 Subject: [PATCH 110/177] build(deps): bump github.com/goccy/go-yaml from 1.15.15 to 1.15.16 (#1901) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.15 to 1.15.16. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.15...v1.15.16) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 12d6c088..36d92ba3 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.15 + github.com/goccy/go-yaml v1.15.16 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 1dd49f0b..26a3add7 100644 --- a/go.sum +++ b/go.sum @@ -1010,8 +1010,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.15.15 h1:5turdzAlutS2Q7/QR/9R99Z1K0J00qDb4T0pHJcZ5ew= -github.com/goccy/go-yaml v1.15.15/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.16 h1:PMTVcGI9uNPIn7KLs0H7KC1rE+51yPl5YNh4i8rGuRA= +github.com/goccy/go-yaml v1.15.16/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 8e188960eb4c3ea5c9c9f2ec68750b8c041b2b69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Feb 2025 07:25:04 +0800 Subject: [PATCH 111/177] build(deps): bump github.com/goccy/go-yaml from 1.15.16 to 1.15.17 (#1905) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 36d92ba3..609b13a4 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.16 + github.com/goccy/go-yaml v1.15.17 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 26a3add7..a2979db8 100644 --- a/go.sum +++ b/go.sum @@ -1010,8 +1010,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.15.16 h1:PMTVcGI9uNPIn7KLs0H7KC1rE+51yPl5YNh4i8rGuRA= -github.com/goccy/go-yaml v1.15.16/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.17 h1:dK4FbbTTEOZTLH/NW3/xBqg0JdC14YKVmYwS9GT3H60= +github.com/goccy/go-yaml v1.15.17/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 09c9ceb0751256bf8bfbd3703b09d006bd2a16aa Mon Sep 17 00:00:00 2001 From: Guillaume Le Blanc Date: Tue, 4 Feb 2025 00:59:31 +0100 Subject: [PATCH 112/177] Use a regex to match --state-values-set-string arguments (#1902) Signed-off-by: Guillaume Le Blanc --- pkg/config/config.go | 10 ++++++---- .../test-cases/cli-overwrite-environment-values.sh | 6 +++--- .../input/values.yaml.gotmpl | 5 ++++- .../output/output_v1.yaml | 3 ++- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/pkg/config/config.go b/pkg/config/config.go index 7bfe1aca..f49ec705 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -1,21 +1,23 @@ package config import ( + "regexp" "strings" "github.com/helmfile/helmfile/pkg/maputil" ) func NewCLIConfigImpl(g *GlobalImpl) error { + re := regexp.MustCompile(`(?:,|^)([^\s=]+)=(['"][^'"]*['"]|[^,]+)`) optsSet := g.RawStateValuesSetString() if len(optsSet) > 0 { set := map[string]any{} for i := range optsSet { - ops := strings.Split(optsSet[i], ",") + ops := re.FindAllStringSubmatch(optsSet[i], -1) for j := range ops { - op := strings.SplitN(ops[j], "=", 2) - k := maputil.ParseKey(op[0]) - v := op[1] + op := ops[j] + k := maputil.ParseKey(op[1]) + v := op[2] maputil.Set(set, k, v, true) } diff --git a/test/integration/test-cases/cli-overwrite-environment-values.sh b/test/integration/test-cases/cli-overwrite-environment-values.sh index 2835b849..48d9f2de 100644 --- a/test/integration/test-cases/cli-overwrite-environment-values.sh +++ b/test/integration/test-cases/cli-overwrite-environment-values.sh @@ -11,7 +11,7 @@ if [[ ${HELMFILE_V1MODE} = true ]]; then info "Comparing ${case_title} for v1 output ${cli_overwrite_environment_values_reverse} with ${cli_overwrite_environment_values_output_dir}/overwritten.yaml" for i in $(seq 10); do info "Comparing build/cli-overwrite-environment-values #$i" - ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input_v1.yaml.gotmpl template --state-values-set ns=test3 > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" + ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input_v1.yaml.gotmpl template --state-values-set ns=test3 --state-values-set-string imageTag=1.23.3,zone="zone1,zone2" > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" diff -u ${cli_overwrite_environment_values_output_dir}/output_v1.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" echo code=$? done @@ -21,9 +21,9 @@ else info "Comparing ${case_title} output ${cli_overwrite_environment_values_reverse} with ${cli_overwrite_environment_values_output_dir}/overwritten.yaml" for i in $(seq 10); do info "Comparing build/cli-overwrite-environment-values #$i" - ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input_v1.yaml.gotmpl template --state-values-set ns=test3 > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" + ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input_v1.yaml.gotmpl template --state-values-set ns=test3 --state-values-set-string imageTag=1.23.3,zone="zone1,zone2" > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" diff -u ${cli_overwrite_environment_values_output_dir}/output_v1.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" echo code=$? done test_pass "${case_title}" -fi \ No newline at end of file +fi diff --git a/test/integration/test-cases/cli-overwrite-environment-values/input/values.yaml.gotmpl b/test/integration/test-cases/cli-overwrite-environment-values/input/values.yaml.gotmpl index afc1af27..a1635c7b 100644 --- a/test/integration/test-cases/cli-overwrite-environment-values/input/values.yaml.gotmpl +++ b/test/integration/test-cases/cli-overwrite-environment-values/input/values.yaml.gotmpl @@ -1,2 +1,5 @@ image: - tag: {{ .Values.ns }} \ No newline at end of file + tag: {{ .Values.imageTag }} + +podAnnotations: + zone: {{ .Values.zone }} diff --git a/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml b/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml index 04eafff0..ba0f5cd7 100644 --- a/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml +++ b/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml @@ -51,6 +51,7 @@ spec: app.kubernetes.io/instance: test app.kubernetes.io/managed-by: Helm annotations: + zone: "zone1,zone2" spec: automountServiceAccountToken: false @@ -75,7 +76,7 @@ spec: initContainers: containers: - name: nginx - image: docker.io/bitnami/nginx:test3 + image: docker.io/bitnami/nginx:1.23.3 imagePullPolicy: "IfNotPresent" env: - name: BITNAMI_DEBUG From 75651801a652798781166fb8aad6717cea8a2a51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2025 07:53:21 +0800 Subject: [PATCH 113/177] build(deps): bump golang.org/x/sync from 0.10.0 to 0.11.0 (#1911) Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.10.0 to 0.11.0. - [Commits](https://github.com/golang/sync/compare/v0.10.0...v0.11.0) --- updated-dependencies: - dependency-name: golang.org/x/sync dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 609b13a4..a04ccb4e 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/zclconf/go-cty-yaml v1.1.0 go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.10.0 + golang.org/x/sync v0.11.0 golang.org/x/term v0.28.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.17.0 diff --git a/go.sum b/go.sum index a2979db8..0f980776 100644 --- a/go.sum +++ b/go.sum @@ -1771,8 +1771,9 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 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= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= From 8afffa5c984513b96ba6065ad22ad0f0e54e2590 Mon Sep 17 00:00:00 2001 From: S Code Man <30977678+scodeman@users.noreply.github.com> Date: Wed, 5 Feb 2025 21:42:05 +0800 Subject: [PATCH 114/177] Chartify v0.20.8 update (#1908) * fix: use chartify v0.20.8 with relevant fix for import-values Signed-off-by: GitHub * chore: add test Signed-off-by: GitHub --------- Signed-off-by: GitHub --- go.mod | 2 +- go.sum | 4 ++-- test/integration/run.sh | 5 ++++- test/integration/test-cases/issue-1893.sh | 8 ++++++++ .../test-cases/issue-1893/input/helmfile.yaml | 20 +++++++++++++++++++ 5 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 test/integration/test-cases/issue-1893.sh create mode 100644 test/integration/test-cases/issue-1893/input/helmfile.yaml diff --git a/go.mod b/go.mod index a04ccb4e..9f53c311 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 - github.com/helmfile/chartify v0.20.7 + github.com/helmfile/chartify v0.20.8 github.com/helmfile/vals v0.39.0 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.6 diff --git a/go.sum b/go.sum index 0f980776..023bf3e9 100644 --- a/go.sum +++ b/go.sum @@ -1214,8 +1214,8 @@ github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1Dd github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= -github.com/helmfile/chartify v0.20.7 h1:aOUvSFHrT/0LOUDz1Mcg2TDBtpvXBrZSYnBZvwmqruo= -github.com/helmfile/chartify v0.20.7/go.mod h1:mWN+sWWf+lnA225jZIqqgpwbGjiT3NAQHGCm5vdC0zw= +github.com/helmfile/chartify v0.20.8 h1:vRzQ6Mb8OEncoA3K5RYtup5JVzy5waUSK24MBXK3CTY= +github.com/helmfile/chartify v0.20.8/go.mod h1:mWN+sWWf+lnA225jZIqqgpwbGjiT3NAQHGCm5vdC0zw= github.com/helmfile/vals v0.39.0 h1:8V1NN4ac7SHFCjq3tlTO8zHKFQ26DY9qVGRKPhYDHoE= github.com/helmfile/vals v0.39.0/go.mod h1:GoA8SSsiX661IFaG4E5O+FSPl+hW2MLyWR9zxzAjR+A= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= diff --git a/test/integration/run.sh b/test/integration/run.sh index b1548856..f3d9bb5f 100755 --- a/test/integration/run.sh +++ b/test/integration/run.sh @@ -28,6 +28,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.9.14}" +HELM_GIT_VERSION="${HELM_GIT_VERSION:-1.3.0}" HELM_SECRETS_VERSION="${HELM_SECRETS_VERSION:-3.15.0}" export GNUPGHOME="${PWD}/${dir}/.gnupg" export SOPS_PGP_FP="B2D6D7BBEC03B2E66571C8C00AD18E16CFDEF700" @@ -70,7 +71,8 @@ set -e trap cleanup EXIT info "Using namespace: ${test_ns}" info "Using Helm version:" $(${helm} version --short | grep -o 'v[0-9.]\+') -${helm} plugin ls | grep diff || ${helm} plugin install https://github.com/databus23/helm-diff --version v${HELM_DIFF_VERSION} +${helm} plugin ls | grep "^diff" || ${helm} plugin install https://github.com/databus23/helm-diff --version v${HELM_DIFF_VERSION} +${helm} plugin ls | grep "^helm-git" || ${helm} plugin install https://github.com/aslafy-z/helm-git --version v${HELM_GIT_VERSION} info "Using Kustomize version: $(kustomize version --short | grep -o 'v[0-9.]\+')" ${kubectl} get namespace ${test_ns} &> /dev/null && warn "Namespace ${test_ns} exists, from a previous test run?" ${kubectl} create namespace ${test_ns} || fail "Could not create namespace ${test_ns}" @@ -98,6 +100,7 @@ ${kubectl} create namespace ${test_ns} || fail "Could not create namespace ${tes . ${dir}/test-cases/deps-kustomization-i-1402.sh . ${dir}/test-cases/hcl-secrets.sh . ${dir}/test-cases/issue-1749.sh +. ${dir}/test-cases/issue-1893.sh # ALL DONE ----------------------------------------------------------------------------------------------------------- diff --git a/test/integration/test-cases/issue-1893.sh b/test/integration/test-cases/issue-1893.sh new file mode 100644 index 00000000..0306275b --- /dev/null +++ b/test/integration/test-cases/issue-1893.sh @@ -0,0 +1,8 @@ +issue_1893_input_dir="${cases_dir}/issue-1893/input" +helmfile_real="$(pwd)/${helmfile}" + +test_start "issue 1893 helmfile template" +cd "${issue_1893_input_dir}" +${helmfile_real} template || fail "\"issue 1893 helmfile template shouldn't fail" +cd - +test_pass "issue 1893 helmfile template" \ No newline at end of file diff --git a/test/integration/test-cases/issue-1893/input/helmfile.yaml b/test/integration/test-cases/issue-1893/input/helmfile.yaml new file mode 100644 index 00000000..f52eaef8 --- /dev/null +++ b/test/integration/test-cases/issue-1893/input/helmfile.yaml @@ -0,0 +1,20 @@ +--- +repositories: +- name: chartify-testdata + url: git+https://github.com/helmfile/chartify@testdata/charts/importvalues?ref=master + +releases: +- name: importvalues + chart: chartify-testdata/importvalues + version: 0.1.0 + transformers: + - apiVersion: builtin + kind: ValueAddTransformer + metadata: + name: add-annotation-issue + targets: + - fieldPath: metadata/annotations/issue + selector: + kind: ConfigMap + name: importvalues-imported-values + value: "1893" \ No newline at end of file From d7bcd5e9985305ac427bc75e5644419e9ca939a2 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Thu, 6 Feb 2025 02:50:16 +0800 Subject: [PATCH 115/177] cleanup: remove all about v0.x (#1903) * fix tests Signed-off-by: yxxhero * refactor(two_pass_renderer): remove unused imports and functions Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero --------- Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 13 -- .github/workflows/releaser.yaml | 1 - .goreleaser.yml | 4 - Makefile | 4 - cmd/apply.go | 7 - cmd/charts.go | 41 ---- cmd/delete.go | 44 ---- cmd/root.go | 8 - docs/index.md | 1 - pkg/app/app.go | 63 +---- pkg/app/app_apply_nokubectx_test.go | 80 +------ pkg/app/app_apply_test.go | 82 +------ pkg/app/app_list_test.go | 1 + pkg/app/app_sync_test.go | 14 +- pkg/app/app_test.go | 112 ++++----- pkg/app/config.go | 29 --- pkg/app/constants.go | 5 +- pkg/app/desired_state_file_loader.go | 24 +- pkg/app/diff_nokubectx_test.go | 181 +-------------- pkg/app/diff_test.go | 218 +----------------- pkg/app/run.go | 11 - pkg/app/testdata/app_diff_test/bad_selector | 101 -------- .../fail_on_unselected_need_by_default | 101 -------- pkg/app/testdata/app_diff_test/include-needs | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- .../app_diff_test/include-transitive-needs | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- pkg/app/testdata/app_diff_test/no-hooks | 101 -------- .../show_diff_on_changed_selected_release | 29 --- ...ff_on_already_uninstalled_selected_release | 31 --- pkg/app/testdata/app_diff_test/skip-needs | 101 -------- pkg/app/testdata/app_diff_test_1/bar | 33 --- .../delete_bar_when_bar_needs_foo | 31 --- .../delete_bar_when_foo_needs_bar | 31 --- ..._bar_when_foo_needs_bar_with_include-needs | 31 --- ...ete_bar_when_foo_needs_bar_with_skip-needs | 31 --- .../delete_foo_and_bar_when_bar_needs_foo | 33 --- .../delete_foo_and_bar_when_foo_needs_bar | 33 --- .../delete_foo_when_bar_needs_foo | 31 --- ..._foo_when_bar_needs_foo_with_include-needs | 31 --- ...ete_foo_when_bar_needs_foo_with_skip-needs | 31 --- .../delete_foo_when_foo_needs_bar | 31 --- .../helm3_upgrade_when_ns2_bar_needs_ns1_foo | 33 --- pkg/app/testdata/app_diff_test_1/install | 33 --- .../non-existent_release_in_needs | 8 + pkg/app/testdata/app_diff_test_1/noop | 31 --- pkg/app/testdata/app_diff_test_1/smoke | 121 ---------- .../unselected_release_in_needs | 7 + .../upgrade_when_bar_needs_foo | 29 --- ...grade_when_bar_needs_foo,_with_ns_override | 29 --- .../upgrade_when_foo_needs_bar | 29 --- ...grade_when_foo_needs_bar,_with_ns_override | 29 --- ...e_when_foo_needs_bar_with_context_override | 33 --- ...n_releaseb_needs_releasea_with_aws_context | 37 --- ...grade_when_tns1_ns1_foo_needs_tns2_ns2_bar | 33 --- .../upgrades_with_bad_selector | 33 +++ ...with_good_selector_with_--skip-needs=false | 34 +++ ..._with_good_selector_with_--skip-needs=true | 40 +--- pkg/app/testdata/app_diff_test_2/bar | 33 --- .../delete_bar_when_bar_needs_foo | 31 --- .../delete_bar_when_foo_needs_bar | 31 --- ..._bar_when_foo_needs_bar_with_include-needs | 31 --- ...ete_bar_when_foo_needs_bar_with_skip-needs | 31 --- .../delete_foo_and_bar_when_bar_needs_foo | 33 --- .../delete_foo_and_bar_when_foo_needs_bar | 33 --- .../delete_foo_when_bar_needs_foo | 31 --- .../delete_foo_when_foo_needs_bar | 31 --- pkg/app/testdata/app_diff_test_2/foo | 33 --- .../helm3_upgrade_when_ns2_bar_needs_ns1_foo | 33 --- pkg/app/testdata/app_diff_test_2/install | 33 --- .../non-existent_release_in_needs | 8 + pkg/app/testdata/app_diff_test_2/noop | 31 --- pkg/app/testdata/app_diff_test_2/smoke | 121 ---------- .../upgrade_when_bar_needs_foo | 29 --- ...grade_when_bar_needs_foo,_with_ns_override | 29 --- .../upgrade_when_foo_needs_bar | 29 --- ...grade_when_foo_needs_bar,_with_ns_override | 29 --- .../upgrades_with_bad_selector | 33 +++ ...with_good_selector_with_--skip-needs=false | 34 +++ ..._with_good_selector_with_--skip-needs=true | 40 +--- pkg/app/testdata/app_lint_test/bad_selector | 101 -------- .../fail_on_unselected_need_by_default | 101 -------- pkg/app/testdata/app_lint_test/include-needs | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- .../app_lint_test/include-transitive-needs | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- pkg/app/testdata/app_lint_test/skip-needs | 101 -------- .../default_environment_includes_all_releases | 205 ---------------- .../app_list_test/fail_on_unknown_environment | 61 ----- ...ses_for_environment_used_in_multiple_files | 205 ---------------- ...ases_for_environment_used_in_one_file_only | 106 --------- ...releases_matching_selector_and_environment | 160 ------------- .../testdata/app_template_test/bad_selector | 101 -------- .../fail_on_unselected_need_by_default | 101 -------- .../testdata/app_template_test/include-needs | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- .../include-transitive-needs | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- pkg/app/testdata/app_template_test/no-hooks | 101 -------- pkg/app/testdata/app_template_test/show-only | 101 -------- pkg/app/testdata/app_template_test/skip-needs | 101 -------- .../dag_test/dag_lists_dependencies_in_order | 114 --------- .../delete_bar_when_bar_needs_foo/log | 31 --- .../delete_bar_when_foo_needs_bar/log | 31 --- .../delete_foo_and_bar_when_bar_needs_foo/log | 33 --- .../delete_foo_and_bar_when_foo_needs_bar/log | 33 --- .../delete_foo_when_bar_needs_foo/log | 31 --- .../delete_foo_when_foo_needs_bar/log | 31 --- .../testdata/testapply/duplicate_releases/log | 39 ---- .../log | 27 --- .../log | 39 ---- .../log | 39 ---- pkg/app/testdata/testapply/install/log | 33 --- .../non-existent_release_in_needs/log | 31 --- pkg/app/testdata/testapply/noop/log | 31 --- pkg/app/testdata/testapply/smoke/log | 121 ---------- .../testapply/unselected_release_in_needs/log | 31 --- .../log | 29 --- .../testapply/upgrade_when_bar_needs_foo/log | 29 --- .../log | 29 --- .../testapply/upgrade_when_foo_needs_bar/log | 29 --- .../upgrade_when_ns1/foo_needs_ns2/bar/log | 33 --- .../upgrade_when_ns2/bar_needs_ns1/foo/log | 33 --- .../testapply/upgrades_with_bad_selector/log | 40 +--- .../log | 40 +--- .../log | 40 +--- .../testdata/testapply_2/bad_--selector/log | 33 +++ .../testapply_2/deduplicate_by_--selector/log | 47 ---- .../include-transitive-needs=true/log | 36 +-- .../log | 39 ---- .../log | 51 ---- .../skip-needs=false_include-needs=true/log | 40 +--- .../log | 40 +--- .../log | 41 +--- .../log | 41 +--- .../testdata/testapply_2/skip-needs=true/log | 40 +--- .../log | 40 +--- .../testdata/testapply_3/bad_--selector/log | 33 +++ .../skip-needs=false_include-needs=true/log | 40 +--- .../log | 40 +--- .../log | 41 +--- .../log | 41 +--- .../testdata/testapply_3/skip-needs=true/log | 40 +--- .../log | 40 +--- pkg/app/testdata/testdeps/smoke/log | 7 + .../log | 31 --- .../log | 121 ---------- pkg/app/testdata/testdestroy/helm3/log | 31 --- pkg/app/testdata/testdestroy/smoke/log | 121 ---------- .../log | 31 --- .../log | 121 ---------- pkg/app/testdata/testdestroy_2/helm3/log | 31 --- pkg/app/testdata/testdestroy_2/smoke/log | 121 ---------- .../testreadfromyaml_rendertemplatelog/log | 10 + pkg/app/two_pass_renderer.go | 106 +-------- pkg/app/two_pass_renderer_test.go | 115 +-------- pkg/config/apply.go | 10 - pkg/config/charts.go | 46 ---- pkg/config/delete.go | 67 ------ pkg/envvar/const.go | 4 - pkg/policy/checker.go | 6 +- pkg/policy/checker_test.go | 27 +-- pkg/runtime/runtime.go | 25 +- pkg/state/create.go | 14 -- pkg/state/create_test.go | 20 -- pkg/state/state.go | 4 - pkg/state/state_test.go | 30 +-- pkg/tmpl/context_funcs.go | 16 +- pkg/tmpl/context_funcs_test.go | 24 -- test/e2e/template/helmfile/snapshot_test.go | 2 +- .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{no-envs.yaml => no-envs.yaml.gotmpl} | 0 .../{no-values.yaml => no-values.yaml.gotmpl} | 0 .../helmfiles/{prod.yaml => prod.yaml.gotmpl} | 0 .../helmfiles/{test.yaml => test.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 8 +- .../config.yaml | 5 - .../config.yaml | 5 + .../input.yaml.gotmpl} | 2 +- .../output.yaml | 1 - .../{input.yaml => input.yaml.gotmpl} | 0 .../hcl_mix/{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../output.yaml | 4 +- .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../pr_560/{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 test/integration/test-cases/chart-needs.sh | 9 +- .../{helmfile.yaml => helmfile.yaml.gotmpl} | 0 ...y-jsonPatches-and-strategicMergePatches.sh | 9 +- .../{helmfile.yaml => helmfile.yaml.gotmpl} | 0 test/integration/test-cases/chartify.sh | 9 +- .../{helmfile.yaml => helmfile.yaml.gotmpl} | 0 .../cli-overwrite-environment-values.sh | 30 +-- .../input/input.yaml | 17 -- ...input_v1.yaml.gotmpl => input.yaml.gotmpl} | 0 .../output/output.yaml | 9 +- .../output/output_v1.yaml | 111 --------- test/integration/test-cases/happypath.sh | 9 +- .../{happypath.yaml => happypath.yaml.gotmpl} | 0 test/integration/test-cases/postrender.sh | 9 +- .../{helmfile.yaml => helmfile.yaml.gotmpl} | 0 test/integration/test-cases/regression.sh | 32 +-- ...issue.1682.yaml => issue.1682.yaml.gotmpl} | 0 ...issue.1857.yaml => issue.1857.yaml.gotmpl} | 0 ...issue.1867.yaml => issue.1867.yaml.gotmpl} | 0 ...issue.2118.yaml => issue.2118.yaml.gotmpl} | 0 test/integration/test-cases/secretssops.sh | 8 +- ...cretssops.yaml => secretssops.yaml.gotmpl} | 0 ...bhelmfile-multi-bases-with-array-values.sh | 35 +-- .../output/result-live | 25 ++ test/integration/test-cases/yaml-overwrite.sh | 30 ++- 229 files changed, 510 insertions(+), 9464 deletions(-) delete mode 100644 cmd/charts.go delete mode 100644 cmd/delete.go create mode 100644 pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs create mode 100644 pkg/app/testdata/app_diff_test_1/unselected_release_in_needs create mode 100644 pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector create mode 100644 pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false create mode 100644 pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs create mode 100644 pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector create mode 100644 pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false create mode 100644 pkg/app/testdata/testapply_2/bad_--selector/log create mode 100644 pkg/app/testdata/testapply_3/bad_--selector/log create mode 100644 pkg/app/testdata/testdeps/smoke/log create mode 100644 pkg/app/testdata/testreadfromyaml_rendertemplatelog/log delete mode 100644 pkg/config/charts.go delete mode 100644 pkg/config/delete.go rename test/e2e/template/helmfile/testdata/snapshot/chart_need/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{no-envs.yaml => no-envs.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{no-values.yaml => no-values.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{prod.yaml => prod.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{test.yaml => test.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/{input.yaml => input.yaml.gotmpl} (58%) delete mode 100644 test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml create mode 100644 test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml rename test/e2e/template/helmfile/testdata/snapshot/{environments_releases_within_same_yaml_part/input.yaml => environments_releases_without_same_yaml_part/input.yaml.gotmpl} (97%) rename test/e2e/template/helmfile/testdata/snapshot/{environments_releases_within_same_yaml_part => environments_releases_without_same_yaml_part}/output.yaml (56%) rename test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/hcl_mix/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/oci_need/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/postrenderer/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/pr_560/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/{input.yaml => input.yaml.gotmpl} (100%) rename test/integration/test-cases/chart-needs/input/{helmfile.yaml => helmfile.yaml.gotmpl} (100%) rename test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/{helmfile.yaml => helmfile.yaml.gotmpl} (100%) rename test/integration/test-cases/chartify/input/{helmfile.yaml => helmfile.yaml.gotmpl} (100%) delete mode 100644 test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml rename test/integration/test-cases/cli-overwrite-environment-values/input/{input_v1.yaml.gotmpl => input.yaml.gotmpl} (100%) delete mode 100644 test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml rename test/integration/test-cases/happypath/input/{happypath.yaml => happypath.yaml.gotmpl} (100%) rename test/integration/test-cases/postrender/input/{helmfile.yaml => helmfile.yaml.gotmpl} (100%) rename test/integration/test-cases/regression/input/{issue.1682.yaml => issue.1682.yaml.gotmpl} (100%) rename test/integration/test-cases/regression/input/{issue.1857.yaml => issue.1857.yaml.gotmpl} (100%) rename test/integration/test-cases/regression/input/{issue.1867.yaml => issue.1867.yaml.gotmpl} (100%) rename test/integration/test-cases/regression/input/{issue.2118.yaml => issue.2118.yaml.gotmpl} (100%) rename test/integration/test-cases/secretssops/input/{secretssops.yaml => secretssops.yaml.gotmpl} (100%) create mode 100644 test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2e25b18c..26f579cf 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -59,7 +59,6 @@ jobs: plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' - v1mode: '' - helm-version: v3.16.4 kustomize-version: v5.4.3 # We assume that the helm-secrets plugin is supposed to @@ -70,26 +69,16 @@ jobs: plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '' - v1mode: '' - helm-version: v3.17.0 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' - v1mode: '' - helm-version: v3.17.0 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '' - v1mode: '' - # Helmfile v1 - - helm-version: v3.17.0 - kustomize-version: v5.4.3 - plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.14 - 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.17.0 @@ -97,7 +86,6 @@ jobs: plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '--enable-live-output' - v1mode: '' steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 @@ -127,7 +115,6 @@ jobs: HELMFILE_HELM3: 1 TERM: xterm EXTRA_HELMFILE_FLAGS: ${{ matrix.extra-helmfile-flags }} - HELMFILE_V1MODE: ${{ matrix.v1mode }} e2e_tests: needs: tests diff --git a/.github/workflows/releaser.yaml b/.github/workflows/releaser.yaml index ee2f0dc9..fc98bd7c 100644 --- a/.github/workflows/releaser.yaml +++ b/.github/workflows/releaser.yaml @@ -16,7 +16,6 @@ permissions: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - HELMFILE_V1MODE: ${{ startsWith(github.ref, 'refs/tags/v1') }} SNAPSHOT: ${{ !startsWith(github.ref, 'refs/tags/v') && '--snapshot' || '' }} jobs: diff --git a/.goreleaser.yml b/.goreleaser.yml index 6d515513..aba37be9 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,8 +1,5 @@ version: 2 project_name: helmfile -env: - # We default to non-v1 mode (=helmfile v0.x behavior) when HELMFILE_V1MODE is not set - - HELMFILE_V1MODE={{ if index .Env "HELMFILE_V1MODE" }}{{ .Env.HELMFILE_V1MODE }}{{ else }}false{{ end }} builds: - id: helmfile main: . @@ -15,7 +12,6 @@ builds: - -X go.szostok.io/version.commit={{.FullCommit}} - -X go.szostok.io/version.commitDate={{.CommitDate}} - -X go.szostok.io/version.dirtyBuild=false - - -X github.com/helmfile/helmfile/pkg/runtime.v1Mode={{.Env.HELMFILE_V1MODE}} goos: - darwin - linux diff --git a/Makefile b/Makefile index 0500bd33..5e009ca0 100644 --- a/Makefile +++ b/Makefile @@ -25,10 +25,6 @@ build: go build -ldflags="$(GO_BUILD_VERSION_LDFLAGS)" ${TARGETS} .PHONY: build -build-v1: - go build -ldflags="$(GO_BUILD_VERSION_LDFLAGS) -X github.com/helmfile/helmfile/pkg/runtime.v1Mode=true" ${TARGETS} -.PHONY: build-v1 - generate: go generate ${PKGS} .PHONY: generate diff --git a/cmd/apply.go b/cmd/apply.go index 9e6cfa47..8cbe4ad9 100644 --- a/cmd/apply.go +++ b/cmd/apply.go @@ -5,7 +5,6 @@ import ( "github.com/helmfile/helmfile/pkg/app" "github.com/helmfile/helmfile/pkg/config" - "github.com/helmfile/helmfile/pkg/runtime" ) // NewApplyCmd returns apply subcmd @@ -44,12 +43,6 @@ func NewApplyCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.StringVar(&applyOptions.DiffArgs, "diff-args", "", `pass args to helm helm-diff`) f.StringVar(&applyOptions.SyncArgs, "sync-args", "", `pass args to helm upgrade`) f.StringVar(&globalCfg.GlobalOptions.Args, "args", "", "pass args to helm exec") - if !runtime.V1Mode { - // TODO: Remove this function once Helmfile v0.x - f.BoolVar(&applyOptions.RetainValuesFiles, "retain-values-files", false, "DEPRECATED: Use skip-cleanup instead") - _ = f.MarkDeprecated("retain-values-files", "Use skip-cleanup instead") - } - f.BoolVar(&applyOptions.SkipCleanup, "skip-cleanup", false, "Stop cleaning up temporary values generated by helmfile and helm-secrets. Useful for debugging. Don't use in production for security") f.BoolVar(&applyOptions.SkipCRDs, "skip-crds", false, "if set, no CRDs will be installed on sync. By default, CRDs are installed if not already present") f.BoolVar(&applyOptions.SkipNeeds, "skip-needs", true, `do not automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when --selector/-l flag is not provided. Defaults to true when --include-needs or --include-transitive-needs is not provided`) diff --git a/cmd/charts.go b/cmd/charts.go deleted file mode 100644 index cae9d168..00000000 --- a/cmd/charts.go +++ /dev/null @@ -1,41 +0,0 @@ -// TODO: Remove this function once Helmfile v0.x -package cmd - -import ( - "github.com/spf13/cobra" - - "github.com/helmfile/helmfile/pkg/app" - "github.com/helmfile/helmfile/pkg/config" -) - -// NewChartsCmd returns charts subcmd -func NewChartsCmd(globalCfg *config.GlobalImpl) *cobra.Command { - chartsOptions := config.NewChartsOptions() - - cmd := &cobra.Command{ - Use: "charts", - Short: "DEPRECATED: sync releases from state file (helm upgrade --install)", - RunE: func(cmd *cobra.Command, args []string) error { - chartsImpl := config.NewChartsImpl(globalCfg, chartsOptions) - err := config.NewCLIConfigImpl(chartsImpl.GlobalImpl) - if err != nil { - return err - } - - if err := chartsImpl.ValidateConfig(); err != nil { - return err - } - - a := app.New(chartsImpl) - return toCLIError(chartsImpl.GlobalImpl, a.DeprecatedSyncCharts(chartsImpl)) - }, - } - - f := cmd.Flags() - f.StringVar(&globalCfg.GlobalOptions.Args, "args", "", "pass args to helm exec") - f.StringArrayVar(&chartsOptions.Set, "set", nil, "additional values to be merged into the helm command --set flag") - f.StringArrayVar(&chartsOptions.Values, "values", nil, "additional value files to be merged into the helm command --values flag") - f.IntVar(&chartsOptions.Concurrency, "concurrency", 0, "maximum number of concurrent helm processes to run, 0 is unlimited") - - return cmd -} diff --git a/cmd/delete.go b/cmd/delete.go deleted file mode 100644 index 1c89c147..00000000 --- a/cmd/delete.go +++ /dev/null @@ -1,44 +0,0 @@ -// TODO: Remove this function once Helmfile v0.x -package cmd - -import ( - "github.com/spf13/cobra" - - "github.com/helmfile/helmfile/pkg/app" - "github.com/helmfile/helmfile/pkg/config" -) - -// NewDeleteCmd returns delete subcmd -func NewDeleteCmd(globalCfg *config.GlobalImpl) *cobra.Command { - deleteOptions := config.NewDeleteOptions() - - cmd := &cobra.Command{ - Use: "delete", - Short: "DEPRECATED: delete releases from state file (helm delete)", - RunE: func(cmd *cobra.Command, args []string) error { - deleteImpl := config.NewDeleteImpl(globalCfg, deleteOptions) - err := config.NewCLIConfigImpl(deleteImpl.GlobalImpl) - if err != nil { - return err - } - - if err := deleteImpl.ValidateConfig(); err != nil { - return err - } - - a := app.New(deleteImpl) - return toCLIError(deleteImpl.GlobalImpl, a.Delete(deleteImpl)) - }, - } - - f := cmd.Flags() - f.StringVar(&globalCfg.GlobalOptions.Args, "args", "", "pass args to helm exec") - f.StringVar(&deleteOptions.Cascade, "cascade", "", "pass cascade to helm exec, default: background") - f.IntVar(&deleteOptions.Concurrency, "concurrency", 0, "maximum number of concurrent helm processes to run, 0 is unlimited") - f.BoolVar(&deleteOptions.Purge, "purge", false, "purge releases i.e. free release names and histories") - f.BoolVar(&deleteOptions.SkipCharts, "skip-charts", false, "don't prepare charts when deleting releases") - f.BoolVar(&deleteOptions.DeleteWait, "deleteWait", false, `override helmDefaults.wait setting "helm uninstall --wait"`) - f.IntVar(&deleteOptions.DeleteTimeout, "deleteTimeout", 300, `time in seconds to wait for helm uninstall, default: 300`) - - return cmd -} diff --git a/cmd/root.go b/cmd/root.go index f94cd9be..ed629d12 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -109,14 +109,6 @@ func NewRootCmd(globalConfig *config.GlobalOptions) (*cobra.Command, error) { ), ) - // TODO: Remove this function once Helmfile v0.x - if !runtime.V1Mode { - cmd.AddCommand( - NewChartsCmd(globalImpl), - NewDeleteCmd(globalImpl), - ) - } - return cmd, nil } diff --git a/docs/index.md b/docs/index.md index 88c819b7..db460ca9 100644 --- a/docs/index.md +++ b/docs/index.md @@ -557,7 +557,6 @@ Helmfile uses some OS environment variables to override default behaviour: * `HELMFILE_ENVIRONMENT` - specify [Helmfile environment](https://helmfile.readthedocs.io/en/latest/#environment), it has lower priority than CLI argument `--environment` * `HELMFILE_TEMPDIR` - specify directory to store temporary files * `HELMFILE_UPGRADE_NOTICE_DISABLED` - expecting any non-empty value to skip the check for the latest version of Helmfile in [helmfile version](https://helmfile.readthedocs.io/en/latest/#version) -* `HELMFILE_V1MODE` - Helmfile v0.x behaves like v1.x with `true`, Helmfile v1.x behaves like v0.x with `false` as value * `HELMFILE_GOCCY_GOYAML` - use *goccy/go-yaml* instead of *gopkg.in/yaml.v2*. It's `false` by default in Helmfile v0.x and `true` by default for Helmfile v1.x. * `HELMFILE_CACHE_HOME` - specify directory to store cached files for remote operations * `HELMFILE_FILE_PATH` - specify the path to the helmfile.yaml file diff --git a/pkg/app/app.go b/pkg/app/app.go index 91beba57..3a44b252 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -20,7 +20,6 @@ import ( "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/plugins" "github.com/helmfile/helmfile/pkg/remote" - "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" ) @@ -139,25 +138,6 @@ func (a *App) Repos(c ReposConfigProvider) error { }, c.IncludeTransitiveNeeds(), SetFilter(true)) } -// TODO: Remove this function once Helmfile v0.x -func (a *App) DeprecatedSyncCharts(c DeprecatedChartsConfigProvider) error { - return a.ForEachState(func(run *Run) (_ bool, errs []error) { - err := run.withPreparedCharts("charts", state.ChartPrepareOptions{ - SkipRepos: true, - SkipDeps: true, - Concurrency: 2, - }, func() { - errs = run.DeprecatedSyncCharts(c) - }) - - if err != nil { - errs = append(errs, err) - } - - return - }, c.IncludeTransitiveNeeds(), SetFilter(true)) -} - func (a *App) Diff(c DiffConfigProvider) error { var allDiffDetectedErrs []error @@ -409,7 +389,7 @@ func (a *App) Apply(c ApplyConfigProvider) error { var opts []LoadOption - opts = append(opts, SetRetainValuesFiles(c.RetainValuesFiles() || c.SkipCleanup())) + opts = append(opts, SetRetainValuesFiles(c.SkipCleanup())) err := a.ForEachState(func(run *Run) (ok bool, errs []error) { includeCRDs := !c.SkipCRDs() @@ -421,7 +401,7 @@ func (a *App) Apply(c ApplyConfigProvider) error { Wait: c.Wait(), WaitForJobs: c.WaitForJobs(), IncludeCRDs: &includeCRDs, - SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), + SkipCleanup: c.SkipCleanup(), Validate: c.Validate(), Concurrency: c.Concurrency(), IncludeTransitiveNeeds: c.IncludeNeeds(), @@ -473,31 +453,6 @@ func (a *App) Status(c StatusesConfigProvider) error { }, false, SetFilter(true)) } -// TODO: Remove this function once Helmfile v0.x -func (a *App) Delete(c DeleteConfigProvider) error { - return a.ForEachState(func(run *Run) (ok bool, errs []error) { - if !c.SkipCharts() { - err := run.withPreparedCharts("delete", state.ChartPrepareOptions{ - SkipRepos: c.SkipRefresh() || c.SkipDeps(), - SkipRefresh: c.SkipRefresh(), - SkipDeps: c.SkipDeps(), - Concurrency: c.Concurrency(), - DeleteWait: c.DeleteWait(), - DeleteTimeout: c.DeleteTimeout(), - }, func() { - ok, errs = a.delete(run, c.Purge(), c) - }) - - if err != nil { - errs = append(errs, err) - } - } else { - ok, errs = a.delete(run, c.Purge(), c) - } - return - }, false, SetReverse(true)) -} - func (a *App) Destroy(c DestroyConfigProvider) error { return a.ForEachState(func(run *Run) (ok bool, errs []error) { if !c.SkipCharts() { @@ -1258,16 +1213,6 @@ func (a *App) findDesiredStateFiles(specifiedPath string, opts LoadOpts) ([]stri case a.fs.FileExistsAt(DefaultGotmplHelmfile): defaultFile = DefaultGotmplHelmfile - - // TODO: Remove this block when we remove v0 code - case !runtime.V1Mode && a.fs.FileExistsAt(DeprecatedHelmfile): - a.Logger.Warnf( - "warn: %s is being loaded: %s is deprecated in favor of %s. See https://github.com/roboll/helmfile/issues/25 for more information", - DeprecatedHelmfile, - DeprecatedHelmfile, - DefaultHelmfile, - ) - defaultFile = DeprecatedHelmfile } switch { @@ -1432,7 +1377,7 @@ func (a *App) apply(r *Run, c ApplyConfigProvider) (bool, bool, []error) { Context: c.Context(), Output: c.DiffOutput(), Set: c.Set(), - SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), + SkipCleanup: c.SkipCleanup(), SkipDiffOnInstall: c.SkipDiffOnInstall(), ReuseValues: c.ReuseValues(), ResetValues: c.ResetValues(), @@ -1543,7 +1488,7 @@ Do you really want to apply? syncOpts := &state.SyncOpts{ Set: c.Set(), - SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), + SkipCleanup: c.SkipCleanup(), SkipCRDs: c.SkipCRDs(), Wait: c.Wait(), WaitForJobs: c.WaitForJobs(), diff --git a/pkg/app/app_apply_nokubectx_test.go b/pkg/app/app_apply_nokubectx_test.go index 437a467c..c5ca3bbe 100644 --- a/pkg/app/app_apply_nokubectx_test.go +++ b/pkg/app/app_apply_nokubectx_test.go @@ -146,7 +146,7 @@ func TestApply_3(t *testing.T) { skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -199,7 +199,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -250,7 +250,7 @@ releases: }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -306,7 +306,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -359,7 +359,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -415,7 +415,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -464,7 +464,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def t.Run("bad --selector", func(t *testing.T) { check(t, testcase{ files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -494,72 +494,6 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml - -changing working directory back to "/path/to" -`, }) }) } diff --git a/pkg/app/app_apply_test.go b/pkg/app/app_apply_test.go index 057cd683..06caf828 100644 --- a/pkg/app/app_apply_test.go +++ b/pkg/app/app_apply_test.go @@ -146,7 +146,7 @@ func TestApply_2(t *testing.T) { skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -199,7 +199,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -250,7 +250,7 @@ releases: }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -306,7 +306,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -359,7 +359,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -415,7 +415,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -470,7 +470,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -517,7 +517,7 @@ serviceC 4 Fri Nov 1 08:40:07 2019 DEPLOYED chart-3.1.0 3.1.0 def t.Run("bad --selector", func(t *testing.T) { check(t, testcase{ files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -547,72 +547,6 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml - -changing working directory back to "/path/to" -`, }) }) diff --git a/pkg/app/app_list_test.go b/pkg/app/app_list_test.go index 4cd535ed..69bbc754 100644 --- a/pkg/app/app_list_test.go +++ b/pkg/app/app_list_test.go @@ -240,6 +240,7 @@ environments: values: - myrelease2: enabled: false +--- releases: - name: myrelease1 chart: mychart1 diff --git a/pkg/app/app_sync_test.go b/pkg/app/app_sync_test.go index b138f2fb..5115db1c 100644 --- a/pkg/app/app_sync_test.go +++ b/pkg/app/app_sync_test.go @@ -142,7 +142,7 @@ func TestSync(t *testing.T) { skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -191,7 +191,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -249,7 +249,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -300,7 +300,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -348,7 +348,7 @@ serviceA 4 Fri Nov 1 08:40:07 2019 DEPLOYED chart-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -401,7 +401,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -447,7 +447,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def t.Run("bad --selector", func(t *testing.T) { check(t, testcase{ files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index df79ee51..3ea1b062 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -135,6 +135,7 @@ environments: default: values: - env.*.yaml +--- releases: - name: zipkin chart: stable/zipkin @@ -170,7 +171,7 @@ BAZ: 4 t.Errorf("unexpected error: %v", err) } - expectedOrder := []string{"helmfile.yaml", "/path/to/env.1.yaml", "/path/to/env.2.yaml", "/path/to/env.1.yaml", "/path/to/env.2.yaml"} + expectedOrder := []string{"helmfile.yaml", "/path/to/env.1.yaml", "/path/to/env.2.yaml"} actualOrder := fs.SuccessfulReads() if !reflect.DeepEqual(actualOrder, expectedOrder) { t.Errorf("unexpected order of processed state files: expected=%v, actual=%v", expectedOrder, actualOrder) @@ -184,6 +185,7 @@ environments: default: values: - env.*.yaml +--- releases: - name: zipkin chart: stable/zipkin @@ -230,6 +232,7 @@ bases: - base.yaml environments: test: +--- releases: - name: zipkin chart: stable/zipkin @@ -281,6 +284,7 @@ environments: missingFileHandler: %s values: - %s +--- releases: - name: zipkin chart: stable/zipkin @@ -393,7 +397,7 @@ helmfiles: "/path/to/helmfile.d/a1.yaml": ` environments: prod: - +--- releases: - name: zipkin chart: stable/zipkin @@ -799,41 +803,44 @@ func runFilterSubHelmFilesTests(testcases []struct { func TestVisitDesiredStatesWithReleasesFiltered_EmbeddedNestedStateAdditionalEnvValues(t *testing.T) { files := map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` helmfiles: -- path: helmfile.d/a*.yaml +- path: helmfile.d/a*.yaml.gotmpl values: - env.values.yaml -- helmfile.d/b*.yaml -- path: helmfile.d/c*.yaml +- helmfile.d/b*.yaml.gotmpl +- path: helmfile.d/c*.yaml.gotmpl values: - env.values.yaml `, - "/path/to/helmfile.d/a1.yaml": ` + "/path/to/helmfile.d/a1.yaml.gotmpl": ` environments: default: values: - ns: INLINE_NS +--- releases: - name: foo chart: stable/zipkin namespace: {{ .Environment.Values.ns }} `, - "/path/to/helmfile.d/b.yaml": ` + "/path/to/helmfile.d/b.yaml.gotmpl": ` environments: default: values: - ns: INLINE_NS +--- releases: - name: bar chart: stable/grafana namespace: {{ .Environment.Values.ns }} `, - "/path/to/helmfile.d/c.yaml": ` + "/path/to/helmfile.d/c.yaml.gotmpl": ` environments: default: values: - ns: INLINE_NS +--- releases: - name: baz chart: stable/envoy @@ -851,7 +858,7 @@ ns: INLINE_NS Namespace: "", Selectors: []string{}, Env: "default", - FileOrDir: "/path/to/helmfile.yaml", + FileOrDir: "/path/to/helmfile.yaml.gotmpl", }, files) expectNoCallsToHelm(app) @@ -977,7 +984,7 @@ releases: func TestVisitDesiredStatesWithReleasesFiltered_EnvironmentValueOverrides(t *testing.T) { files := map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` environments: default: values: @@ -1021,7 +1028,7 @@ bar: "bar1" Env: "default", ValuesFiles: []string{"overrides.yaml"}, Set: map[string]any{"bar": "bar2", "baz": "baz1"}, - FileOrDir: "helmfile.yaml", + FileOrDir: "helmfile.yaml.gotmpl", }, files) expectNoCallsToHelm(app) @@ -1075,7 +1082,7 @@ func TestVisitDesiredStatesWithReleasesFiltered_StateValueOverrides(t *testing.T testcase := testcases[i] t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) { files := map[string]string{ - "/path/to/helmfile.yaml": fmt.Sprintf(` + "/path/to/helmfile.yaml.gotmpl": fmt.Sprintf(` # The top-level "values" are "base" values has inherited to state values with the lowest priority. # The lowest priority results in environment-specific values to override values defined in the base. values: @@ -1142,7 +1149,7 @@ x: Env: testcase.env, ValuesFiles: []string{"overrides.yaml"}, Set: map[string]any{"x": map[string]any{"hoge": "hoge_set", "fuga": "fuga_set"}}, - FileOrDir: "helmfile.yaml", + FileOrDir: "helmfile.yaml.gotmpl", }, files) expectNoCallsToHelm(app) @@ -1442,7 +1449,7 @@ func TestLoadDesiredStateFromYaml_DuplicateReleaseName(t *testing.T) { } func TestLoadDesiredStateFromYaml_Bases(t *testing.T) { - yamlFile := "/path/to/yaml/file" + yamlFile := "/path/to/yaml/file.gotmpl" yamlContent := `bases: - ../base.yaml - ../base.gotmpl @@ -1513,7 +1520,7 @@ helmDefaults: } func TestLoadDesiredStateFromYaml_MultiPartTemplate(t *testing.T) { - yamlFile := "/path/to/yaml/file" + yamlFile := "/path/to/yaml/file.gotmpl" yamlContent := `bases: - ../base.yaml --- @@ -1719,7 +1726,7 @@ foo: FOO } func TestLoadDesiredStateFromYaml_MultiPartTemplate_WithNonDefaultEnv(t *testing.T) { - yamlFile := "/path/to/yaml/file" + yamlFile := "/path/to/yaml/file.gotmpl" yamlContent := `bases: - ../base.yaml --- @@ -1810,7 +1817,7 @@ helmDefaults: } func TestLoadDesiredStateFromYaml_MultiPartTemplate_WithReverse(t *testing.T) { - yamlFile := "/path/to/yaml/file" + yamlFile := "/path/to/yaml/file.gotmpl" yamlContent := ` {{ readFile "templates.yaml" }} @@ -1868,7 +1875,7 @@ releases: // See https://github.com/roboll/helmfile/issues/615 func TestLoadDesiredStateFromYaml_MultiPartTemplate_NoMergeArrayInEnvVal(t *testing.T) { - statePath := "/path/to/helmfile.yaml" + statePath := "/path/to/helmfile.yaml.gotmpl" stateContent := ` environments: default: @@ -1933,7 +1940,7 @@ func TestLoadDesiredStateFromYaml_MultiPartTemplate_MergeMapsVariousKeys(t *test } for i := range testcases { tc := testcases[i] - statePath := "/path/to/helmfile.yaml" + statePath := "/path/to/helmfile.yaml.gotmpl" stateContent := ` environments: default: @@ -2050,7 +2057,7 @@ releases: } for i := range testcases { tc := testcases[i] - statePath := "/path/to/helmfile.yaml" + statePath := "/path/to/helmfile.yaml.gotmpl" stateContent := fmt.Sprintf(tc.state, tc.expr) testFs := testhelper.NewTestFs(map[string]string{ statePath: stateContent, @@ -2213,9 +2220,6 @@ type applyConfig struct { cascade string values []string - // TODO: Remove this function once Helmfile v0.x - retainValuesFiles bool - set []string validate bool skipCleanup bool @@ -2376,11 +2380,6 @@ func (a applyConfig) Logger() *zap.SugaredLogger { return a.logger } -// TODO: Remove this function once Helmfile v0.x -func (a applyConfig) RetainValuesFiles() bool { - return a.retainValuesFiles -} - func (a applyConfig) SkipDiffOnInstall() bool { return a.skipDiffOnInstall } @@ -3429,7 +3428,7 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -3482,9 +3481,9 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: false, includeNeeds: true, }, - error: `in ./helmfile.yaml: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, + error: `in ./helmfile.yaml.gotmpl: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -3523,7 +3522,7 @@ releases: name: "upgrades with bad selector", loc: location(), files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -3774,41 +3773,6 @@ releases: `, "/path/to/charts/example/Chart.yaml": `foo: FOO`, }, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: repositories: - 2: - name: bitnami - 3: url: https://charts.bitnami.com/bitnami/ - 4: releases: - 5: - name: example - 6: chart: /path/to/charts/example - 7: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: repositories: - 2: - name: bitnami - 3: url: https://charts.bitnami.com/bitnami/ - 4: releases: - 5: - name: example - 6: chart: /path/to/charts/example - 7: - -merged environment: &{default map[] map[]} -There are no repositories defined in your helmfile.yaml. -This means helmfile cannot update your dependencies or create a lock file. -See https://github.com/roboll/helmfile/issues/878 for more information. -changing working directory back to "/path/to" -`, charts: []string{"/path/to/charts/example"}, }, } @@ -3856,8 +3820,9 @@ changing working directory back to "/path/to" if tc.log != "" { actual := bs.String() - assert.Equal(t, tc.log, actual) + } else { + assertLogEqualsToSnapshot(t, bs.String()) } }) } @@ -3962,6 +3927,7 @@ environments: values: - myrelease2: enabled: false +--- releases: - name: myrelease1 chart: mychart1 @@ -4025,7 +3991,7 @@ func testSetStringValuesTemplate(t *testing.T, goccyGoYaml bool) { }) files := map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` releases: - name: zipkin chart: stable/zipkin @@ -4049,7 +4015,7 @@ releases: OverrideKubeContext: "default", Logger: newAppTestLogger(), Env: "default", - FileOrDir: "helmfile.yaml", + FileOrDir: "helmfile.yaml.gotmpl", }, files) expectNoCallsToHelm(app) @@ -4093,7 +4059,7 @@ func testSetValuesTemplate(t *testing.T, goccyGoYaml bool) { }) files := map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` releases: - name: zipkin chart: stable/zipkin @@ -4121,7 +4087,7 @@ releases: OverrideKubeContext: "default", Logger: newAppTestLogger(), Env: "default", - FileOrDir: "helmfile.yaml", + FileOrDir: "helmfile.yaml.gotmpl", }, files) expectNoCallsToHelm(app) diff --git a/pkg/app/config.go b/pkg/app/config.go index b6e3a064..1a46c4cc 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -25,15 +25,6 @@ type ConfigProvider interface { loggingConfig } -// TODO: Remove this function once Helmfile v0.x -type DeprecatedChartsConfigProvider interface { - Values() []string - - concurrencyConfig - loggingConfig - IncludeTransitiveNeeds() bool -} - type DepsConfigProvider interface { Args() string SkipRepos() bool @@ -81,9 +72,6 @@ type ApplyConfigProvider interface { Context() int DiffOutput() string - // TODO: Remove this function once Helmfile v0.x - RetainValuesFiles() bool - Validate() bool SkipCleanup() bool SkipDiffOnInstall() bool @@ -166,23 +154,6 @@ type DiffConfigProvider interface { valuesControlMode } -// TODO: Remove this function once Helmfile v0.x -type DeleteConfigProvider interface { - Args() string - Cascade() string - - Purge() bool - SkipDeps() bool - SkipRefresh() bool - SkipCharts() bool - DeleteWait() bool - DeleteTimeout() int - - interactive - loggingConfig - concurrencyConfig -} - type DestroyConfigProvider interface { Args() string Cascade() string diff --git a/pkg/app/constants.go b/pkg/app/constants.go index 63fd3af7..38d06ce0 100644 --- a/pkg/app/constants.go +++ b/pkg/app/constants.go @@ -8,10 +8,7 @@ import ( ) const ( - DefaultHelmfile = "helmfile.yaml" - // TODO: Remove this function once Helmfile v0.x - DeprecatedHelmfile = "charts.yaml" - + DefaultHelmfile = "helmfile.yaml" DefaultHelmfileDirectory = "helmfile.d" ExperimentalSelectorExplicit = "explicit-selector-inheritance" // value to remove default selector inheritance to sub-helmfiles and use the explicit one ) diff --git a/pkg/app/desired_state_file_loader.go b/pkg/app/desired_state_file_loader.go index 76fa81f5..90986023 100644 --- a/pkg/app/desired_state_file_loader.go +++ b/pkg/app/desired_state_file_loader.go @@ -15,7 +15,6 @@ import ( "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/policy" "github.com/helmfile/helmfile/pkg/remote" - "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" ) @@ -162,21 +161,14 @@ func (a *desiredStateLoader) underlying() *state.StateCreator { func (a *desiredStateLoader) rawLoad(yaml []byte, baseDir, file string, evaluateBases bool, env, overrodeEnv *environment.Environment) (*state.HelmState, error) { var st *state.HelmState var err error - if runtime.V1Mode { - st, err = a.underlying().ParseAndLoad(yaml, baseDir, file, a.env, false, evaluateBases, env, overrodeEnv) - if err != nil { - return nil, err - } - } else { - merged, err := env.Merge(overrodeEnv) - if err != nil { - return nil, err - } + merged, err := env.Merge(overrodeEnv) + if err != nil { + return nil, err + } - st, err = a.underlying().ParseAndLoad(yaml, baseDir, file, a.env, false, evaluateBases, merged, nil) - if err != nil { - return nil, err - } + st, err = a.underlying().ParseAndLoad(yaml, baseDir, file, a.env, false, evaluateBases, merged, nil) + if err != nil { + return nil, err } helmfiles, err := st.ExpandedHelmfiles() if err != nil { @@ -207,7 +199,7 @@ func (ld *desiredStateLoader) load(env, overrodeEnv *environment.Environment, ba var rawContent []byte - if filepath.Ext(filename) == ".gotmpl" || !runtime.V1Mode { + if filepath.Ext(filename) == ".gotmpl" { var yamlBuf *bytes.Buffer var err error diff --git a/pkg/app/diff_nokubectx_test.go b/pkg/app/diff_nokubectx_test.go index cd0239ad..9b2d36c8 100644 --- a/pkg/app/diff_nokubectx_test.go +++ b/pkg/app/diff_nokubectx_test.go @@ -636,7 +636,7 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau loc: location(), flags: flags{skipNeeds: true}, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -677,7 +677,7 @@ releases: loc: location(), flags: flags{skipNeeds: false}, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -711,81 +711,14 @@ releases: upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - error: `in ./helmfile.yaml: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -err: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies -changing working directory back to "/path/to" -`, + error: `in ./helmfile.yaml.gotmpl: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, }, { // see https://github.com/roboll/helmfile/issues/919#issuecomment-549831747 name: "upgrades with bad selector", loc: location(), files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -817,72 +750,6 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml - -changing working directory back to "/path/to" -`, }, // // error cases @@ -912,46 +779,6 @@ releases: deleted: []exectest.Release{}, concurrency: 1, error: `in ./helmfile.yaml: release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"?`, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -merged environment: &{default map[] map[]} -WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs -2 release(s) found in helmfile.yaml - -err: release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? -changing working directory back to "/path/to" -`, }, } diff --git a/pkg/app/diff_test.go b/pkg/app/diff_test.go index f1987143..372badff 100644 --- a/pkg/app/diff_test.go +++ b/pkg/app/diff_test.go @@ -931,7 +931,7 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau loc: location(), flags: flags{skipNeeds: true}, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -972,7 +972,7 @@ releases: loc: location(), flags: flags{skipNeeds: false}, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -1006,81 +1006,14 @@ releases: upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - error: `in ./helmfile.yaml: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies -changing working directory back to "/path/to" -`, + error: `in ./helmfile.yaml.gotmpl: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, }, { // see https://github.com/roboll/helmfile/issues/919#issuecomment-549831747 name: "upgrades with bad selector", loc: location(), files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -1112,72 +1045,6 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml - -changing working directory back to "/path/to" -`, }, // // error cases @@ -1208,43 +1075,6 @@ releases: deleted: []exectest.Release{}, concurrency: 1, error: `in ./helmfile.yaml: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -merged environment: &{default map[] map[]} -1 release(s) matching name=foo found in helmfile.yaml - -err: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies -changing working directory back to "/path/to" -`, }, { name: "non-existent release in needs", @@ -1271,46 +1101,6 @@ releases: deleted: []exectest.Release{}, concurrency: 1, error: `in ./helmfile.yaml: release(s) "default//foo" depend(s) on an undefined release "default//bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"?`, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -merged environment: &{default map[] map[]} -WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs -2 release(s) found in helmfile.yaml - -err: release(s) "default//foo" depend(s) on an undefined release "default//bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? -changing working directory back to "/path/to" -`, }, } diff --git a/pkg/app/run.go b/pkg/app/run.go index e29fce2a..f01c2d4d 100644 --- a/pkg/app/run.go +++ b/pkg/app/run.go @@ -135,17 +135,6 @@ func (r *Run) Repos(c ReposConfigProvider) error { return r.ctx.SyncReposOnce(r.state, r.helm) } -// TODO: Remove this function once Helmfile v0.x -func (r *Run) DeprecatedSyncCharts(c DeprecatedChartsConfigProvider) []error { - st := r.state - helm := r.helm - - affectedReleases := state.AffectedReleases{} - errs := st.SyncReleases(&affectedReleases, helm, c.Values(), c.Concurrency()) - affectedReleases.DisplayAffectedReleases(c.Logger()) - return errs -} - func (r *Run) diff(triggerCleanupEvent bool, detailedExitCode bool, c DiffConfigProvider, diffOpts *state.DiffOpts) (*string, map[string]state.ReleaseSpec, map[string]state.ReleaseSpec, []error) { st := r.state helm := r.helm diff --git a/pkg/app/testdata/app_diff_test/bad_selector b/pkg/app/testdata/app_diff_test/bad_selector index 9a3ab785..7d03a1f4 100644 --- a/pkg/app/testdata/app_diff_test/bad_selector +++ b/pkg/app/testdata/app_diff_test/bad_selector @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 0 release(s) matching app=test_non_existent found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default b/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default index a0113f65..ab53c3ad 100644 --- a/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default +++ b/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs b/pkg/app/testdata/app_diff_test/include-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_diff_test/include-needs +++ b/pkg/app/testdata/app_diff_test/include-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need index 9154b011..368cb842 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need index 84a81703..0396ca0d 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need index 9154b011..368cb842 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need index 84a81703..0396ca0d 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-transitive-needs b/pkg/app/testdata/app_diff_test/include-transitive-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_diff_test/include-transitive-needs +++ b/pkg/app/testdata/app_diff_test/include-transitive-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need index 84a81703..0396ca0d 100644 --- a/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/no-hooks b/pkg/app/testdata/app_diff_test/no-hooks index 67ee2936..ceb99f63 100644 --- a/pkg/app/testdata/app_diff_test/no-hooks +++ b/pkg/app/testdata/app_diff_test/no-hooks @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release b/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release index a695f222..66b419fa 100644 --- a/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release +++ b/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: a - 3: chart: incubator/raw - 4: namespace: default - 5: - name: b - 6: chart: incubator/raw - 7: namespace: default - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: a - 3: chart: incubator/raw - 4: namespace: default - 5: - name: b - 6: chart: incubator/raw - 7: namespace: default - 8: - merged environment: &{default map[] map[]} 1 release(s) matching name=a found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release b/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release index a0a45f09..58d51e49 100644 --- a/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release +++ b/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: a - 3: chart: incubator/raw - 4: installed: false - 5: namespace: default - 6: - name: b - 7: chart: incubator/raw - 8: namespace: default - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: a - 3: chart: incubator/raw - 4: installed: false - 5: namespace: default - 6: - name: b - 7: chart: incubator/raw - 8: namespace: default - 9: - merged environment: &{default map[] map[]} 1 release(s) matching name=a found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/skip-needs b/pkg/app/testdata/app_diff_test/skip-needs index 67ee2936..ceb99f63 100644 --- a/pkg/app/testdata/app_diff_test/skip-needs +++ b/pkg/app/testdata/app_diff_test/skip-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/bar b/pkg/app/testdata/app_diff_test_1/bar index cf0a0bb0..26cad101 100644 --- a/pkg/app/testdata/app_diff_test_1/bar +++ b/pkg/app/testdata/app_diff_test_1/bar @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo index 993d71e8..96453206 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar index febbbebd..9afd557d 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs index 1ac8c2d3..820af517 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs index 2cae2be4..b79babf5 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo index db62f332..ba652995 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: mychart1 - 9: installed: false -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: mychart1 - 9: installed: false -10: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar index 7268940e..a3469c08 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo index b10dd133..fb673733 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs index c34f7b46..3456f070 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs index 60002d0c..13f06734 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar index f2e49270..cb7b8fc7 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo b/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo index 2c4a2fef..bb76a70e 100644 --- a/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo +++ b/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/install b/pkg/app/testdata/app_diff_test_1/install index bc8c2830..ba4ef00f 100644 --- a/pkg/app/testdata/app_diff_test_1/install +++ b/pkg/app/testdata/app_diff_test_1/install @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: mychart2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: mychart2 -10: - merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs b/pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs new file mode 100644 index 00000000..60dead90 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs @@ -0,0 +1,8 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs +2 release(s) found in helmfile.yaml + +err: release(s) "default//foo" depend(s) on an undefined release "default//bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/noop b/pkg/app/testdata/app_diff_test_1/noop index 5c2c5753..beea0d82 100644 --- a/pkg/app/testdata/app_diff_test_1/noop +++ b/pkg/app/testdata/app_diff_test_1/noop @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/smoke b/pkg/app/testdata/app_diff_test_1/smoke index 3cd9cd5a..b11d65d4 100644 --- a/pkg/app/testdata/app_diff_test_1/smoke +++ b/pkg/app/testdata/app_diff_test_1/smoke @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/unselected_release_in_needs b/pkg/app/testdata/app_diff_test_1/unselected_release_in_needs new file mode 100644 index 00000000..d82f9d50 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_1/unselected_release_in_needs @@ -0,0 +1,7 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +1 release(s) matching name=foo found in helmfile.yaml + +err: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo index 20aae345..e1ade01c 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override index f78c15ac..37ac4517 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar index b87bccce..4add017f 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override index e0d964ad..f54ab275 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override index bbdfc3d1..358aaaf6 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: helmDefaults: - 2: kubeContext: hello/world - 3: releases: - 4: - name: bar - 5: chart: mychart2 - 6: - name: foo - 7: chart: mychart1 - 8: needs: - 9: - bar -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: helmDefaults: - 2: kubeContext: hello/world - 3: releases: - 4: - name: bar - 5: chart: mychart2 - 6: - name: foo - 7: chart: mychart1 - 8: needs: - 9: - bar -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context b/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context index e6383a6a..1ca95228 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context @@ -1,42 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: releaseA - 3: chart: mychart1 - 4: namespace: namespaceA - 5: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster - 6: - name: releaseB - 7: chart: mychart2 - 8: namespace: namespaceA - 9: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster -10: needs: -11: - arn:aws:eks:us-east-1:1234567890:cluster/myekscluster/namespaceA/releaseA -12: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: releaseA - 3: chart: mychart1 - 4: namespace: namespaceA - 5: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster - 6: - name: releaseB - 7: chart: mychart2 - 8: namespace: namespaceA - 9: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster -10: needs: -11: - arn:aws:eks:us-east-1:1234567890:cluster/myekscluster/namespaceA/releaseA -12: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar b/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar index cf0a0bb0..26cad101 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector b/pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector new file mode 100644 index 00000000..8e3e99cf --- /dev/null +++ b/pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector @@ -0,0 +1,33 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false b/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false new file mode 100644 index 00000000..f29aa140 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false @@ -0,0 +1,34 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml.gotmpl + +err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true b/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true index 427f901f..6e264062 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true +++ b/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl processing 2 groups of releases in this order: GROUP RELEASES diff --git a/pkg/app/testdata/app_diff_test_2/bar b/pkg/app/testdata/app_diff_test_2/bar index 91ee7d7e..f5cea33b 100644 --- a/pkg/app/testdata/app_diff_test_2/bar +++ b/pkg/app/testdata/app_diff_test_2/bar @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo index 4e540849..7867ad46 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar index f3a1cd0f..e0bc8dea 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs index 451d5aba..f08db1b7 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs index a54fce36..03791661 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo index db62f332..ba652995 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: mychart1 - 9: installed: false -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: mychart1 - 9: installed: false -10: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar index 7268940e..a3469c08 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo index f4cc93bd..52e9c63e 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar index 8c2fb60c..b897150f 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/foo b/pkg/app/testdata/app_diff_test_2/foo index 7cdf3a2e..2638d8ff 100644 --- a/pkg/app/testdata/app_diff_test_2/foo +++ b/pkg/app/testdata/app_diff_test_2/foo @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo b/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo index 7cdf3a2e..2638d8ff 100644 --- a/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo +++ b/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/install b/pkg/app/testdata/app_diff_test_2/install index 95591b3a..55f951fc 100644 --- a/pkg/app/testdata/app_diff_test_2/install +++ b/pkg/app/testdata/app_diff_test_2/install @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: mychart2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: mychart2 -10: - merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs b/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs new file mode 100644 index 00000000..34aaed69 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs @@ -0,0 +1,8 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs +2 release(s) found in helmfile.yaml + +err: release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_2/noop b/pkg/app/testdata/app_diff_test_2/noop index 4bb79c7f..3f843e50 100644 --- a/pkg/app/testdata/app_diff_test_2/noop +++ b/pkg/app/testdata/app_diff_test_2/noop @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/smoke b/pkg/app/testdata/app_diff_test_2/smoke index fcaf8164..52de3861 100644 --- a/pkg/app/testdata/app_diff_test_2/smoke +++ b/pkg/app/testdata/app_diff_test_2/smoke @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo index 6b69bd73..2239c0c5 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override index 87892d12..0841c62e 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar index 7ea553a7..0a5c6018 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override index 49bb72fe..686dabf1 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector b/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector new file mode 100644 index 00000000..8e3e99cf --- /dev/null +++ b/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector @@ -0,0 +1,33 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false new file mode 100644 index 00000000..3be41c57 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false @@ -0,0 +1,34 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml.gotmpl + +err: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true index 926e26fd..e61b33e8 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true +++ b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl processing 2 groups of releases in this order: GROUP RELEASES diff --git a/pkg/app/testdata/app_lint_test/bad_selector b/pkg/app/testdata/app_lint_test/bad_selector index 9a3ab785..7d03a1f4 100644 --- a/pkg/app/testdata/app_lint_test/bad_selector +++ b/pkg/app/testdata/app_lint_test/bad_selector @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 0 release(s) matching app=test_non_existent found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default b/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default index a0113f65..ab53c3ad 100644 --- a/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default +++ b/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs b/pkg/app/testdata/app_lint_test/include-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_lint_test/include-needs +++ b/pkg/app/testdata/app_lint_test/include-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need index ad93dd62..54c6135e 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need index c51d74d8..f2ad0c8f 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need index ad93dd62..54c6135e 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need index c51d74d8..f2ad0c8f 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-transitive-needs b/pkg/app/testdata/app_lint_test/include-transitive-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_lint_test/include-transitive-needs +++ b/pkg/app/testdata/app_lint_test/include-transitive-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need index c51d74d8..f2ad0c8f 100644 --- a/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/skip-needs b/pkg/app/testdata/app_lint_test/skip-needs index 67ee2936..ceb99f63 100644 --- a/pkg/app/testdata/app_lint_test/skip-needs +++ b/pkg/app/testdata/app_lint_test/skip-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_list_test/default_environment_includes_all_releases b/pkg/app/testdata/app_list_test/default_environment_includes_all_releases index 5dd4bb4a..75efff96 100644 --- a/pkg/app/testdata/app_list_test/default_environment_includes_all_releases +++ b/pkg/app/testdata/app_list_test/default_environment_includes_all_releases @@ -1,221 +1,16 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{default map[] map[]} -first-pass rendering starting for "helmfile_1.yaml.part.1": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.1": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - merged environment: &{default map[] map[]} -first-pass rendering starting for "helmfile_2.yaml.part.1": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.1": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - merged environment: &{default map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile_3.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - merged environment: &{default map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/fail_on_unknown_environment b/pkg/app/testdata/app_list_test/fail_on_unknown_environment index 040b2ebe..9eccd0c3 100644 --- a/pkg/app/testdata/app_list_test/fail_on_unknown_environment +++ b/pkg/app/testdata/app_list_test/fail_on_unknown_environment @@ -1,74 +1,13 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{staging map[] map[]}, overrode= -first-pass uses: &{staging map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{staging map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.0": {staging map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{staging map[] map[]} changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{staging map[] map[]}, overrode= -first-pass uses: &{staging map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - -first-pass produced: &{staging map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.0": {staging map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - merged environment: &{staging map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{staging map[] map[]}, overrode= -first-pass uses: &{staging map[] map[]} -first-pass rendering output of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - -first-pass produced: &{staging map[] map[]} -first-pass rendering result of "helmfile_3.yaml.part.0": {staging map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - merged environment: &{staging map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files index 8350e3c8..b161220b 100644 --- a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files +++ b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files @@ -1,221 +1,16 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{shared map[] map[]}, overrode= -first-pass uses: &{shared map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{shared map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.0": {shared map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{shared map[] map[]} -first-pass rendering starting for "helmfile_1.yaml.part.1": inherited=&{shared map[] map[]}, overrode= -first-pass uses: &{shared map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - -first-pass produced: &{shared map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.1": {shared map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - merged environment: &{shared map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{shared map[] map[]}, overrode= -first-pass uses: &{shared map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - -first-pass produced: &{shared map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.0": {shared map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - merged environment: &{shared map[] map[]} -first-pass rendering starting for "helmfile_2.yaml.part.1": inherited=&{shared map[] map[]}, overrode= -first-pass uses: &{shared map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - -first-pass produced: &{shared map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.1": {shared map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - merged environment: &{shared map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{shared map[] map[]}, overrode= -first-pass uses: &{shared map[] map[]} -first-pass rendering output of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - -first-pass produced: &{shared map[] map[]} -first-pass rendering result of "helmfile_3.yaml.part.0": {shared map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - merged environment: &{shared map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only index 927ee649..a214f41f 100644 --- a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only +++ b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only @@ -1,120 +1,14 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{test map[] map[]}, overrode= -first-pass uses: &{test map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{test map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.0": {test map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{test map[] map[]} changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{test map[] map[]}, overrode= -first-pass uses: &{test map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - -first-pass produced: &{test map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.0": {test map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - merged environment: &{test map[] map[]} -first-pass rendering starting for "helmfile_2.yaml.part.1": inherited=&{test map[] map[]}, overrode= -first-pass uses: &{test map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - -first-pass produced: &{test map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.1": {test map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - merged environment: &{test map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{test map[] map[]}, overrode= -first-pass uses: &{test map[] map[]} -first-pass rendering output of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - -first-pass produced: &{test map[] map[]} -first-pass rendering result of "helmfile_3.yaml.part.0": {test map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - merged environment: &{test map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment b/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment index 4d332f10..41a5321e 100644 --- a/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment +++ b/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment @@ -1,175 +1,15 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{development map[] map[]}, overrode= -first-pass uses: &{development map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{development map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.0": {development map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{development map[] map[]} -first-pass rendering starting for "helmfile_1.yaml.part.1": inherited=&{development map[] map[]}, overrode= -first-pass uses: &{development map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - -first-pass produced: &{development map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.1": {development map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - merged environment: &{development map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{development map[] map[]}, overrode= -first-pass uses: &{development map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - -first-pass produced: &{development map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.0": {development map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - merged environment: &{development map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{development map[] map[]}, overrode= -first-pass uses: &{development map[] map[]} -first-pass rendering output of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - -first-pass produced: &{development map[] map[]} -first-pass rendering result of "helmfile_3.yaml.part.0": {development map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - merged environment: &{development map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_template_test/bad_selector b/pkg/app/testdata/app_template_test/bad_selector index 9a3ab785..7d03a1f4 100644 --- a/pkg/app/testdata/app_template_test/bad_selector +++ b/pkg/app/testdata/app_template_test/bad_selector @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 0 release(s) matching app=test_non_existent found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default b/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default index a0113f65..ab53c3ad 100644 --- a/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default +++ b/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs b/pkg/app/testdata/app_template_test/include-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_template_test/include-needs +++ b/pkg/app/testdata/app_template_test/include-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need index 5b8e896d..ebd01666 100644 --- a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need index 47172c7e..29ad4ef5 100644 --- a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need index 5b8e896d..ebd01666 100644 --- a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need index 47172c7e..29ad4ef5 100644 --- a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-transitive-needs b/pkg/app/testdata/app_template_test/include-transitive-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_template_test/include-transitive-needs +++ b/pkg/app/testdata/app_template_test/include-transitive-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need index 47172c7e..29ad4ef5 100644 --- a/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/no-hooks b/pkg/app/testdata/app_template_test/no-hooks index 67ee2936..ceb99f63 100644 --- a/pkg/app/testdata/app_template_test/no-hooks +++ b/pkg/app/testdata/app_template_test/no-hooks @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/show-only b/pkg/app/testdata/app_template_test/show-only index 16806eb9..e528ba50 100644 --- a/pkg/app/testdata/app_template_test/show-only +++ b/pkg/app/testdata/app_template_test/show-only @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=logging found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/skip-needs b/pkg/app/testdata/app_template_test/skip-needs index 67ee2936..ceb99f63 100644 --- a/pkg/app/testdata/app_template_test/skip-needs +++ b/pkg/app/testdata/app_template_test/skip-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order b/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order index c64a76f9..6b1135ae 100644 --- a/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order +++ b/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order @@ -1,120 +1,6 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{default map[] map[]} -first-pass rendering starting for "helmfile.yaml.part.1": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: needs: - 8: - kube-system/logging - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: # Disabled releases are treated as missing -24: - name: disabled -25: chart: incubator/raw -26: namespace: kube-system -27: installed: false -28: - name: test2 -29: chart: incubator/raw -30: needs: -31: - kube-system/disabled -32: - name: test3 -33: chart: incubator/raw -34: needs: -35: - test2 -36: - name: test4 -37: chart: incubator/raw -38: needs: -39: - test2 -40: - test3 -41: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.1": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: needs: - 8: - kube-system/logging - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: # Disabled releases are treated as missing -24: - name: disabled -25: chart: incubator/raw -26: namespace: kube-system -27: installed: false -28: - name: test2 -29: chart: incubator/raw -30: needs: -31: - kube-system/disabled -32: - name: test3 -33: chart: incubator/raw -34: needs: -35: - test2 -36: - name: test4 -37: chart: incubator/raw -38: needs: -39: - test2 -40: - test3 -41: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log index 3ee09b86..7999740f 100644 --- a/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log index 02d852b3..63e24849 100644 --- a/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: - name: foo - 6: chart: stable/mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: - name: foo - 6: chart: stable/mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log index f3377bd1..f640c818 100644 --- a/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: stable/mychart1 - 9: installed: false -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: stable/mychart1 - 9: installed: false -10: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log index e8850438..2b2c48cd 100644 --- a/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: - name: foo - 6: chart: stable/mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: - name: foo - 6: chart: stable/mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log index 25bb1eef..1dc037b0 100644 --- a/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: installed: false - 5: - name: bar - 6: chart: stable/mychart2 - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: installed: false - 5: - name: bar - 6: chart: stable/mychart2 - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log index 38541ce3..3f58a191 100644 --- a/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/duplicate_releases/log b/pkg/app/testdata/testapply/duplicate_releases/log index 5a14f57e..ccdf69e2 100644 --- a/pkg/app/testdata/testapply/duplicate_releases/log +++ b/pkg/app/testdata/testapply/duplicate_releases/log @@ -1,44 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart2 - 7: needs: - 8: - ns1/bar - 9: - name: foo -10: chart: mychart1 -11: needs: -12: - ns1/bar -13: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart2 - 7: needs: - 8: - ns1/bar - 9: - name: foo -10: chart: mychart1 -11: needs: -12: - ns1/bar -13: - merged environment: &{default map[] map[]} err: found 2 duplicate releases with ID "default//foo" changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log b/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log index 223b67ad..3dd5b87b 100644 --- a/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log +++ b/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log @@ -1,32 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo_notFound - 5: chart: stable/mychart1 - 6: installed: false - 7: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo_notFound - 5: chart: stable/mychart1 - 6: installed: false - 7: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log b/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log index e309756f..c5e811d4 100644 --- a/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log +++ b/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log @@ -1,44 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log b/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log index e309756f..c5e811d4 100644 --- a/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log +++ b/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log @@ -1,44 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/install/log b/pkg/app/testdata/testapply/install/log index 288e71a2..b6766a38 100644 --- a/pkg/app/testdata/testapply/install/log +++ b/pkg/app/testdata/testapply/install/log @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: stable/mychart2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: stable/mychart2 -10: - merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/non-existent_release_in_needs/log b/pkg/app/testdata/testapply/non-existent_release_in_needs/log index b13e2b15..714f59fa 100644 --- a/pkg/app/testdata/testapply/non-existent_release_in_needs/log +++ b/pkg/app/testdata/testapply/non-existent_release_in_needs/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - ns1/bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - ns1/bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/noop/log b/pkg/app/testdata/testapply/noop/log index 89669abf..b9eb3b39 100644 --- a/pkg/app/testdata/testapply/noop/log +++ b/pkg/app/testdata/testapply/noop/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/smoke/log b/pkg/app/testdata/testapply/smoke/log index 6ef2316c..5f674219 100644 --- a/pkg/app/testdata/testapply/smoke/log +++ b/pkg/app/testdata/testapply/smoke/log @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/unselected_release_in_needs/log b/pkg/app/testdata/testapply/unselected_release_in_needs/log index fd4dca83..9f34aacd 100644 --- a/pkg/app/testdata/testapply/unselected_release_in_needs/log +++ b/pkg/app/testdata/testapply/unselected_release_in_needs/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - ns1/bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - ns1/bar - 9: - merged environment: &{default map[] map[]} 1 release(s) matching name=foo found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log index 75c0b4ce..c216b8ee 100644 --- a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log +++ b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log index 0854f6f9..06004eba 100644 --- a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log index 18819452..f590244f 100644 --- a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log +++ b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log index 38252743..53a2991c 100644 --- a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log b/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log index 6f129537..13ca7ee3 100644 --- a/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log +++ b/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: stable/mychart2 - 9: namespace: ns2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: stable/mychart2 - 9: namespace: ns2 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log b/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log index 76015ef1..5e96b8fd 100644 --- a/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log +++ b/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: stable/mychart1 - 9: namespace: ns1 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: stable/mychart1 - 9: namespace: ns1 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrades_with_bad_selector/log b/pkg/app/testdata/testapply/upgrades_with_bad_selector/log index 37de515c..8e3e99cf 100644 --- a/pkg/app/testdata/testapply/upgrades_with_bad_selector/log +++ b/pkg/app/testdata/testapply/upgrades_with_bad_selector/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,6 +28,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml +0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log index b286816b..f29aa140 100644 --- a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log +++ b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log index d1a55a90..65c32bd4 100644 --- a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log +++ b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/bad_--selector/log b/pkg/app/testdata/testapply_2/bad_--selector/log new file mode 100644 index 00000000..8e3e99cf --- /dev/null +++ b/pkg/app/testdata/testapply_2/bad_--selector/log @@ -0,0 +1,33 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log b/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log index dfde4bdd..6e400919 100644 --- a/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log +++ b/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log @@ -1,52 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: component: raw - 8: index: '1' - 9: -10: - name: foo -11: chart: incubator/raw -12: namespace: default -13: labels: -14: app: test -15: component: raw -16: index: '2' -17: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: component: raw - 8: index: '1' - 9: -10: - name: foo -11: chart: incubator/raw -12: namespace: default -13: labels: -14: app: test -15: component: raw -16: index: '2' -17: - merged environment: &{default map[] map[]} 1 release(s) matching index=1 found in helmfile.yaml diff --git a/pkg/app/testdata/testapply_2/include-transitive-needs=true/log b/pkg/app/testdata/testapply_2/include-transitive-needs=true/log index 80fe6952..c4fd365e 100644 --- a/pkg/app/testdata/testapply_2/include-transitive-needs=true/log +++ b/pkg/app/testdata/testapply_2/include-transitive-needs=true/log @@ -1,35 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: serviceA - 5: chart: my/chart - 6: needs: - 7: - serviceB - 8: - 9: - name: serviceB -10: chart: my/chart -11: needs: -12: - serviceC -13: -14: - name: serviceC -15: chart: my/chart -16: -17: - name: serviceD -18: chart: my/chart -19: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -52,7 +24,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 19: merged environment: &{default map[] map[]} -3 release(s) matching name=serviceA found in helmfile.yaml +3 release(s) matching name=serviceA found in helmfile.yaml.gotmpl Affected releases are: serviceA (my/chart) UPDATED diff --git a/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log b/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log index ed58f794..2c735ba9 100644 --- a/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log +++ b/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log @@ -1,44 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: - 8: - name: bar - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: - 8: - name: bar - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: - merged environment: &{default map[] map[]} 0 release(s) matching app=foo found in helmfile.yaml diff --git a/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log b/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log index 5aad40b2..07be1f75 100644 --- a/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log +++ b/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log @@ -1,56 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: - 8: - name: bar - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: build -13: -14: - name: bar -15: chart: incubator/raw -16: namespace: default -17: labels: -18: app: test -19: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: - 8: - name: bar - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: build -13: -14: - name: bar -15: chart: incubator/raw -16: namespace: default -17: labels: -18: app: test -19: - merged environment: &{default map[] map[]} 1 release(s) matching name=foo found in helmfile.yaml diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log index 0350fb56..fad7bdc6 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log index 2f1fa1f1..370e8e8e 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log index c6a51f3c..9998300d 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log @@ -1,40 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -63,7 +30,7 @@ second-pass rendering result of "helmfile.yaml.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log index 13ca54dd..6bf96b12 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log @@ -1,40 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -63,7 +30,7 @@ second-pass rendering result of "helmfile.yaml.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_2/skip-needs=true/log b/pkg/app/testdata/testapply_2/skip-needs=true/log index d1a55a90..65c32bd4 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=true/log +++ b/pkg/app/testdata/testapply_2/skip-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log b/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log index 26968c1e..1f4c6d72 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/bad_--selector/log b/pkg/app/testdata/testapply_3/bad_--selector/log new file mode 100644 index 00000000..8e3e99cf --- /dev/null +++ b/pkg/app/testdata/testapply_3/bad_--selector/log @@ -0,0 +1,33 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log index 4193cc54..4245010a 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log index 1b585c5b..653c58c2 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log index 84e5b96e..0996c8a0 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log @@ -1,40 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -63,7 +30,7 @@ second-pass rendering result of "helmfile.yaml.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log index 3018fdfa..222191de 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log @@ -1,40 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -63,7 +30,7 @@ second-pass rendering result of "helmfile.yaml.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_3/skip-needs=true/log b/pkg/app/testdata/testapply_3/skip-needs=true/log index e7200b58..3a82d6bc 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=true/log +++ b/pkg/app/testdata/testapply_3/skip-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log b/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log index 0bb7dd4b..3c4dc215 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testdeps/smoke/log b/pkg/app/testdata/testdeps/smoke/log new file mode 100644 index 00000000..52b88928 --- /dev/null +++ b/pkg/app/testdata/testdeps/smoke/log @@ -0,0 +1,7 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +There are no repositories defined in your helmfile.yaml. +This means helmfile cannot update your dependencies or create a lock file. +See https://github.com/roboll/helmfile/issues/878 for more information. +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log b/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log index e7d3352d..a7eea328 100644 --- a/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log +++ b/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log b/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log index b3ea59f1..0ca9be54 100644 --- a/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log +++ b/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 1 release(s) matching name=logging found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy/helm3/log b/pkg/app/testdata/testdestroy/helm3/log index e7d3352d..a7eea328 100644 --- a/pkg/app/testdata/testdestroy/helm3/log +++ b/pkg/app/testdata/testdestroy/helm3/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy/smoke/log b/pkg/app/testdata/testdestroy/smoke/log index 13a80305..16e0f5c9 100644 --- a/pkg/app/testdata/testdestroy/smoke/log +++ b/pkg/app/testdata/testdestroy/smoke/log @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log b/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log index 04b1ccfd..eebb5cdb 100644 --- a/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log +++ b/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log b/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log index 917d5684..6ac05319 100644 --- a/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log +++ b/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 1 release(s) matching name=logging found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/helm3/log b/pkg/app/testdata/testdestroy_2/helm3/log index 04b1ccfd..eebb5cdb 100644 --- a/pkg/app/testdata/testdestroy_2/helm3/log +++ b/pkg/app/testdata/testdestroy_2/helm3/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/smoke/log b/pkg/app/testdata/testdestroy_2/smoke/log index d4fd6427..6d07d6be 100644 --- a/pkg/app/testdata/testdestroy_2/smoke/log +++ b/pkg/app/testdata/testdestroy_2/smoke/log @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log b/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log new file mode 100644 index 00000000..db8157f1 --- /dev/null +++ b/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log @@ -0,0 +1,10 @@ +rendering starting for "": inherited=&{default map[] map[]}, overrode= +rendering result of "": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: + 6: + diff --git a/pkg/app/two_pass_renderer.go b/pkg/app/two_pass_renderer.go index 221af0c2..fddfa307 100644 --- a/pkg/app/two_pass_renderer.go +++ b/pkg/app/two_pass_renderer.go @@ -5,10 +5,7 @@ import ( "fmt" "strings" - "github.com/google/go-cmp/cmp" - "github.com/helmfile/helmfile/pkg/environment" - "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" "github.com/helmfile/helmfile/pkg/tmpl" ) @@ -22,52 +19,6 @@ func prependLineNumbers(text string) string { return buf.String() } -func (r *desiredStateLoader) renderPrestate(firstPassEnv, overrode *environment.Environment, baseDir, filename string, content []byte) (*environment.Environment, *state.HelmState) { - initEnv, err := firstPassEnv.Merge(overrode) - if err != nil { - return firstPassEnv, nil - } - tmplData := state.NewEnvironmentTemplateData(*initEnv, r.namespace, map[string]any{}) - firstPassRenderer := tmpl.NewFirstPassRenderer(baseDir, tmplData) - - // parse as much as we can, tolerate errors, this is a preparse - yamlBuf, err := firstPassRenderer.RenderTemplateContentToBuffer(content) - if err != nil { - r.logger.Debugf("first-pass rendering input of \"%s\":\n%s", filename, prependLineNumbers(string(content))) - r.logger.Debugf("template syntax error: %v", err) - if yamlBuf == nil { // we have a template syntax error, let the second parse report - return firstPassEnv, nil - } - } - yamlData := yamlBuf.String() - r.logger.Debugf("first-pass rendering output of \"%s\":\n%s", filename, prependLineNumbers(yamlData)) - - // Work-around for https://github.com/golang/go/issues/24963 - sanitized := strings.ReplaceAll(yamlData, "", "") - - if len(yamlData) != len(sanitized) { - msg := "replaced s to workaround https://github.com/golang/go/issues/24963 to address https://github.com/roboll/helmfile/issues/553:\n%s" - r.logger.Debugf(msg, cmp.Diff(yamlData, sanitized)) - } - - c := r.underlying() - c.Strict = false - // create preliminary state, as we may have an environment. Tolerate errors. - prestate, err := c.ParseAndLoad([]byte(sanitized), baseDir, filename, r.env, true, false, firstPassEnv, overrode) - if err != nil { - if _, ok := err.(*state.StateLoadError); ok { - r.logger.Debugf("could not deduce `environment:` block, configuring only .Environment.Name. error: %v", err) - } - r.logger.Debugf("error in first-pass rendering: result of \"%s\":\n%s", filename, prependLineNumbers(yamlBuf.String())) - } - - if prestate != nil { - firstPassEnv = &prestate.Env - } - - return firstPassEnv, prestate -} - type RenderOpts struct { } @@ -82,11 +33,7 @@ func (r *desiredStateLoader) renderTemplatesToYamlWithEnv(baseDir, filename stri } func (r *desiredStateLoader) twoPassRenderTemplateToYaml(inherited, overrode *environment.Environment, baseDir, filename string, content []byte) (*bytes.Buffer, error) { - // try a first pass render. This will always succeed, but can produce a limited env var phase string - if !runtime.V1Mode { - phase = "first-pass " - } r.logger.Debugf("%srendering starting for \"%s\": inherited=%v, overrode=%v", phase, filename, inherited, overrode) initEnv, err := inherited.Merge(nil) @@ -100,53 +47,14 @@ func (r *desiredStateLoader) twoPassRenderTemplateToYaml(inherited, overrode *en vals map[string]any ) - if runtime.V1Mode { - var err error + finalEnv, err = initEnv.Merge(overrode) + if err != nil { + return nil, err + } - finalEnv, err = initEnv.Merge(overrode) - if err != nil { - return nil, err - } - - vals, err = finalEnv.GetMergedValues() - if err != nil { - return nil, err - } - } else { - r.logger.Debugf("first-pass uses: %v", initEnv) - firstPassEnv, err := initEnv.Merge(nil) - if err != nil { - return nil, err - } - renderedEnv, prestate := r.renderPrestate(firstPassEnv, overrode, baseDir, filename, content) - - r.logger.Debugf("first-pass produced: %v", renderedEnv) - - mergedEnv, err := inherited.Merge(renderedEnv) - if err != nil { - return nil, err - } - - mergedEnv, err = mergedEnv.Merge(overrode) - if err != nil { - return nil, err - } - - r.logger.Debugf("first-pass rendering result of \"%s\": %v", filename, *mergedEnv) - - renderingPhase = "second-pass " - - finalEnv = mergedEnv - - vals, err = finalEnv.GetMergedValues() - if err != nil { - return nil, err - } - - if prestate != nil { - prestate.Env = *mergedEnv - r.logger.Debugf("vals:\n%v\ndefaultVals:%v", vals, prestate.DefaultValues) - } + vals, err = finalEnv.GetMergedValues() + if err != nil { + return nil, err } tmplData := state.NewEnvironmentTemplateData(*finalEnv, r.namespace, vals) diff --git a/pkg/app/two_pass_renderer_test.go b/pkg/app/two_pass_renderer_test.go index fde1630f..5190f9f6 100644 --- a/pkg/app/two_pass_renderer_test.go +++ b/pkg/app/two_pass_renderer_test.go @@ -7,7 +7,6 @@ import ( "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/remote" - "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" "github.com/helmfile/helmfile/pkg/testhelper" "github.com/helmfile/helmfile/pkg/yaml" @@ -68,60 +67,6 @@ releases: } } -func TestReadFromYaml_RenderTemplate(t *testing.T) { - defaultValuesYaml := ` -releaseName: "hello" -conditionalReleaseTag: "yes" -` - - yamlContent := []byte(` -environments: - staging: - values: - - default/values.yaml - production: - -releases: -- name: {{ .Environment.Values.releaseName }} - chart: mychart1 - -{{ if (eq .Environment.Values.conditionalReleaseTag "yes") }} -- name: conditionalRelease -{{ end }} - -`) - - files := map[string]string{ - "/path/to/default/values.yaml": defaultValuesYaml, - } - - r, _, _ := makeLoader(files, "staging") - // test the double rendering - yamlBuf, err := r.renderTemplatesToYaml("", "", yamlContent) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - - var state state.HelmState - err = yaml.Unmarshal(yamlBuf.Bytes(), &state) - - if err != nil { - t.Errorf("unexpected error: %v", err) - } - - if len(state.Releases) != 2 { - t.Fatal("there should be 2 releases") - } - - if state.Releases[0].Name != "hello" { - t.Errorf("release name should be hello") - } - - if state.Releases[1].Name != "conditionalRelease" { - t.Error("conditional release should have been present") - } -} - func testReadFromYaml_RenderTemplateLog(t *testing.T) { t.Helper() @@ -165,20 +110,7 @@ releases: } func TestReadFromYaml_RenderTemplateLog(t *testing.T) { - v := runtime.V1Mode - t.Cleanup(func() { - runtime.V1Mode = v - }) - - t.Run("v0mode", func(t *testing.T) { - runtime.V1Mode = false - testReadFromYaml_RenderTemplateLog(t) - }) - - t.Run("v1mode", func(t *testing.T) { - runtime.V1Mode = true - testReadFromYaml_RenderTemplateLog(t) - }) + testReadFromYaml_RenderTemplateLog(t) } func TestReadFromYaml_RenderTemplateWithValuesReferenceError(t *testing.T) { @@ -211,51 +143,6 @@ releases: } } -// This test shows that a gotmpl reference will get rendered correctly -// even if the pre-render disables the readFile and exec functions. -// This does not apply to .gotmpl files, which is a nice side-effect. -func TestReadFromYaml_RenderTemplateWithGotmpl(t *testing.T) { - defaultValuesYamlGotmpl := ` -releaseName: {{ readFile "nonIgnoredFile" }} -` - - yamlContent := []byte(` -environments: - staging: - values: - - values.yaml.gotmpl - production: - -{{ if (eq .Environment.Values.releaseName "release-a") }} # line 8 -releases: -- name: a - chart: mychart1 -{{ end }} -`) - - files := map[string]string{ - "/path/to/nonIgnoredFile": `release-a`, - "/path/to/values.yaml.gotmpl": defaultValuesYamlGotmpl, - } - - r, _, _ := makeLoader(files, "staging") - rendered, _ := r.renderTemplatesToYaml("", "", yamlContent) - - var state state.HelmState - err := yaml.Unmarshal(rendered.Bytes(), &state) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - - if len(state.Releases) != 1 { - t.Fatal("there should be 1 release") - } - - if state.Releases[0].Name != "a" { - t.Fatal("release should have been declared") - } -} - func TestReadFromYaml_RenderTemplateWithNamespace(t *testing.T) { yamlContent := []byte(`releases: - name: {{ .Namespace }}-myrelease diff --git a/pkg/config/apply.go b/pkg/config/apply.go index 4d67aa61..f3f0946f 100644 --- a/pkg/config/apply.go +++ b/pkg/config/apply.go @@ -18,10 +18,6 @@ type ApplyOptions struct { DetailedExitcode bool // StripTrailingCR is true if trailing carriage returns should be stripped during diffing StripTrailingCR bool - // TODO: Remove this function once Helmfile v0.x - // DEPRECATED: Use skip-cleanup instead - RetainValuesFiles bool - // SkipCleanup is true if the cleanup of temporary values files should be skipped SkipCleanup bool // SkipCRDs is true if the CRDs should be skipped @@ -139,12 +135,6 @@ func (a *ApplyImpl) IncludeTransitiveNeeds() bool { return a.ApplyOptions.IncludeTransitiveNeeds } -// TODO: Remove this function once Helmfile v0.x -// RetainValuesFiles returns the retain values files. -func (a *ApplyImpl) RetainValuesFiles() bool { - return a.ApplyOptions.RetainValuesFiles -} - // ShowSecrets returns the show secrets. func (a *ApplyImpl) ShowSecrets() bool { return a.ApplyOptions.ShowSecrets diff --git a/pkg/config/charts.go b/pkg/config/charts.go deleted file mode 100644 index 859894bc..00000000 --- a/pkg/config/charts.go +++ /dev/null @@ -1,46 +0,0 @@ -// TODO: Remove this function once Helmfile v0.x -package config - -// ChartsOptions is the options for the build command -type ChartsOptions struct { - // Set is the additional values to be merged into the helm command --set flag - Set []string - // Values is the additional value files to be merged into the helm command --values flag - Values []string - // Concurrency is the maximum number of concurrent helm processes to run, 0 is unlimited - Concurrency int -} - -// NewChartsOptions creates a new Apply -func NewChartsOptions() *ChartsOptions { - return &ChartsOptions{} -} - -// ChartsImpl is impl for applyOptions -type ChartsImpl struct { - *GlobalImpl - *ChartsOptions -} - -// NewChartsImpl creates a new ChartsImpl -func NewChartsImpl(g *GlobalImpl, b *ChartsOptions) *ChartsImpl { - return &ChartsImpl{ - GlobalImpl: g, - ChartsOptions: b, - } -} - -// Concurrency returns the concurrency -func (c *ChartsImpl) Concurrency() int { - return c.ChartsOptions.Concurrency -} - -// IncludeTransitiveNeeds returns the includeTransitiveNeeds -func (c *ChartsImpl) IncludeTransitiveNeeds() bool { - return false -} - -// Values returns the values -func (c *ChartsImpl) Values() []string { - return c.ChartsOptions.Values -} diff --git a/pkg/config/delete.go b/pkg/config/delete.go deleted file mode 100644 index f688e94f..00000000 --- a/pkg/config/delete.go +++ /dev/null @@ -1,67 +0,0 @@ -// TODO: Remove this function once Helmfile v0.x -package config - -// DeleteOptions is the options for the build command -type DeleteOptions struct { - // Concurrency is the maximum number of concurrent helm processes to run, 0 is unlimited - Concurrency int - // Purge is the purge flag - Purge bool - // SkipCharts makes Delete skip `withPreparedCharts` - SkipCharts bool - // Cascade '--cascade' to helmv3 delete, available values: background, foreground, or orphan, default: background - Cascade string - // Wait '--wait' if set, will wait until all the resources are deleted before returning. It will wait for as long as --timeout - DeleteWait bool - // Timeout '--timeout', to wait for helm delete operation (default 5m0s) - DeleteTimeout int -} - -// NewDeleteOptions creates a new Apply -func NewDeleteOptions() *DeleteOptions { - return &DeleteOptions{} -} - -// DeleteImpl is impl for applyOptions -type DeleteImpl struct { - *GlobalImpl - *DeleteOptions -} - -// NewDeleteImpl creates a new DeleteImpl -func NewDeleteImpl(g *GlobalImpl, b *DeleteOptions) *DeleteImpl { - return &DeleteImpl{ - GlobalImpl: g, - DeleteOptions: b, - } -} - -// Concurrency returns the concurrency -func (c *DeleteImpl) Concurrency() int { - return c.DeleteOptions.Concurrency -} - -// Purge returns the purge -func (c *DeleteImpl) Purge() bool { - return c.DeleteOptions.Purge -} - -// SkipCharts returns skipCharts flag -func (c *DeleteImpl) SkipCharts() bool { - return c.DeleteOptions.SkipCharts -} - -// Cascade returns cascade flag -func (c *DeleteImpl) Cascade() string { - return c.DeleteOptions.Cascade -} - -// DeleteWait returns the wait flag -func (c *DeleteImpl) DeleteWait() bool { - return c.DeleteOptions.DeleteWait -} - -// DeleteTimeout returns the timeout flag -func (c *DeleteImpl) DeleteTimeout() int { - return c.DeleteOptions.DeleteTimeout -} diff --git a/pkg/envvar/const.go b/pkg/envvar/const.go index 94df7381..0235af17 100644 --- a/pkg/envvar/const.go +++ b/pkg/envvar/const.go @@ -6,16 +6,12 @@ const ( // use helm status to check if a release exists before installing it UseHelmStatusToCheckReleaseExistence = "HELMFILE_USE_HELM_STATUS_TO_CHECK_RELEASE_EXISTENCE" - // TODO: Remove this function once Helmfile v0.x - SkipInsecureTemplateFunctions = "HELMFILE_SKIP_INSECURE_TEMPLATE_FUNCTIONS" - DisableRunnerUniqueID = "HELMFILE_DISABLE_RUNNER_UNIQUE_ID" 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" GoccyGoYaml = "HELMFILE_GOCCY_GOYAML" CacheHome = "HELMFILE_CACHE_HOME" Interactive = "HELMFILE_INTERACTIVE" diff --git a/pkg/policy/checker.go b/pkg/policy/checker.go index b493d513..28db5d70 100644 --- a/pkg/policy/checker.go +++ b/pkg/policy/checker.go @@ -9,8 +9,6 @@ import ( "slices" "strings" "unicode" - - "github.com/helmfile/helmfile/pkg/runtime" ) var ( @@ -51,7 +49,7 @@ func forbidEnvironmentsWithReleases(filePath string, content []byte) (bool, erro } for i := 0; i < len(result)-1; i++ { if result[i] != "---" && result[i+1] != "---" { - return runtime.V1Mode, EnvironmentsAndReleasesWithinSameYamlPartErr + return true, EnvironmentsAndReleasesWithinSameYamlPartErr } } return false, nil @@ -123,7 +121,7 @@ func TopConfigKeysVerifier(filePath string, helmfileContent []byte) (bool, error 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", currentKey, preKey, filePath) + return true, fmt.Errorf("top-level config key %s must be defined before %s in %s", currentKey, preKey, filePath) } } return false, nil diff --git a/pkg/policy/checker_test.go b/pkg/policy/checker_test.go index 7c28555c..0b64081a 100644 --- a/pkg/policy/checker_test.go +++ b/pkg/policy/checker_test.go @@ -4,15 +4,12 @@ import ( "testing" "github.com/stretchr/testify/require" - - "github.com/helmfile/helmfile/pkg/runtime" ) func TestForbidEnvironmentsWithReleases(t *testing.T) { testCases := []struct { name string filePath string - v1mode bool content []byte expectedErr bool isStrict bool @@ -21,7 +18,6 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when only releases", filePath: "helmfile.yaml", content: []byte("releases:\n"), - v1mode: false, expectedErr: false, isStrict: false, }, @@ -29,7 +25,6 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when only environments", filePath: "helmfile.yaml", content: []byte("environments:\n"), - v1mode: false, expectedErr: false, isStrict: false, }, @@ -37,7 +32,6 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when has --- between releases and environments", filePath: "helmfile.yaml", content: []byte("environments:\n---\nreleases:\n"), - v1mode: false, expectedErr: false, isStrict: false, }, @@ -45,7 +39,6 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when has --- between releases and environments, and --- on top of helmfile.yaml.gotmpl", filePath: "helmfile.yaml", content: []byte("---\nenvironments:\n---\nreleases:\n"), - v1mode: false, expectedErr: false, isStrict: false, }, @@ -53,28 +46,13 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "error when both releases and environments", filePath: "helmfile.yaml", content: []byte("environments:\nreleases:\n"), - v1mode: false, - expectedErr: true, - isStrict: false, - }, - { - name: "error when both releases and environments for plain yaml on v1", - filePath: "helmfile.yaml", - content: []byte("environments:\nreleases:\n"), - v1mode: true, expectedErr: true, isStrict: true, }, } - v1mode := runtime.V1Mode - t.Cleanup(func() { - runtime.V1Mode = v1mode - }) - for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - runtime.V1Mode = tc.v1mode isStrict, err := forbidEnvironmentsWithReleases(tc.filePath, tc.content) require.Equal(t, tc.isStrict, isStrict, "expected isStrict=%v, got=%v", tc.isStrict, isStrict) if tc.expectedErr { @@ -153,26 +131,31 @@ func TestTopConfigKeysVerifier(t *testing.T) { name: "error when not correct order 00", helmfileContent: []byte("releases:\nbases:\n"), wantErr: true, + wantStrict: true, }, { name: "error when not correct order 01", helmfileContent: []byte("releases:\nhelmDefaults:\nbases:\n"), wantErr: true, + wantStrict: true, }, { name: "error when not correct order 02", helmfileContent: []byte("helmDefaults:\nreleases:\nbases:\n"), wantErr: true, + wantStrict: true, }, { name: "error when not correct order 03", helmfileContent: []byte("releases:\nva:\nve:\nbases:\n"), wantErr: true, + wantStrict: true, }, { name: "error when not correct order 04", helmfileContent: []byte("bases:\nreleases:\nenvironments:\n"), wantErr: true, + wantStrict: true, }, { name: "no error when only has bases", diff --git a/pkg/runtime/runtime.go b/pkg/runtime/runtime.go index e2e407b5..7c1e1d14 100644 --- a/pkg/runtime/runtime.go +++ b/pkg/runtime/runtime.go @@ -3,24 +3,15 @@ package runtime import ( "fmt" "os" - "strconv" "github.com/helmfile/helmfile/pkg/envvar" ) -// V1Mode is false by default for Helmfile v0.x and -// true by default for Helmfile v1.x var ( - V1Mode bool - // GoccyGoYaml is set to true in order to let Helmfile use // goccy/go-yaml instead of gopkg.in/yaml.v2. // It's false by default in Helmfile v0.x and true by default for Helmfile v1.x. GoccyGoYaml bool - - // We set this via ldflags at build-time so that we can use the - // value specified at the build time as the runtime default. - v1Mode string ) func Info() string { @@ -29,22 +20,10 @@ func Info() string { yamlLib = "goccy/go-yaml" } - return fmt.Sprintf("V1 mode = %v\nYAML library = %v", V1Mode, yamlLib) + return fmt.Sprintf("YAML library = %v", yamlLib) } func init() { - // You can toggle the V1 mode at runtime via an envvar: - // - Helmfile v1.x behaves like v0.x by running it with HELMFILE_V1MODE=false - // - Helmfile v0.x behaves like v1.x by with HELMFILE_V1MODE=true - switch os.Getenv(envvar.V1Mode) { - case "true": - V1Mode = true - case "false": - V1Mode = false - default: - V1Mode, _ = strconv.ParseBool(v1Mode) - } - // You can switch the YAML library at runtime via an envvar: switch os.Getenv(envvar.GoccyGoYaml) { case "true": @@ -52,6 +31,6 @@ func init() { case "false": GoccyGoYaml = false default: - GoccyGoYaml = V1Mode + GoccyGoYaml = true } } diff --git a/pkg/state/create.go b/pkg/state/create.go index c08086d4..248a3c85 100644 --- a/pkg/state/create.go +++ b/pkg/state/create.go @@ -117,20 +117,6 @@ func (c *StateCreator) Parse(content []byte, baseDir, file string) (*HelmState, } } - // TODO: Remove this function once Helmfile v0.x - if len(state.DeprecatedReleases) > 0 { - if len(state.Releases) > 0 { - return nil, fmt.Errorf("failed to parse %s: you can't specify both `charts` and `releases` sections", file) - } - state.Releases = state.DeprecatedReleases - state.DeprecatedReleases = []ReleaseSpec{} - } - - // TODO: Remove this function once Helmfile v0.x - if state.DeprecatedContext != "" && state.HelmDefaults.KubeContext == "" { - state.HelmDefaults.KubeContext = state.DeprecatedContext - } - if c.overrideHelmBinary != "" && c.overrideHelmBinary != DefaultHelmBinary { state.DefaultHelmBinary = c.overrideHelmBinary } else if state.DefaultHelmBinary == "" { diff --git a/pkg/state/create_test.go b/pkg/state/create_test.go index 46b1e072..4cc282be 100644 --- a/pkg/state/create_test.go +++ b/pkg/state/create_test.go @@ -280,26 +280,6 @@ func TestReadFromYaml_StrictUnmarshalling(t *testing.T) { } } -// TODO: Remove this function once Helmfile v0.x -func TestReadFromYaml_DeprecatedReleaseReferences(t *testing.T) { - yamlFile := "example/path/to/yaml/file" - yamlContent := []byte(`charts: -- name: myrelease - chart: mychart -`) - state, err := createFromYaml(yamlContent, yamlFile, DefaultEnv, logger) - if err != nil { - t.Errorf("unxpected error: %v", err) - } - - if state.Releases[0].Name != "myrelease" { - t.Errorf("unexpected release name: expected=myrelease actual=%s", state.Releases[0].Name) - } - if state.Releases[0].Chart != "mychart" { - t.Errorf("unexpected chart name: expected=mychart actual=%s", state.Releases[0].Chart) - } -} - func TestReadFromYaml_ConflictingReleasesConfig(t *testing.T) { yamlFile := "example/path/to/yaml/file" yamlContent := []byte(`charts: diff --git a/pkg/state/state.go b/pkg/state/state.go index a28c05d9..4d9e43e1 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -60,10 +60,6 @@ type ReleaseSetSpec struct { HelmDefaults HelmSpec `yaml:"helmDefaults,omitempty"` Helmfiles []SubHelmfileSpec `yaml:"helmfiles,omitempty"` - // TODO: Remove this function once Helmfile v0.x - DeprecatedContext string `yaml:"context,omitempty"` - DeprecatedReleases []ReleaseSpec `yaml:"charts,omitempty"` - OverrideKubeContext string `yaml:"kubeContext,omitempty"` OverrideNamespace string `yaml:"namespace,omitempty"` OverrideChart string `yaml:"chart,omitempty"` diff --git a/pkg/state/state_test.go b/pkg/state/state_test.go index 9072ea56..59210312 100644 --- a/pkg/state/state_test.go +++ b/pkg/state/state_test.go @@ -58,13 +58,9 @@ func TestHelmState_applyDefaultsTo(t *testing.T) { type fields struct { BaseChartPath string Context string - - // TODO: Remove this function once Helmfile v0.x - DeprecatedReleases []ReleaseSpec - - Namespace string - Repositories []RepositorySpec - Releases []ReleaseSpec + Namespace string + Repositories []RepositorySpec + Releases []ReleaseSpec } type args struct { spec ReleaseSpec @@ -89,12 +85,8 @@ func TestHelmState_applyDefaultsTo(t *testing.T) { fieldsWithNamespace := fields{ BaseChartPath: ".", Context: "test_context", - - // TODO: Remove this function once Helmfile v0.x - DeprecatedReleases: nil, - - Namespace: specWithNamespaceFromFields.Namespace, - Repositories: nil, + Namespace: specWithNamespaceFromFields.Namespace, + Repositories: nil, Releases: []ReleaseSpec{ specWithNamespace, }, @@ -148,10 +140,6 @@ func TestHelmState_applyDefaultsTo(t *testing.T) { state := &HelmState{ basePath: tt.fields.BaseChartPath, ReleaseSetSpec: ReleaseSetSpec{ - // TODO: Remove this function once Helmfile v0.x - DeprecatedContext: tt.fields.Context, - DeprecatedReleases: tt.fields.DeprecatedReleases, - OverrideNamespace: tt.fields.Namespace, Repositories: tt.fields.Repositories, Releases: tt.fields.Releases, @@ -740,9 +728,6 @@ func TestHelmState_flagsForUpgrade(t *testing.T) { state := &HelmState{ basePath: "./", ReleaseSetSpec: ReleaseSetSpec{ - // TODO: Remove this function once Helmfile v0.x - DeprecatedContext: "default", - Releases: []ReleaseSpec{*tt.release}, HelmDefaults: tt.defaults, }, @@ -904,9 +889,8 @@ func TestHelmState_flagsForTemplate(t *testing.T) { state := &HelmState{ basePath: "./", ReleaseSetSpec: ReleaseSetSpec{ - DeprecatedContext: "default", - Releases: []ReleaseSpec{*tt.release}, - HelmDefaults: tt.defaults, + Releases: []ReleaseSpec{*tt.release}, + HelmDefaults: tt.defaults, }, valsRuntime: valsRuntime, } diff --git a/pkg/tmpl/context_funcs.go b/pkg/tmpl/context_funcs.go index 12888a91..dac6be4a 100644 --- a/pkg/tmpl/context_funcs.go +++ b/pkg/tmpl/context_funcs.go @@ -19,7 +19,6 @@ import ( "github.com/helmfile/helmfile/pkg/envvar" "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/maputil" - "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/yaml" ) @@ -37,23 +36,10 @@ func (e DisableInsecureFeaturesError) Error() string { var ( disableInsecureFeatures bool - - // TODO: Remove this function once Helmfile v0.x - skipInsecureTemplateFunctions bool ) func init() { disableInsecureFeatures, _ = strconv.ParseBool(os.Getenv(envvar.DisableInsecureFeatures)) - - // TODO: Remove this function once Helmfile v0.x - skipInsecureTemplateFunctions, _ = strconv.ParseBool(os.Getenv(envvar.SkipInsecureTemplateFunctions)) - skipInsecureTemplateFunctions = func() bool { - if runtime.V1Mode { - return false - } - b, _ := strconv.ParseBool(os.Getenv(envvar.SkipInsecureTemplateFunctions)) - return b - }() } func (c *Context) createFuncMap() template.FuncMap { @@ -76,7 +62,7 @@ func (c *Context) createFuncMap() template.FuncMap { "fetchSecretValue": fetchSecretValue, "expandSecretRefs": fetchSecretValues, } - if c.preRender || skipInsecureTemplateFunctions { + if c.preRender { // disable potential side-effect template calls funcMap["exec"] = func(string, []any, ...string) (string, error) { return "", nil diff --git a/pkg/tmpl/context_funcs_test.go b/pkg/tmpl/context_funcs_test.go index e9e67e04..d1141d8e 100644 --- a/pkg/tmpl/context_funcs_test.go +++ b/pkg/tmpl/context_funcs_test.go @@ -46,30 +46,6 @@ func TestCreateFuncMap_DisabledInsecureFeatures(t *testing.T) { disableInsecureFeatures = currentVal } -// TODO: Remove this function once Helmfile v0.x -func TestCreateFuncMap_SkipInsecureTemplateFunctions(t *testing.T) { - if runtime.V1Mode { - t.Logf("SkipInsecureTemplateFunctions is not supported in V1 mode") - return - } - currentVal := skipInsecureTemplateFunctions - - { - skipInsecureTemplateFunctions = true - ctx := &Context{basePath: "."} - funcMaps := ctx.createFuncMap() - args := make([]any, 0) - actual1, err1 := funcMaps["exec"].(func(command string, args []any, inputs ...string) (string, error))("ls", args) - require.Equal(t, "", actual1) - require.ErrorIs(t, err1, nil) - actual2, err2 := funcMaps["readFile"].(func(filename string) (string, error))("context_funcs_test.go") - require.Equal(t, "", actual2) - require.ErrorIs(t, err2, nil) - } - - skipInsecureTemplateFunctions = currentVal -} - func newFSExpecting(expectedFilename string, expected string) *filesystem.FileSystem { return filesystem.FromFileSystem(filesystem.FileSystem{ ReadFile: func(filename string) ([]byte, error) { diff --git a/test/e2e/template/helmfile/snapshot_test.go b/test/e2e/template/helmfile/snapshot_test.go index 672598f1..68f62be5 100644 --- a/test/e2e/template/helmfile/snapshot_test.go +++ b/test/e2e/template/helmfile/snapshot_test.go @@ -223,7 +223,7 @@ func testHelmfileTemplateWithBuildCommand(t *testing.T, goccyGoYaml bool) { helmConfigHome := filepath.Join(tmpDir, "helm_config") t.Logf("Using HELM_CACHE_HOME=%s, HELMFILE_CACHE_HOME=%s, HELM_CONFIG_HOME=%s", helmCacheHome, helmfileCacheHome, helmConfigHome) - inputFile := filepath.Join(testdataDir, name, "input.yaml") + inputFile := filepath.Join(testdataDir, name, "input.yaml.gotmpl") outputFile := filepath.Join(testdataDir, name, "output.yaml") ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) diff --git a/test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml.gotmpl similarity index 58% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml.gotmpl index 6b312364..05b9688c 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml.gotmpl @@ -4,13 +4,13 @@ environments: - test.yaml.gotmpl --- helmfiles: -- path: helmfiles/test.yaml +- path: helmfiles/test.yaml.gotmpl values: - envName: {{ .Values.envName }} -- path: helmfiles/prod.yaml +- path: helmfiles/prod.yaml.gotmpl values: - envName: {{ .Values.envName }} -- path: helmfiles/no-envs.yaml +- path: helmfiles/no-envs.yaml.gotmpl values: - envName: {{ .Values.envName }} -- path: helmfiles/no-values.yaml \ No newline at end of file +- path: helmfiles/no-values.yaml.gotmpl \ No newline at end of file diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml deleted file mode 100644 index 71fee0cb..00000000 --- a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml +++ /dev/null @@ -1,5 +0,0 @@ -chartifyTempDir: envs_releases_within_same_yaml_part -helmfileArgs: -- --environment -- prod -- template diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml new file mode 100644 index 00000000..690947ac --- /dev/null +++ b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml @@ -0,0 +1,5 @@ +chartifyTempDir: envs_releases_without_same_yaml_part +helmfileArgs: +- --environment +- prod +- template diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/input.yaml.gotmpl similarity index 97% rename from test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/input.yaml.gotmpl index 276a4d93..4fc99ecb 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/input.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/input.yaml.gotmpl @@ -1,7 +1,7 @@ environments: prod: staging: - +--- releases: - name: raw chart: ../../charts/raw-0.0.1 diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/output.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/output.yaml similarity index 56% rename from test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/output.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/output.yaml index 2e9471ac..7f723eaa 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/output.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/output.yaml @@ -1,4 +1,3 @@ -WARNING: environments and releases cannot be defined within the same YAML part. Use --- to extract the environments into a dedicated part Building dependency release=raw, chart=../../charts/raw-0.0.1 Templating release=raw, chart=../../charts/raw-0.0.1 --- diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml index 9e3dec93..fb2d2b51 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml @@ -1,7 +1,7 @@ --- -# Source: __workingdir__/testdata/snapshot/issue_2098_release_template_needs/input.yaml +# Source: __workingdir__/testdata/snapshot/issue_2098_release_template_needs/input.yaml.gotmpl -filepath: input.yaml +filepath: input.yaml.gotmpl helmBinary: helm kustomizeBinary: kustomize environments: diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml.gotmpl diff --git a/test/integration/test-cases/chart-needs.sh b/test/integration/test-cases/chart-needs.sh index 76cc3814..2ce8e63d 100644 --- a/test/integration/test-cases/chart-needs.sh +++ b/test/integration/test-cases/chart-needs.sh @@ -1,14 +1,7 @@ chart_need_case_input_dir="${cases_dir}/chart-needs/input" chart_need_case_output_dir="${cases_dir}/chart-needs/output" -config_file="helmfile.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${chart_need_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi - +config_file="helmfile.yaml.gotmpl" chart_needs_tmp=$(mktemp -d) chart_needs_template_reverse=${chart_needs_tmp}/chart.needs.template.log chart_needs_lint_reverse=${chart_needs_tmp}/chart.needs.lint.log diff --git a/test/integration/test-cases/chart-needs/input/helmfile.yaml b/test/integration/test-cases/chart-needs/input/helmfile.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/chart-needs/input/helmfile.yaml rename to test/integration/test-cases/chart-needs/input/helmfile.yaml.gotmpl diff --git a/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh b/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh index 2fd4e5d3..ea5d4a22 100644 --- a/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh +++ b/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh @@ -1,14 +1,7 @@ chartify_jsonPatches_and_strategicMergePatches_case_input_dir="${cases_dir}/chartify-jsonPatches-and-strategicMergePatches/input" chartify_jsonPatches_and_strategicMergePatches_case_output_dir="${cases_dir}/chartify-jsonPatches-and-strategicMergePatches/output" -config_file="helmfile.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${chartify_jsonPatches_and_strategicMergePatches_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi - +config_file="helmfile.yaml.gotmpl" chartify_jsonPatches_and_strategicMergePatches_tmp=$(mktemp -d) chartify_jsonPatches_and_strategicMergePatches_template_reverse=${chartify_jsonPatches_and_strategicMergePatches_tmp}/chartify_jsonPatches_and_strategicMergePatches.template.log diff --git a/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml b/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml rename to test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml.gotmpl diff --git a/test/integration/test-cases/chartify.sh b/test/integration/test-cases/chartify.sh index 963fbbd6..8c6e2d3a 100644 --- a/test/integration/test-cases/chartify.sh +++ b/test/integration/test-cases/chartify.sh @@ -1,14 +1,7 @@ chartify_case_input_dir="${cases_dir}/chartify/input" chartify_case_output_dir="${cases_dir}/chartify/output" -config_file="helmfile.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${chartify_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi - +config_file="helmfile.yaml.gotmpl" chartify_tmp=$(mktemp -d) chartify_template_reverse=${chartify_tmp}/chartify.template.log diff --git a/test/integration/test-cases/chartify/input/helmfile.yaml b/test/integration/test-cases/chartify/input/helmfile.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/chartify/input/helmfile.yaml rename to test/integration/test-cases/chartify/input/helmfile.yaml.gotmpl diff --git a/test/integration/test-cases/cli-overwrite-environment-values.sh b/test/integration/test-cases/cli-overwrite-environment-values.sh index 48d9f2de..8e51e159 100644 --- a/test/integration/test-cases/cli-overwrite-environment-values.sh +++ b/test/integration/test-cases/cli-overwrite-environment-values.sh @@ -6,24 +6,12 @@ cli_overwrite_environment_values_reverse=${cli_overwrite_environment_values_tmp} case_title="cli overwrite environment values" -if [[ ${HELMFILE_V1MODE} = true ]]; then - test_start "$case_title for v1" - info "Comparing ${case_title} for v1 output ${cli_overwrite_environment_values_reverse} with ${cli_overwrite_environment_values_output_dir}/overwritten.yaml" - for i in $(seq 10); do - info "Comparing build/cli-overwrite-environment-values #$i" - ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input_v1.yaml.gotmpl template --state-values-set ns=test3 --state-values-set-string imageTag=1.23.3,zone="zone1,zone2" > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" - diff -u ${cli_overwrite_environment_values_output_dir}/output_v1.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" - echo code=$? - done - test_pass "cli overwrite environment values for v1" -else - test_start "${case_title}" - info "Comparing ${case_title} output ${cli_overwrite_environment_values_reverse} with ${cli_overwrite_environment_values_output_dir}/overwritten.yaml" - for i in $(seq 10); do - info "Comparing build/cli-overwrite-environment-values #$i" - ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input_v1.yaml.gotmpl template --state-values-set ns=test3 --state-values-set-string imageTag=1.23.3,zone="zone1,zone2" > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" - diff -u ${cli_overwrite_environment_values_output_dir}/output_v1.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" - echo code=$? - done - test_pass "${case_title}" -fi +test_start "$case_title" +info "Comparing ${case_title} for output ${cli_overwrite_environment_values_reverse} with ${cli_overwrite_environment_values_output_dir}/overwritten.yaml" +for i in $(seq 10); do + info "Comparing build/cli-overwrite-environment-values #$i" + ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input.yaml.gotmpl template --state-values-set ns=test3 --state-values-set-string imageTag=1.23.3,zone="zone1,zone2" > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" + diff -u ${cli_overwrite_environment_values_output_dir}/output.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" + echo code=$? +done +test_pass "cli overwrite environment values for v1" \ No newline at end of file diff --git a/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml b/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml deleted file mode 100644 index 28706d92..00000000 --- a/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml +++ /dev/null @@ -1,17 +0,0 @@ -environments: - default: - values: - - base.yaml - - override.yaml - -repositories: - - name: bitnami - url: https://charts.bitnami.com/bitnami - -releases: - - name: test - chart: bitnami/nginx - namespace: {{ .Values.ns }} - version: 13.2.27 - values: - - values.yaml.gotmpl diff --git a/test/integration/test-cases/cli-overwrite-environment-values/input/input_v1.yaml.gotmpl b/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/cli-overwrite-environment-values/input/input_v1.yaml.gotmpl rename to test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml.gotmpl diff --git a/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml b/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml index ae8f779c..ba0f5cd7 100644 --- a/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml +++ b/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml @@ -1,9 +1,3 @@ -Warning: environments and releases cannot be defined within the same YAML part. Use --- to extract the environments into a dedicated part -Warning: environments and releases cannot be defined within the same YAML part. Use --- to extract the environments into a dedicated part -Adding repo bitnami https://charts.bitnami.com/bitnami -"bitnami" has been added to your repositories - -Templating release=test, chart=bitnami/nginx --- # Source: nginx/templates/svc.yaml apiVersion: v1 @@ -57,6 +51,7 @@ spec: app.kubernetes.io/instance: test app.kubernetes.io/managed-by: Helm annotations: + zone: "zone1,zone2" spec: automountServiceAccountToken: false @@ -81,7 +76,7 @@ spec: initContainers: containers: - name: nginx - image: docker.io/bitnami/nginx:test3 + image: docker.io/bitnami/nginx:1.23.3 imagePullPolicy: "IfNotPresent" env: - name: BITNAMI_DEBUG diff --git a/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml b/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml deleted file mode 100644 index ba0f5cd7..00000000 --- a/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml +++ /dev/null @@ -1,111 +0,0 @@ ---- -# Source: nginx/templates/svc.yaml -apiVersion: v1 -kind: Service -metadata: - name: test-nginx - namespace: "test3" - labels: - app.kubernetes.io/name: nginx - helm.sh/chart: nginx-13.2.27 - app.kubernetes.io/instance: test - app.kubernetes.io/managed-by: Helm - annotations: -spec: - type: LoadBalancer - sessionAffinity: None - externalTrafficPolicy: "Cluster" - ports: - - name: http - port: 80 - targetPort: http - selector: - app.kubernetes.io/name: nginx - app.kubernetes.io/instance: test ---- -# Source: nginx/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: test-nginx - namespace: "test3" - labels: - app.kubernetes.io/name: nginx - helm.sh/chart: nginx-13.2.27 - app.kubernetes.io/instance: test - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - strategy: - rollingUpdate: {} - type: RollingUpdate - selector: - matchLabels: - app.kubernetes.io/name: nginx - app.kubernetes.io/instance: test - template: - metadata: - labels: - app.kubernetes.io/name: nginx - helm.sh/chart: nginx-13.2.27 - app.kubernetes.io/instance: test - app.kubernetes.io/managed-by: Helm - annotations: - zone: "zone1,zone2" - spec: - - automountServiceAccountToken: false - shareProcessNamespace: false - serviceAccountName: default - affinity: - podAffinity: - - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/name: nginx - app.kubernetes.io/instance: test - topologyKey: kubernetes.io/hostname - weight: 1 - nodeAffinity: - - hostNetwork: false - hostIPC: false - initContainers: - containers: - - name: nginx - image: docker.io/bitnami/nginx:1.23.3 - imagePullPolicy: "IfNotPresent" - env: - - name: BITNAMI_DEBUG - value: "false" - - name: NGINX_HTTP_PORT_NUMBER - value: "8080" - envFrom: - ports: - - name: http - containerPort: 8080 - livenessProbe: - failureThreshold: 6 - initialDelaySeconds: 30 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - tcpSocket: - port: http - readinessProbe: - failureThreshold: 3 - initialDelaySeconds: 5 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 3 - tcpSocket: - port: http - resources: - limits: {} - requests: {} - volumeMounts: - volumes: - diff --git a/test/integration/test-cases/happypath.sh b/test/integration/test-cases/happypath.sh index a9778a1d..2968a554 100644 --- a/test/integration/test-cases/happypath.sh +++ b/test/integration/test-cases/happypath.sh @@ -2,14 +2,7 @@ test_start "happypath - simple rollout of httpbin chart" happypath_case_input_dir="${cases_dir}/happypath/input" happypath_case_output_dir="${cases_dir}/happypath/output" -config_file="happypath.yaml" - -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${happypath_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="happypath.yaml.gotmpl" info "Diffing ${happypath_case_input_dir}/${config_file}" bash -c "${helmfile} -f ${happypath_case_input_dir}/${config_file} diff --detailed-exitcode; code="'$?'"; [ "'${code}'" -eq 2 ]" || fail "unexpected exit code returned by helmfile diff" diff --git a/test/integration/test-cases/happypath/input/happypath.yaml b/test/integration/test-cases/happypath/input/happypath.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/happypath/input/happypath.yaml rename to test/integration/test-cases/happypath/input/happypath.yaml.gotmpl diff --git a/test/integration/test-cases/postrender.sh b/test/integration/test-cases/postrender.sh index 5a1a2aee..dfeab508 100644 --- a/test/integration/test-cases/postrender.sh +++ b/test/integration/test-cases/postrender.sh @@ -1,14 +1,7 @@ postrender_case_input_dir="${cases_dir}/postrender/input" postrender_case_output_dir="${cases_dir}/postrender/output" -config_file="helmfile.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${postrender_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi - +config_file="helmfile.yaml.gotmpl" postrender_diff_out_file=${postrender_case_output_dir}/diff-result if [[ $EXTRA_HELMFILE_FLAGS == *--enable-live-output* ]]; then postrender_diff_out_file=${postrender_case_output_dir}/diff-result-live diff --git a/test/integration/test-cases/postrender/input/helmfile.yaml b/test/integration/test-cases/postrender/input/helmfile.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/postrender/input/helmfile.yaml rename to test/integration/test-cases/postrender/input/helmfile.yaml.gotmpl diff --git a/test/integration/test-cases/regression.sh b/test/integration/test-cases/regression.sh index 8a68d491..bc2ea412 100644 --- a/test/integration/test-cases/regression.sh +++ b/test/integration/test-cases/regression.sh @@ -4,44 +4,20 @@ test_start "regression tests" regression_case_input_dir="${cases_dir}/regression/input" info "https://github.com/roboll/helmfile/issues/1857" -config_file="issue.1857.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${regression_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="issue.1857.yaml.gotmpl" (${helmfile} -f ${regression_case_input_dir}/${config_file} --state-values-set grafanaEnabled=true template | grep grafana 1>/dev/null) || fail "\"helmfile template\" shouldn't include grafana" ! (${helmfile} -f ${regression_case_input_dir}/${config_file} --state-values-set grafanaEnabled=false template | grep grafana) || fail "\"helmfile template\" shouldn't include grafana" info "https://github.com/roboll/helmfile/issues/1867" -config_file="issue.1867.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${regression_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="issue.1867.yaml.gotmpl" (${helmfile} -f ${regression_case_input_dir}/${config_file} template 1>/dev/null) || fail "\"helmfile template\" shouldn't fail" info "https://github.com/roboll/helmfile/issues/2118" -config_file="issue.2118.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${regression_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="issue.2118.yaml.gotmpl" (${helmfile} -f ${regression_case_input_dir}/${config_file} template 1>/dev/null) || fail "\"helmfile template\" shouldn't fail" info "https://github.com/helmfile/helmfile/issues/1682" -config_file="issue.1682.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${regression_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="issue.1682.yaml.gotmpl" (${helmfile} -f ${regression_case_input_dir}/${config_file} deps 1>/dev/null) || fail "\"helmfile deps\" shouldn't fail" test_pass "regression tests" \ No newline at end of file diff --git a/test/integration/test-cases/regression/input/issue.1682.yaml b/test/integration/test-cases/regression/input/issue.1682.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/regression/input/issue.1682.yaml rename to test/integration/test-cases/regression/input/issue.1682.yaml.gotmpl diff --git a/test/integration/test-cases/regression/input/issue.1857.yaml b/test/integration/test-cases/regression/input/issue.1857.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/regression/input/issue.1857.yaml rename to test/integration/test-cases/regression/input/issue.1857.yaml.gotmpl diff --git a/test/integration/test-cases/regression/input/issue.1867.yaml b/test/integration/test-cases/regression/input/issue.1867.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/regression/input/issue.1867.yaml rename to test/integration/test-cases/regression/input/issue.1867.yaml.gotmpl diff --git a/test/integration/test-cases/regression/input/issue.2118.yaml b/test/integration/test-cases/regression/input/issue.2118.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/regression/input/issue.2118.yaml rename to test/integration/test-cases/regression/input/issue.2118.yaml.gotmpl diff --git a/test/integration/test-cases/secretssops.sh b/test/integration/test-cases/secretssops.sh index b4c53f79..b5085275 100644 --- a/test/integration/test-cases/secretssops.sh +++ b/test/integration/test-cases/secretssops.sh @@ -4,13 +4,7 @@ sops="sops --hc-vault-transit $VAULT_ADDR/v1/sops/keys/key" secretssops_case_input_dir="${cases_dir}/secretssops/input" secretssops_case_output_dir="${cases_dir}/secretssops/output" -config_file="secretssops.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${secretssops_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="secretssops.yaml.gotmpl" mkdir -p ${secretssops_case_input_dir}/tmp diff --git a/test/integration/test-cases/secretssops/input/secretssops.yaml b/test/integration/test-cases/secretssops/input/secretssops.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/secretssops/input/secretssops.yaml rename to test/integration/test-cases/secretssops/input/secretssops.yaml.gotmpl diff --git a/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh b/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh index a234fb19..113f45fa 100644 --- a/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh +++ b/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh @@ -1,19 +1,20 @@ -if [[ ${HELMFILE_V1MODE} = true ]]; then - v1_subhelmfile_multi_bases_with_array_values_input_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/input" - v1_subhelmfile_multi_bases_with_array_values_output_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/output" +v1_subhelmfile_multi_bases_with_array_values_input_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/input" +v1_subhelmfile_multi_bases_with_array_values_output_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/output" - yaml_overwrite_tmp=$(mktemp -d) - yaml_overwrite_reverse=${yaml_overwrite_tmp}/helmfile_template_result +yaml_overwrite_tmp=$(mktemp -d) +yaml_overwrite_reverse=${yaml_overwrite_tmp}/helmfile_template_result - test_start "v1 subhelmfile multi bases with array values" - info "Comparing v1 subhelmfile multi bases with array values output ${yaml_overwrite_reverse} with ${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result" - for i in $(seq 10); do - info "Comparing build/v1-subhelmfile-multi-bases-with-array-values #$i" - ${helmfile} -f ${v1_subhelmfile_multi_bases_with_array_values_input_dir}/helmfile.yaml.gotmpl template -e dev &> ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" - diff -u ${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" - echo code=$? - done - test_pass "v1 subhelmfile multi bases with array values" -else - test_pass "[skipped] v1 subhelmfile multi bases with array values" -fi \ No newline at end of file +v1_subhelmfile_multi_bases_with_array_values_output_file=${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result +if [[ $EXTRA_HELMFILE_FLAGS == *--enable-live-output* ]]; then + v1_subhelmfile_multi_bases_with_array_values_output_file=${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result-live +fi + +test_start "v1 subhelmfile multi bases with array values" +info "Comparing v1 subhelmfile multi bases with array values output ${yaml_overwrite_reverse} with ${v1_subhelmfile_multi_bases_with_array_values_output_file}" +for i in $(seq 10); do + info "Comparing build/v1-subhelmfile-multi-bases-with-array-values #$i" + ${helmfile} -f ${v1_subhelmfile_multi_bases_with_array_values_input_dir}/helmfile.yaml.gotmpl template -e dev &> ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" + diff -u ${v1_subhelmfile_multi_bases_with_array_values_output_file} ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" + echo code=$? +done +test_pass "v1 subhelmfile multi bases with array values" \ No newline at end of file diff --git a/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live b/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live new file mode 100644 index 00000000..ba42d6c6 --- /dev/null +++ b/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live @@ -0,0 +1,25 @@ +Live output is enabled +Adding repo incubator https://charts.helm.sh/incubator/ +"incubator" has been added to your repositories + +Templating release=helmfile-test, chart=incubator/raw +--- +# Source: raw/templates/resources.yaml +apiVersion: v1 +kind: Pod +metadata: + labels: + app: raw + chart: raw-0.1.0 + heritage: Helm + release: helmfile-test + name: test +spec: + containers: + - command: + - /bin/sh + - -c + - env + image: registry.k8s.io/busybox + name: test-container + diff --git a/test/integration/test-cases/yaml-overwrite.sh b/test/integration/test-cases/yaml-overwrite.sh index a4a45825..617d8f97 100644 --- a/test/integration/test-cases/yaml-overwrite.sh +++ b/test/integration/test-cases/yaml-overwrite.sh @@ -1,19 +1,15 @@ -if [[ ${HELMFILE_V1MODE} = true ]]; then - yaml_overwrite_case_input_dir="${cases_dir}/yaml-overwrite/input" - yaml_overwrite_case_output_dir="${cases_dir}/yaml-overwrite/output" +yaml_overwrite_case_input_dir="${cases_dir}/yaml-overwrite/input" +yaml_overwrite_case_output_dir="${cases_dir}/yaml-overwrite/output" - yaml_overwrite_tmp=$(mktemp -d) - yaml_overwrite_reverse=${yaml_overwrite_tmp}/yaml.override.build.yaml +yaml_overwrite_tmp=$(mktemp -d) +yaml_overwrite_reverse=${yaml_overwrite_tmp}/yaml.override.build.yaml - test_start "yaml overwrite feature" - info "Comparing yaml overwrite feature output ${yaml_overwrite_reverse} with ${yaml_overwrite_case_output_dir}/overwritten.yaml" - for i in $(seq 10); do - info "Comparing build/yaml-overwrite #$i" - ${helmfile} -f ${yaml_overwrite_case_input_dir}/issue.657.yaml.gotmpl template --skip-deps > ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" - ./dyff between -bs ${yaml_overwrite_case_output_dir}/overwritten.yaml ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" - echo code=$? - done - test_pass "yaml overwrite feature" -else - test_pass "[skipped] yaml overwrite feature" -fi \ No newline at end of file +test_start "yaml overwrite feature" +info "Comparing yaml overwrite feature output ${yaml_overwrite_reverse} with ${yaml_overwrite_case_output_dir}/overwritten.yaml" +for i in $(seq 10); do + info "Comparing build/yaml-overwrite #$i" + ${helmfile} -f ${yaml_overwrite_case_input_dir}/issue.657.yaml.gotmpl template --skip-deps > ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" + ./dyff between -bs ${yaml_overwrite_case_output_dir}/overwritten.yaml ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" + echo code=$? +done +test_pass "yaml overwrite feature" \ No newline at end of file From d6c7d5274bcd14b0503ccadbb3647e5058cdbd4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Feb 2025 07:33:10 +0800 Subject: [PATCH 116/177] build(deps): bump golang.org/x/term from 0.28.0 to 0.29.0 (#1913) Bumps [golang.org/x/term](https://github.com/golang/term) from 0.28.0 to 0.29.0. - [Commits](https://github.com/golang/term/compare/v0.28.0...v0.29.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 9f53c311..88a1cab6 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.11.0 - golang.org/x/term v0.28.0 + golang.org/x/term v0.29.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.17.0 k8s.io/apimachinery v0.32.1 @@ -99,7 +99,7 @@ require ( go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.34.0 // indirect golang.org/x/oauth2 v0.25.0 // indirect - golang.org/x/sys v0.29.0 // indirect + golang.org/x/sys v0.30.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/api v0.215.0 // indirect diff --git a/go.sum b/go.sum index 023bf3e9..5b0cc146 100644 --- a/go.sum +++ b/go.sum @@ -1862,8 +1862,9 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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= @@ -1878,8 +1879,9 @@ golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= +golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= +golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= 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= From 6cb42d141659f79ac263e175f24c74cd36347607 Mon Sep 17 00:00:00 2001 From: Zubair Haque Date: Wed, 5 Feb 2025 17:33:27 -0600 Subject: [PATCH 117/177] chore: update babel to resolve CVEs (#1916) update babel to resolve CVEs Signed-off-by: zhaque44 --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index ae1e456e..956ceb14 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,4 +1,4 @@ -Babel==2.9.1 +Babel==2.17.0 click==8.1.2 ghp-import==2.0.2 gitdb==4.0.9 From 63e2684ade215a8b1a7fe66152c2aca3b923dd7b Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Sat, 8 Feb 2025 18:25:16 +0800 Subject: [PATCH 118/177] Revert "cleanup: remove all about v0.x" (#1918) Revert "cleanup: remove all about v0.x (#1903)" This reverts commit d7bcd5e9985305ac427bc75e5644419e9ca939a2. Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 13 ++ .github/workflows/releaser.yaml | 1 + .goreleaser.yml | 4 + Makefile | 4 + cmd/apply.go | 7 + cmd/charts.go | 41 ++++ cmd/delete.go | 44 ++++ cmd/root.go | 8 + docs/index.md | 1 + pkg/app/app.go | 63 ++++- pkg/app/app_apply_nokubectx_test.go | 80 ++++++- pkg/app/app_apply_test.go | 82 ++++++- pkg/app/app_list_test.go | 1 - pkg/app/app_sync_test.go | 14 +- pkg/app/app_test.go | 112 +++++---- pkg/app/config.go | 29 +++ pkg/app/constants.go | 5 +- pkg/app/desired_state_file_loader.go | 24 +- pkg/app/diff_nokubectx_test.go | 181 ++++++++++++++- pkg/app/diff_test.go | 218 +++++++++++++++++- pkg/app/run.go | 11 + pkg/app/testdata/app_diff_test/bad_selector | 101 ++++++++ .../fail_on_unselected_need_by_default | 101 ++++++++ pkg/app/testdata/app_diff_test/include-needs | 101 ++++++++ ...ds_should_not_fail_on_disabled_direct_need | 101 ++++++++ ...hould_not_fail_on_disabled_transitive_need | 101 ++++++++ ...ds_should_not_fail_on_disabled_direct_need | 101 ++++++++ ...hould_not_fail_on_disabled_transitive_need | 101 ++++++++ .../app_diff_test/include-transitive-needs | 101 ++++++++ ...hould_not_fail_on_disabled_transitive_need | 101 ++++++++ pkg/app/testdata/app_diff_test/no-hooks | 101 ++++++++ .../show_diff_on_changed_selected_release | 29 +++ ...ff_on_already_uninstalled_selected_release | 31 +++ pkg/app/testdata/app_diff_test/skip-needs | 101 ++++++++ pkg/app/testdata/app_diff_test_1/bar | 33 +++ .../delete_bar_when_bar_needs_foo | 31 +++ .../delete_bar_when_foo_needs_bar | 31 +++ ..._bar_when_foo_needs_bar_with_include-needs | 31 +++ ...ete_bar_when_foo_needs_bar_with_skip-needs | 31 +++ .../delete_foo_and_bar_when_bar_needs_foo | 33 +++ .../delete_foo_and_bar_when_foo_needs_bar | 33 +++ .../delete_foo_when_bar_needs_foo | 31 +++ ..._foo_when_bar_needs_foo_with_include-needs | 31 +++ ...ete_foo_when_bar_needs_foo_with_skip-needs | 31 +++ .../delete_foo_when_foo_needs_bar | 31 +++ .../helm3_upgrade_when_ns2_bar_needs_ns1_foo | 33 +++ pkg/app/testdata/app_diff_test_1/install | 33 +++ .../non-existent_release_in_needs | 8 - pkg/app/testdata/app_diff_test_1/noop | 31 +++ pkg/app/testdata/app_diff_test_1/smoke | 121 ++++++++++ .../unselected_release_in_needs | 7 - .../upgrade_when_bar_needs_foo | 29 +++ ...grade_when_bar_needs_foo,_with_ns_override | 29 +++ .../upgrade_when_foo_needs_bar | 29 +++ ...grade_when_foo_needs_bar,_with_ns_override | 29 +++ ...e_when_foo_needs_bar_with_context_override | 33 +++ ...n_releaseb_needs_releasea_with_aws_context | 37 +++ ...grade_when_tns1_ns1_foo_needs_tns2_ns2_bar | 33 +++ .../upgrades_with_bad_selector | 33 --- ...with_good_selector_with_--skip-needs=false | 34 --- ..._with_good_selector_with_--skip-needs=true | 40 +++- pkg/app/testdata/app_diff_test_2/bar | 33 +++ .../delete_bar_when_bar_needs_foo | 31 +++ .../delete_bar_when_foo_needs_bar | 31 +++ ..._bar_when_foo_needs_bar_with_include-needs | 31 +++ ...ete_bar_when_foo_needs_bar_with_skip-needs | 31 +++ .../delete_foo_and_bar_when_bar_needs_foo | 33 +++ .../delete_foo_and_bar_when_foo_needs_bar | 33 +++ .../delete_foo_when_bar_needs_foo | 31 +++ .../delete_foo_when_foo_needs_bar | 31 +++ pkg/app/testdata/app_diff_test_2/foo | 33 +++ .../helm3_upgrade_when_ns2_bar_needs_ns1_foo | 33 +++ pkg/app/testdata/app_diff_test_2/install | 33 +++ .../non-existent_release_in_needs | 8 - pkg/app/testdata/app_diff_test_2/noop | 31 +++ pkg/app/testdata/app_diff_test_2/smoke | 121 ++++++++++ .../upgrade_when_bar_needs_foo | 29 +++ ...grade_when_bar_needs_foo,_with_ns_override | 29 +++ .../upgrade_when_foo_needs_bar | 29 +++ ...grade_when_foo_needs_bar,_with_ns_override | 29 +++ .../upgrades_with_bad_selector | 33 --- ...with_good_selector_with_--skip-needs=false | 34 --- ..._with_good_selector_with_--skip-needs=true | 40 +++- pkg/app/testdata/app_lint_test/bad_selector | 101 ++++++++ .../fail_on_unselected_need_by_default | 101 ++++++++ pkg/app/testdata/app_lint_test/include-needs | 101 ++++++++ ...ds_should_not_fail_on_disabled_direct_need | 101 ++++++++ ...hould_not_fail_on_disabled_transitive_need | 101 ++++++++ ...ds_should_not_fail_on_disabled_direct_need | 101 ++++++++ ...hould_not_fail_on_disabled_transitive_need | 101 ++++++++ .../app_lint_test/include-transitive-needs | 101 ++++++++ ...hould_not_fail_on_disabled_transitive_need | 101 ++++++++ pkg/app/testdata/app_lint_test/skip-needs | 101 ++++++++ .../default_environment_includes_all_releases | 205 ++++++++++++++++ .../app_list_test/fail_on_unknown_environment | 61 +++++ ...ses_for_environment_used_in_multiple_files | 205 ++++++++++++++++ ...ases_for_environment_used_in_one_file_only | 106 +++++++++ ...releases_matching_selector_and_environment | 160 +++++++++++++ .../testdata/app_template_test/bad_selector | 101 ++++++++ .../fail_on_unselected_need_by_default | 101 ++++++++ .../testdata/app_template_test/include-needs | 101 ++++++++ ...ds_should_not_fail_on_disabled_direct_need | 101 ++++++++ ...hould_not_fail_on_disabled_transitive_need | 101 ++++++++ ...ds_should_not_fail_on_disabled_direct_need | 101 ++++++++ ...hould_not_fail_on_disabled_transitive_need | 101 ++++++++ .../include-transitive-needs | 101 ++++++++ ...hould_not_fail_on_disabled_transitive_need | 101 ++++++++ pkg/app/testdata/app_template_test/no-hooks | 101 ++++++++ pkg/app/testdata/app_template_test/show-only | 101 ++++++++ pkg/app/testdata/app_template_test/skip-needs | 101 ++++++++ .../dag_test/dag_lists_dependencies_in_order | 114 +++++++++ .../delete_bar_when_bar_needs_foo/log | 31 +++ .../delete_bar_when_foo_needs_bar/log | 31 +++ .../delete_foo_and_bar_when_bar_needs_foo/log | 33 +++ .../delete_foo_and_bar_when_foo_needs_bar/log | 33 +++ .../delete_foo_when_bar_needs_foo/log | 31 +++ .../delete_foo_when_foo_needs_bar/log | 31 +++ .../testdata/testapply/duplicate_releases/log | 39 ++++ .../log | 27 +++ .../log | 39 ++++ .../log | 39 ++++ pkg/app/testdata/testapply/install/log | 33 +++ .../non-existent_release_in_needs/log | 31 +++ pkg/app/testdata/testapply/noop/log | 31 +++ pkg/app/testdata/testapply/smoke/log | 121 ++++++++++ .../testapply/unselected_release_in_needs/log | 31 +++ .../log | 29 +++ .../testapply/upgrade_when_bar_needs_foo/log | 29 +++ .../log | 29 +++ .../testapply/upgrade_when_foo_needs_bar/log | 29 +++ .../upgrade_when_ns1/foo_needs_ns2/bar/log | 33 +++ .../upgrade_when_ns2/bar_needs_ns1/foo/log | 33 +++ .../testapply/upgrades_with_bad_selector/log | 40 +++- .../log | 40 +++- .../log | 40 +++- .../testdata/testapply_2/bad_--selector/log | 33 --- .../testapply_2/deduplicate_by_--selector/log | 47 ++++ .../include-transitive-needs=true/log | 36 ++- .../log | 39 ++++ .../log | 51 ++++ .../skip-needs=false_include-needs=true/log | 40 +++- .../log | 40 +++- .../log | 41 +++- .../log | 41 +++- .../testdata/testapply_2/skip-needs=true/log | 40 +++- .../log | 40 +++- .../testdata/testapply_3/bad_--selector/log | 33 --- .../skip-needs=false_include-needs=true/log | 40 +++- .../log | 40 +++- .../log | 41 +++- .../log | 41 +++- .../testdata/testapply_3/skip-needs=true/log | 40 +++- .../log | 40 +++- pkg/app/testdata/testdeps/smoke/log | 7 - .../log | 31 +++ .../log | 121 ++++++++++ pkg/app/testdata/testdestroy/helm3/log | 31 +++ pkg/app/testdata/testdestroy/smoke/log | 121 ++++++++++ .../log | 31 +++ .../log | 121 ++++++++++ pkg/app/testdata/testdestroy_2/helm3/log | 31 +++ pkg/app/testdata/testdestroy_2/smoke/log | 121 ++++++++++ .../testreadfromyaml_rendertemplatelog/log | 10 - pkg/app/two_pass_renderer.go | 106 ++++++++- pkg/app/two_pass_renderer_test.go | 115 ++++++++- pkg/config/apply.go | 10 + pkg/config/charts.go | 46 ++++ pkg/config/delete.go | 67 ++++++ pkg/envvar/const.go | 4 + pkg/policy/checker.go | 6 +- pkg/policy/checker_test.go | 27 ++- pkg/runtime/runtime.go | 25 +- pkg/state/create.go | 14 ++ pkg/state/create_test.go | 20 ++ pkg/state/state.go | 4 + pkg/state/state_test.go | 30 ++- pkg/tmpl/context_funcs.go | 16 +- pkg/tmpl/context_funcs_test.go | 24 ++ test/e2e/template/helmfile/snapshot_test.go | 2 +- .../{input.yaml.gotmpl => input.yaml} | 0 .../{input.yaml.gotmpl => input.yaml} | 0 .../{no-envs.yaml.gotmpl => no-envs.yaml} | 0 .../{no-values.yaml.gotmpl => no-values.yaml} | 0 .../helmfiles/{prod.yaml.gotmpl => prod.yaml} | 0 .../helmfiles/{test.yaml.gotmpl => test.yaml} | 0 .../{input.yaml.gotmpl => input.yaml} | 8 +- .../config.yaml | 5 + .../input.yaml} | 2 +- .../output.yaml | 1 + .../config.yaml | 5 - .../{input.yaml.gotmpl => input.yaml} | 0 .../hcl_mix/{input.yaml.gotmpl => input.yaml} | 0 .../{input.yaml.gotmpl => input.yaml} | 0 .../{input.yaml.gotmpl => input.yaml} | 0 .../output.yaml | 4 +- .../{input.yaml.gotmpl => input.yaml} | 0 .../{input.yaml.gotmpl => input.yaml} | 0 .../{input.yaml.gotmpl => input.yaml} | 0 .../{input.yaml.gotmpl => input.yaml} | 0 .../{input.yaml.gotmpl => input.yaml} | 0 .../{input.yaml.gotmpl => input.yaml} | 0 .../pr_560/{input.yaml.gotmpl => input.yaml} | 0 .../{input.yaml.gotmpl => input.yaml} | 0 .../{input.yaml.gotmpl => input.yaml} | 0 test/integration/test-cases/chart-needs.sh | 9 +- .../{helmfile.yaml.gotmpl => helmfile.yaml} | 0 ...y-jsonPatches-and-strategicMergePatches.sh | 9 +- .../{helmfile.yaml.gotmpl => helmfile.yaml} | 0 test/integration/test-cases/chartify.sh | 9 +- .../{helmfile.yaml.gotmpl => helmfile.yaml} | 0 .../cli-overwrite-environment-values.sh | 30 ++- .../input/input.yaml | 17 ++ ...input.yaml.gotmpl => input_v1.yaml.gotmpl} | 0 .../output/output.yaml | 9 +- .../output/output_v1.yaml | 111 +++++++++ test/integration/test-cases/happypath.sh | 9 +- .../{happypath.yaml.gotmpl => happypath.yaml} | 0 test/integration/test-cases/postrender.sh | 9 +- .../{helmfile.yaml.gotmpl => helmfile.yaml} | 0 test/integration/test-cases/regression.sh | 32 ++- ...issue.1682.yaml.gotmpl => issue.1682.yaml} | 0 ...issue.1857.yaml.gotmpl => issue.1857.yaml} | 0 ...issue.1867.yaml.gotmpl => issue.1867.yaml} | 0 ...issue.2118.yaml.gotmpl => issue.2118.yaml} | 0 test/integration/test-cases/secretssops.sh | 8 +- ...cretssops.yaml.gotmpl => secretssops.yaml} | 0 ...bhelmfile-multi-bases-with-array-values.sh | 35 ++- .../output/result-live | 25 -- test/integration/test-cases/yaml-overwrite.sh | 30 +-- 229 files changed, 9464 insertions(+), 510 deletions(-) create mode 100644 cmd/charts.go create mode 100644 cmd/delete.go delete mode 100644 pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs delete mode 100644 pkg/app/testdata/app_diff_test_1/unselected_release_in_needs delete mode 100644 pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector delete mode 100644 pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false delete mode 100644 pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs delete mode 100644 pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector delete mode 100644 pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false delete mode 100644 pkg/app/testdata/testapply_2/bad_--selector/log delete mode 100644 pkg/app/testdata/testapply_3/bad_--selector/log delete mode 100644 pkg/app/testdata/testdeps/smoke/log delete mode 100644 pkg/app/testdata/testreadfromyaml_rendertemplatelog/log create mode 100644 pkg/config/charts.go create mode 100644 pkg/config/delete.go rename test/e2e/template/helmfile/testdata/snapshot/chart_need/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{no-envs.yaml.gotmpl => no-envs.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{no-values.yaml.gotmpl => no-values.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{prod.yaml.gotmpl => prod.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{test.yaml.gotmpl => test.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/{input.yaml.gotmpl => input.yaml} (58%) create mode 100644 test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml rename test/e2e/template/helmfile/testdata/snapshot/{environments_releases_without_same_yaml_part/input.yaml.gotmpl => environments_releases_within_same_yaml_part/input.yaml} (97%) rename test/e2e/template/helmfile/testdata/snapshot/{environments_releases_without_same_yaml_part => environments_releases_within_same_yaml_part}/output.yaml (56%) delete mode 100644 test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml rename test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/hcl_mix/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/oci_need/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/postrenderer/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/pr_560/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/{input.yaml.gotmpl => input.yaml} (100%) rename test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/{input.yaml.gotmpl => input.yaml} (100%) rename test/integration/test-cases/chart-needs/input/{helmfile.yaml.gotmpl => helmfile.yaml} (100%) rename test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/{helmfile.yaml.gotmpl => helmfile.yaml} (100%) rename test/integration/test-cases/chartify/input/{helmfile.yaml.gotmpl => helmfile.yaml} (100%) create mode 100644 test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml rename test/integration/test-cases/cli-overwrite-environment-values/input/{input.yaml.gotmpl => input_v1.yaml.gotmpl} (100%) create mode 100644 test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml rename test/integration/test-cases/happypath/input/{happypath.yaml.gotmpl => happypath.yaml} (100%) rename test/integration/test-cases/postrender/input/{helmfile.yaml.gotmpl => helmfile.yaml} (100%) rename test/integration/test-cases/regression/input/{issue.1682.yaml.gotmpl => issue.1682.yaml} (100%) rename test/integration/test-cases/regression/input/{issue.1857.yaml.gotmpl => issue.1857.yaml} (100%) rename test/integration/test-cases/regression/input/{issue.1867.yaml.gotmpl => issue.1867.yaml} (100%) rename test/integration/test-cases/regression/input/{issue.2118.yaml.gotmpl => issue.2118.yaml} (100%) rename test/integration/test-cases/secretssops/input/{secretssops.yaml.gotmpl => secretssops.yaml} (100%) delete mode 100644 test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 26f579cf..2e25b18c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -59,6 +59,7 @@ jobs: plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' + v1mode: '' - helm-version: v3.16.4 kustomize-version: v5.4.3 # We assume that the helm-secrets plugin is supposed to @@ -69,16 +70,26 @@ jobs: plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '' + v1mode: '' - helm-version: v3.17.0 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' + v1mode: '' - helm-version: v3.17.0 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '' + v1mode: '' + # Helmfile v1 + - helm-version: v3.17.0 + kustomize-version: v5.4.3 + plugin-secrets-version: 4.6.0 + plugin-diff-version: 3.9.14 + 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.17.0 @@ -86,6 +97,7 @@ jobs: plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '--enable-live-output' + v1mode: '' steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 @@ -115,6 +127,7 @@ jobs: HELMFILE_HELM3: 1 TERM: xterm EXTRA_HELMFILE_FLAGS: ${{ matrix.extra-helmfile-flags }} + HELMFILE_V1MODE: ${{ matrix.v1mode }} e2e_tests: needs: tests diff --git a/.github/workflows/releaser.yaml b/.github/workflows/releaser.yaml index fc98bd7c..ee2f0dc9 100644 --- a/.github/workflows/releaser.yaml +++ b/.github/workflows/releaser.yaml @@ -16,6 +16,7 @@ permissions: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + HELMFILE_V1MODE: ${{ startsWith(github.ref, 'refs/tags/v1') }} SNAPSHOT: ${{ !startsWith(github.ref, 'refs/tags/v') && '--snapshot' || '' }} jobs: diff --git a/.goreleaser.yml b/.goreleaser.yml index aba37be9..6d515513 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,5 +1,8 @@ version: 2 project_name: helmfile +env: + # We default to non-v1 mode (=helmfile v0.x behavior) when HELMFILE_V1MODE is not set + - HELMFILE_V1MODE={{ if index .Env "HELMFILE_V1MODE" }}{{ .Env.HELMFILE_V1MODE }}{{ else }}false{{ end }} builds: - id: helmfile main: . @@ -12,6 +15,7 @@ builds: - -X go.szostok.io/version.commit={{.FullCommit}} - -X go.szostok.io/version.commitDate={{.CommitDate}} - -X go.szostok.io/version.dirtyBuild=false + - -X github.com/helmfile/helmfile/pkg/runtime.v1Mode={{.Env.HELMFILE_V1MODE}} goos: - darwin - linux diff --git a/Makefile b/Makefile index 5e009ca0..0500bd33 100644 --- a/Makefile +++ b/Makefile @@ -25,6 +25,10 @@ build: go build -ldflags="$(GO_BUILD_VERSION_LDFLAGS)" ${TARGETS} .PHONY: build +build-v1: + go build -ldflags="$(GO_BUILD_VERSION_LDFLAGS) -X github.com/helmfile/helmfile/pkg/runtime.v1Mode=true" ${TARGETS} +.PHONY: build-v1 + generate: go generate ${PKGS} .PHONY: generate diff --git a/cmd/apply.go b/cmd/apply.go index 8cbe4ad9..9e6cfa47 100644 --- a/cmd/apply.go +++ b/cmd/apply.go @@ -5,6 +5,7 @@ import ( "github.com/helmfile/helmfile/pkg/app" "github.com/helmfile/helmfile/pkg/config" + "github.com/helmfile/helmfile/pkg/runtime" ) // NewApplyCmd returns apply subcmd @@ -43,6 +44,12 @@ func NewApplyCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.StringVar(&applyOptions.DiffArgs, "diff-args", "", `pass args to helm helm-diff`) f.StringVar(&applyOptions.SyncArgs, "sync-args", "", `pass args to helm upgrade`) f.StringVar(&globalCfg.GlobalOptions.Args, "args", "", "pass args to helm exec") + if !runtime.V1Mode { + // TODO: Remove this function once Helmfile v0.x + f.BoolVar(&applyOptions.RetainValuesFiles, "retain-values-files", false, "DEPRECATED: Use skip-cleanup instead") + _ = f.MarkDeprecated("retain-values-files", "Use skip-cleanup instead") + } + f.BoolVar(&applyOptions.SkipCleanup, "skip-cleanup", false, "Stop cleaning up temporary values generated by helmfile and helm-secrets. Useful for debugging. Don't use in production for security") f.BoolVar(&applyOptions.SkipCRDs, "skip-crds", false, "if set, no CRDs will be installed on sync. By default, CRDs are installed if not already present") f.BoolVar(&applyOptions.SkipNeeds, "skip-needs", true, `do not automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when --selector/-l flag is not provided. Defaults to true when --include-needs or --include-transitive-needs is not provided`) diff --git a/cmd/charts.go b/cmd/charts.go new file mode 100644 index 00000000..cae9d168 --- /dev/null +++ b/cmd/charts.go @@ -0,0 +1,41 @@ +// TODO: Remove this function once Helmfile v0.x +package cmd + +import ( + "github.com/spf13/cobra" + + "github.com/helmfile/helmfile/pkg/app" + "github.com/helmfile/helmfile/pkg/config" +) + +// NewChartsCmd returns charts subcmd +func NewChartsCmd(globalCfg *config.GlobalImpl) *cobra.Command { + chartsOptions := config.NewChartsOptions() + + cmd := &cobra.Command{ + Use: "charts", + Short: "DEPRECATED: sync releases from state file (helm upgrade --install)", + RunE: func(cmd *cobra.Command, args []string) error { + chartsImpl := config.NewChartsImpl(globalCfg, chartsOptions) + err := config.NewCLIConfigImpl(chartsImpl.GlobalImpl) + if err != nil { + return err + } + + if err := chartsImpl.ValidateConfig(); err != nil { + return err + } + + a := app.New(chartsImpl) + return toCLIError(chartsImpl.GlobalImpl, a.DeprecatedSyncCharts(chartsImpl)) + }, + } + + f := cmd.Flags() + f.StringVar(&globalCfg.GlobalOptions.Args, "args", "", "pass args to helm exec") + f.StringArrayVar(&chartsOptions.Set, "set", nil, "additional values to be merged into the helm command --set flag") + f.StringArrayVar(&chartsOptions.Values, "values", nil, "additional value files to be merged into the helm command --values flag") + f.IntVar(&chartsOptions.Concurrency, "concurrency", 0, "maximum number of concurrent helm processes to run, 0 is unlimited") + + return cmd +} diff --git a/cmd/delete.go b/cmd/delete.go new file mode 100644 index 00000000..1c89c147 --- /dev/null +++ b/cmd/delete.go @@ -0,0 +1,44 @@ +// TODO: Remove this function once Helmfile v0.x +package cmd + +import ( + "github.com/spf13/cobra" + + "github.com/helmfile/helmfile/pkg/app" + "github.com/helmfile/helmfile/pkg/config" +) + +// NewDeleteCmd returns delete subcmd +func NewDeleteCmd(globalCfg *config.GlobalImpl) *cobra.Command { + deleteOptions := config.NewDeleteOptions() + + cmd := &cobra.Command{ + Use: "delete", + Short: "DEPRECATED: delete releases from state file (helm delete)", + RunE: func(cmd *cobra.Command, args []string) error { + deleteImpl := config.NewDeleteImpl(globalCfg, deleteOptions) + err := config.NewCLIConfigImpl(deleteImpl.GlobalImpl) + if err != nil { + return err + } + + if err := deleteImpl.ValidateConfig(); err != nil { + return err + } + + a := app.New(deleteImpl) + return toCLIError(deleteImpl.GlobalImpl, a.Delete(deleteImpl)) + }, + } + + f := cmd.Flags() + f.StringVar(&globalCfg.GlobalOptions.Args, "args", "", "pass args to helm exec") + f.StringVar(&deleteOptions.Cascade, "cascade", "", "pass cascade to helm exec, default: background") + f.IntVar(&deleteOptions.Concurrency, "concurrency", 0, "maximum number of concurrent helm processes to run, 0 is unlimited") + f.BoolVar(&deleteOptions.Purge, "purge", false, "purge releases i.e. free release names and histories") + f.BoolVar(&deleteOptions.SkipCharts, "skip-charts", false, "don't prepare charts when deleting releases") + f.BoolVar(&deleteOptions.DeleteWait, "deleteWait", false, `override helmDefaults.wait setting "helm uninstall --wait"`) + f.IntVar(&deleteOptions.DeleteTimeout, "deleteTimeout", 300, `time in seconds to wait for helm uninstall, default: 300`) + + return cmd +} diff --git a/cmd/root.go b/cmd/root.go index ed629d12..f94cd9be 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -109,6 +109,14 @@ func NewRootCmd(globalConfig *config.GlobalOptions) (*cobra.Command, error) { ), ) + // TODO: Remove this function once Helmfile v0.x + if !runtime.V1Mode { + cmd.AddCommand( + NewChartsCmd(globalImpl), + NewDeleteCmd(globalImpl), + ) + } + return cmd, nil } diff --git a/docs/index.md b/docs/index.md index db460ca9..88c819b7 100644 --- a/docs/index.md +++ b/docs/index.md @@ -557,6 +557,7 @@ Helmfile uses some OS environment variables to override default behaviour: * `HELMFILE_ENVIRONMENT` - specify [Helmfile environment](https://helmfile.readthedocs.io/en/latest/#environment), it has lower priority than CLI argument `--environment` * `HELMFILE_TEMPDIR` - specify directory to store temporary files * `HELMFILE_UPGRADE_NOTICE_DISABLED` - expecting any non-empty value to skip the check for the latest version of Helmfile in [helmfile version](https://helmfile.readthedocs.io/en/latest/#version) +* `HELMFILE_V1MODE` - Helmfile v0.x behaves like v1.x with `true`, Helmfile v1.x behaves like v0.x with `false` as value * `HELMFILE_GOCCY_GOYAML` - use *goccy/go-yaml* instead of *gopkg.in/yaml.v2*. It's `false` by default in Helmfile v0.x and `true` by default for Helmfile v1.x. * `HELMFILE_CACHE_HOME` - specify directory to store cached files for remote operations * `HELMFILE_FILE_PATH` - specify the path to the helmfile.yaml file diff --git a/pkg/app/app.go b/pkg/app/app.go index 3a44b252..91beba57 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -20,6 +20,7 @@ import ( "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/plugins" "github.com/helmfile/helmfile/pkg/remote" + "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" ) @@ -138,6 +139,25 @@ func (a *App) Repos(c ReposConfigProvider) error { }, c.IncludeTransitiveNeeds(), SetFilter(true)) } +// TODO: Remove this function once Helmfile v0.x +func (a *App) DeprecatedSyncCharts(c DeprecatedChartsConfigProvider) error { + return a.ForEachState(func(run *Run) (_ bool, errs []error) { + err := run.withPreparedCharts("charts", state.ChartPrepareOptions{ + SkipRepos: true, + SkipDeps: true, + Concurrency: 2, + }, func() { + errs = run.DeprecatedSyncCharts(c) + }) + + if err != nil { + errs = append(errs, err) + } + + return + }, c.IncludeTransitiveNeeds(), SetFilter(true)) +} + func (a *App) Diff(c DiffConfigProvider) error { var allDiffDetectedErrs []error @@ -389,7 +409,7 @@ func (a *App) Apply(c ApplyConfigProvider) error { var opts []LoadOption - opts = append(opts, SetRetainValuesFiles(c.SkipCleanup())) + opts = append(opts, SetRetainValuesFiles(c.RetainValuesFiles() || c.SkipCleanup())) err := a.ForEachState(func(run *Run) (ok bool, errs []error) { includeCRDs := !c.SkipCRDs() @@ -401,7 +421,7 @@ func (a *App) Apply(c ApplyConfigProvider) error { Wait: c.Wait(), WaitForJobs: c.WaitForJobs(), IncludeCRDs: &includeCRDs, - SkipCleanup: c.SkipCleanup(), + SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), Validate: c.Validate(), Concurrency: c.Concurrency(), IncludeTransitiveNeeds: c.IncludeNeeds(), @@ -453,6 +473,31 @@ func (a *App) Status(c StatusesConfigProvider) error { }, false, SetFilter(true)) } +// TODO: Remove this function once Helmfile v0.x +func (a *App) Delete(c DeleteConfigProvider) error { + return a.ForEachState(func(run *Run) (ok bool, errs []error) { + if !c.SkipCharts() { + err := run.withPreparedCharts("delete", state.ChartPrepareOptions{ + SkipRepos: c.SkipRefresh() || c.SkipDeps(), + SkipRefresh: c.SkipRefresh(), + SkipDeps: c.SkipDeps(), + Concurrency: c.Concurrency(), + DeleteWait: c.DeleteWait(), + DeleteTimeout: c.DeleteTimeout(), + }, func() { + ok, errs = a.delete(run, c.Purge(), c) + }) + + if err != nil { + errs = append(errs, err) + } + } else { + ok, errs = a.delete(run, c.Purge(), c) + } + return + }, false, SetReverse(true)) +} + func (a *App) Destroy(c DestroyConfigProvider) error { return a.ForEachState(func(run *Run) (ok bool, errs []error) { if !c.SkipCharts() { @@ -1213,6 +1258,16 @@ func (a *App) findDesiredStateFiles(specifiedPath string, opts LoadOpts) ([]stri case a.fs.FileExistsAt(DefaultGotmplHelmfile): defaultFile = DefaultGotmplHelmfile + + // TODO: Remove this block when we remove v0 code + case !runtime.V1Mode && a.fs.FileExistsAt(DeprecatedHelmfile): + a.Logger.Warnf( + "warn: %s is being loaded: %s is deprecated in favor of %s. See https://github.com/roboll/helmfile/issues/25 for more information", + DeprecatedHelmfile, + DeprecatedHelmfile, + DefaultHelmfile, + ) + defaultFile = DeprecatedHelmfile } switch { @@ -1377,7 +1432,7 @@ func (a *App) apply(r *Run, c ApplyConfigProvider) (bool, bool, []error) { Context: c.Context(), Output: c.DiffOutput(), Set: c.Set(), - SkipCleanup: c.SkipCleanup(), + SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), SkipDiffOnInstall: c.SkipDiffOnInstall(), ReuseValues: c.ReuseValues(), ResetValues: c.ResetValues(), @@ -1488,7 +1543,7 @@ Do you really want to apply? syncOpts := &state.SyncOpts{ Set: c.Set(), - SkipCleanup: c.SkipCleanup(), + SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), SkipCRDs: c.SkipCRDs(), Wait: c.Wait(), WaitForJobs: c.WaitForJobs(), diff --git a/pkg/app/app_apply_nokubectx_test.go b/pkg/app/app_apply_nokubectx_test.go index c5ca3bbe..437a467c 100644 --- a/pkg/app/app_apply_nokubectx_test.go +++ b/pkg/app/app_apply_nokubectx_test.go @@ -146,7 +146,7 @@ func TestApply_3(t *testing.T) { skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -199,7 +199,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -250,7 +250,7 @@ releases: }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -306,7 +306,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -359,7 +359,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -415,7 +415,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -464,7 +464,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def t.Run("bad --selector", func(t *testing.T) { check(t, testcase{ files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -494,6 +494,72 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, + log: `processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml + +changing working directory back to "/path/to" +`, }) }) } diff --git a/pkg/app/app_apply_test.go b/pkg/app/app_apply_test.go index 06caf828..057cd683 100644 --- a/pkg/app/app_apply_test.go +++ b/pkg/app/app_apply_test.go @@ -146,7 +146,7 @@ func TestApply_2(t *testing.T) { skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -199,7 +199,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -250,7 +250,7 @@ releases: }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -306,7 +306,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -359,7 +359,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -415,7 +415,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -470,7 +470,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -517,7 +517,7 @@ serviceC 4 Fri Nov 1 08:40:07 2019 DEPLOYED chart-3.1.0 3.1.0 def t.Run("bad --selector", func(t *testing.T) { check(t, testcase{ files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -547,6 +547,72 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, + log: `processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml + +changing working directory back to "/path/to" +`, }) }) diff --git a/pkg/app/app_list_test.go b/pkg/app/app_list_test.go index 69bbc754..4cd535ed 100644 --- a/pkg/app/app_list_test.go +++ b/pkg/app/app_list_test.go @@ -240,7 +240,6 @@ environments: values: - myrelease2: enabled: false ---- releases: - name: myrelease1 chart: mychart1 diff --git a/pkg/app/app_sync_test.go b/pkg/app/app_sync_test.go index 5115db1c..b138f2fb 100644 --- a/pkg/app/app_sync_test.go +++ b/pkg/app/app_sync_test.go @@ -142,7 +142,7 @@ func TestSync(t *testing.T) { skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -191,7 +191,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -249,7 +249,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -300,7 +300,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -348,7 +348,7 @@ serviceA 4 Fri Nov 1 08:40:07 2019 DEPLOYED chart-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -401,7 +401,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -447,7 +447,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def t.Run("bad --selector", func(t *testing.T) { check(t, testcase{ files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index 3ea1b062..df79ee51 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -135,7 +135,6 @@ environments: default: values: - env.*.yaml ---- releases: - name: zipkin chart: stable/zipkin @@ -171,7 +170,7 @@ BAZ: 4 t.Errorf("unexpected error: %v", err) } - expectedOrder := []string{"helmfile.yaml", "/path/to/env.1.yaml", "/path/to/env.2.yaml"} + expectedOrder := []string{"helmfile.yaml", "/path/to/env.1.yaml", "/path/to/env.2.yaml", "/path/to/env.1.yaml", "/path/to/env.2.yaml"} actualOrder := fs.SuccessfulReads() if !reflect.DeepEqual(actualOrder, expectedOrder) { t.Errorf("unexpected order of processed state files: expected=%v, actual=%v", expectedOrder, actualOrder) @@ -185,7 +184,6 @@ environments: default: values: - env.*.yaml ---- releases: - name: zipkin chart: stable/zipkin @@ -232,7 +230,6 @@ bases: - base.yaml environments: test: ---- releases: - name: zipkin chart: stable/zipkin @@ -284,7 +281,6 @@ environments: missingFileHandler: %s values: - %s ---- releases: - name: zipkin chart: stable/zipkin @@ -397,7 +393,7 @@ helmfiles: "/path/to/helmfile.d/a1.yaml": ` environments: prod: ---- + releases: - name: zipkin chart: stable/zipkin @@ -803,44 +799,41 @@ func runFilterSubHelmFilesTests(testcases []struct { func TestVisitDesiredStatesWithReleasesFiltered_EmbeddedNestedStateAdditionalEnvValues(t *testing.T) { files := map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` helmfiles: -- path: helmfile.d/a*.yaml.gotmpl +- path: helmfile.d/a*.yaml values: - env.values.yaml -- helmfile.d/b*.yaml.gotmpl -- path: helmfile.d/c*.yaml.gotmpl +- helmfile.d/b*.yaml +- path: helmfile.d/c*.yaml values: - env.values.yaml `, - "/path/to/helmfile.d/a1.yaml.gotmpl": ` + "/path/to/helmfile.d/a1.yaml": ` environments: default: values: - ns: INLINE_NS ---- releases: - name: foo chart: stable/zipkin namespace: {{ .Environment.Values.ns }} `, - "/path/to/helmfile.d/b.yaml.gotmpl": ` + "/path/to/helmfile.d/b.yaml": ` environments: default: values: - ns: INLINE_NS ---- releases: - name: bar chart: stable/grafana namespace: {{ .Environment.Values.ns }} `, - "/path/to/helmfile.d/c.yaml.gotmpl": ` + "/path/to/helmfile.d/c.yaml": ` environments: default: values: - ns: INLINE_NS ---- releases: - name: baz chart: stable/envoy @@ -858,7 +851,7 @@ ns: INLINE_NS Namespace: "", Selectors: []string{}, Env: "default", - FileOrDir: "/path/to/helmfile.yaml.gotmpl", + FileOrDir: "/path/to/helmfile.yaml", }, files) expectNoCallsToHelm(app) @@ -984,7 +977,7 @@ releases: func TestVisitDesiredStatesWithReleasesFiltered_EnvironmentValueOverrides(t *testing.T) { files := map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` environments: default: values: @@ -1028,7 +1021,7 @@ bar: "bar1" Env: "default", ValuesFiles: []string{"overrides.yaml"}, Set: map[string]any{"bar": "bar2", "baz": "baz1"}, - FileOrDir: "helmfile.yaml.gotmpl", + FileOrDir: "helmfile.yaml", }, files) expectNoCallsToHelm(app) @@ -1082,7 +1075,7 @@ func TestVisitDesiredStatesWithReleasesFiltered_StateValueOverrides(t *testing.T testcase := testcases[i] t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) { files := map[string]string{ - "/path/to/helmfile.yaml.gotmpl": fmt.Sprintf(` + "/path/to/helmfile.yaml": fmt.Sprintf(` # The top-level "values" are "base" values has inherited to state values with the lowest priority. # The lowest priority results in environment-specific values to override values defined in the base. values: @@ -1149,7 +1142,7 @@ x: Env: testcase.env, ValuesFiles: []string{"overrides.yaml"}, Set: map[string]any{"x": map[string]any{"hoge": "hoge_set", "fuga": "fuga_set"}}, - FileOrDir: "helmfile.yaml.gotmpl", + FileOrDir: "helmfile.yaml", }, files) expectNoCallsToHelm(app) @@ -1449,7 +1442,7 @@ func TestLoadDesiredStateFromYaml_DuplicateReleaseName(t *testing.T) { } func TestLoadDesiredStateFromYaml_Bases(t *testing.T) { - yamlFile := "/path/to/yaml/file.gotmpl" + yamlFile := "/path/to/yaml/file" yamlContent := `bases: - ../base.yaml - ../base.gotmpl @@ -1520,7 +1513,7 @@ helmDefaults: } func TestLoadDesiredStateFromYaml_MultiPartTemplate(t *testing.T) { - yamlFile := "/path/to/yaml/file.gotmpl" + yamlFile := "/path/to/yaml/file" yamlContent := `bases: - ../base.yaml --- @@ -1726,7 +1719,7 @@ foo: FOO } func TestLoadDesiredStateFromYaml_MultiPartTemplate_WithNonDefaultEnv(t *testing.T) { - yamlFile := "/path/to/yaml/file.gotmpl" + yamlFile := "/path/to/yaml/file" yamlContent := `bases: - ../base.yaml --- @@ -1817,7 +1810,7 @@ helmDefaults: } func TestLoadDesiredStateFromYaml_MultiPartTemplate_WithReverse(t *testing.T) { - yamlFile := "/path/to/yaml/file.gotmpl" + yamlFile := "/path/to/yaml/file" yamlContent := ` {{ readFile "templates.yaml" }} @@ -1875,7 +1868,7 @@ releases: // See https://github.com/roboll/helmfile/issues/615 func TestLoadDesiredStateFromYaml_MultiPartTemplate_NoMergeArrayInEnvVal(t *testing.T) { - statePath := "/path/to/helmfile.yaml.gotmpl" + statePath := "/path/to/helmfile.yaml" stateContent := ` environments: default: @@ -1940,7 +1933,7 @@ func TestLoadDesiredStateFromYaml_MultiPartTemplate_MergeMapsVariousKeys(t *test } for i := range testcases { tc := testcases[i] - statePath := "/path/to/helmfile.yaml.gotmpl" + statePath := "/path/to/helmfile.yaml" stateContent := ` environments: default: @@ -2057,7 +2050,7 @@ releases: } for i := range testcases { tc := testcases[i] - statePath := "/path/to/helmfile.yaml.gotmpl" + statePath := "/path/to/helmfile.yaml" stateContent := fmt.Sprintf(tc.state, tc.expr) testFs := testhelper.NewTestFs(map[string]string{ statePath: stateContent, @@ -2220,6 +2213,9 @@ type applyConfig struct { cascade string values []string + // TODO: Remove this function once Helmfile v0.x + retainValuesFiles bool + set []string validate bool skipCleanup bool @@ -2380,6 +2376,11 @@ func (a applyConfig) Logger() *zap.SugaredLogger { return a.logger } +// TODO: Remove this function once Helmfile v0.x +func (a applyConfig) RetainValuesFiles() bool { + return a.retainValuesFiles +} + func (a applyConfig) SkipDiffOnInstall() bool { return a.skipDiffOnInstall } @@ -3428,7 +3429,7 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -3481,9 +3482,9 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: false, includeNeeds: true, }, - error: `in ./helmfile.yaml.gotmpl: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, + error: `in ./helmfile.yaml: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -3522,7 +3523,7 @@ releases: name: "upgrades with bad selector", loc: location(), files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -3773,6 +3774,41 @@ releases: `, "/path/to/charts/example/Chart.yaml": `foo: FOO`, }, + log: `processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: repositories: + 2: - name: bitnami + 3: url: https://charts.bitnami.com/bitnami/ + 4: releases: + 5: - name: example + 6: chart: /path/to/charts/example + 7: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: repositories: + 2: - name: bitnami + 3: url: https://charts.bitnami.com/bitnami/ + 4: releases: + 5: - name: example + 6: chart: /path/to/charts/example + 7: + +merged environment: &{default map[] map[]} +There are no repositories defined in your helmfile.yaml. +This means helmfile cannot update your dependencies or create a lock file. +See https://github.com/roboll/helmfile/issues/878 for more information. +changing working directory back to "/path/to" +`, charts: []string{"/path/to/charts/example"}, }, } @@ -3820,9 +3856,8 @@ releases: if tc.log != "" { actual := bs.String() + assert.Equal(t, tc.log, actual) - } else { - assertLogEqualsToSnapshot(t, bs.String()) } }) } @@ -3927,7 +3962,6 @@ environments: values: - myrelease2: enabled: false ---- releases: - name: myrelease1 chart: mychart1 @@ -3991,7 +4025,7 @@ func testSetStringValuesTemplate(t *testing.T, goccyGoYaml bool) { }) files := map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` releases: - name: zipkin chart: stable/zipkin @@ -4015,7 +4049,7 @@ releases: OverrideKubeContext: "default", Logger: newAppTestLogger(), Env: "default", - FileOrDir: "helmfile.yaml.gotmpl", + FileOrDir: "helmfile.yaml", }, files) expectNoCallsToHelm(app) @@ -4059,7 +4093,7 @@ func testSetValuesTemplate(t *testing.T, goccyGoYaml bool) { }) files := map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` releases: - name: zipkin chart: stable/zipkin @@ -4087,7 +4121,7 @@ releases: OverrideKubeContext: "default", Logger: newAppTestLogger(), Env: "default", - FileOrDir: "helmfile.yaml.gotmpl", + FileOrDir: "helmfile.yaml", }, files) expectNoCallsToHelm(app) diff --git a/pkg/app/config.go b/pkg/app/config.go index 1a46c4cc..b6e3a064 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -25,6 +25,15 @@ type ConfigProvider interface { loggingConfig } +// TODO: Remove this function once Helmfile v0.x +type DeprecatedChartsConfigProvider interface { + Values() []string + + concurrencyConfig + loggingConfig + IncludeTransitiveNeeds() bool +} + type DepsConfigProvider interface { Args() string SkipRepos() bool @@ -72,6 +81,9 @@ type ApplyConfigProvider interface { Context() int DiffOutput() string + // TODO: Remove this function once Helmfile v0.x + RetainValuesFiles() bool + Validate() bool SkipCleanup() bool SkipDiffOnInstall() bool @@ -154,6 +166,23 @@ type DiffConfigProvider interface { valuesControlMode } +// TODO: Remove this function once Helmfile v0.x +type DeleteConfigProvider interface { + Args() string + Cascade() string + + Purge() bool + SkipDeps() bool + SkipRefresh() bool + SkipCharts() bool + DeleteWait() bool + DeleteTimeout() int + + interactive + loggingConfig + concurrencyConfig +} + type DestroyConfigProvider interface { Args() string Cascade() string diff --git a/pkg/app/constants.go b/pkg/app/constants.go index 38d06ce0..63fd3af7 100644 --- a/pkg/app/constants.go +++ b/pkg/app/constants.go @@ -8,7 +8,10 @@ import ( ) const ( - DefaultHelmfile = "helmfile.yaml" + DefaultHelmfile = "helmfile.yaml" + // TODO: Remove this function once Helmfile v0.x + DeprecatedHelmfile = "charts.yaml" + DefaultHelmfileDirectory = "helmfile.d" ExperimentalSelectorExplicit = "explicit-selector-inheritance" // value to remove default selector inheritance to sub-helmfiles and use the explicit one ) diff --git a/pkg/app/desired_state_file_loader.go b/pkg/app/desired_state_file_loader.go index 90986023..76fa81f5 100644 --- a/pkg/app/desired_state_file_loader.go +++ b/pkg/app/desired_state_file_loader.go @@ -15,6 +15,7 @@ import ( "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/policy" "github.com/helmfile/helmfile/pkg/remote" + "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" ) @@ -161,14 +162,21 @@ func (a *desiredStateLoader) underlying() *state.StateCreator { func (a *desiredStateLoader) rawLoad(yaml []byte, baseDir, file string, evaluateBases bool, env, overrodeEnv *environment.Environment) (*state.HelmState, error) { var st *state.HelmState var err error - merged, err := env.Merge(overrodeEnv) - if err != nil { - return nil, err - } + if runtime.V1Mode { + st, err = a.underlying().ParseAndLoad(yaml, baseDir, file, a.env, false, evaluateBases, env, overrodeEnv) + if err != nil { + return nil, err + } + } else { + merged, err := env.Merge(overrodeEnv) + if err != nil { + return nil, err + } - st, err = a.underlying().ParseAndLoad(yaml, baseDir, file, a.env, false, evaluateBases, merged, nil) - if err != nil { - return nil, err + st, err = a.underlying().ParseAndLoad(yaml, baseDir, file, a.env, false, evaluateBases, merged, nil) + if err != nil { + return nil, err + } } helmfiles, err := st.ExpandedHelmfiles() if err != nil { @@ -199,7 +207,7 @@ func (ld *desiredStateLoader) load(env, overrodeEnv *environment.Environment, ba var rawContent []byte - if filepath.Ext(filename) == ".gotmpl" { + if filepath.Ext(filename) == ".gotmpl" || !runtime.V1Mode { var yamlBuf *bytes.Buffer var err error diff --git a/pkg/app/diff_nokubectx_test.go b/pkg/app/diff_nokubectx_test.go index 9b2d36c8..cd0239ad 100644 --- a/pkg/app/diff_nokubectx_test.go +++ b/pkg/app/diff_nokubectx_test.go @@ -636,7 +636,7 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau loc: location(), flags: flags{skipNeeds: true}, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -677,7 +677,7 @@ releases: loc: location(), flags: flags{skipNeeds: false}, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -711,14 +711,81 @@ releases: upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - error: `in ./helmfile.yaml.gotmpl: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, + error: `in ./helmfile.yaml: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, + log: `processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +err: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies +changing working directory back to "/path/to" +`, }, { // see https://github.com/roboll/helmfile/issues/919#issuecomment-549831747 name: "upgrades with bad selector", loc: location(), files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -750,6 +817,72 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, + log: `processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml + +changing working directory back to "/path/to" +`, }, // // error cases @@ -779,6 +912,46 @@ releases: deleted: []exectest.Release{}, concurrency: 1, error: `in ./helmfile.yaml: release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"?`, + log: `processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: namespace: ns1 + 4: chart: mychart3 + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: namespace: ns1 + 4: chart: mychart3 + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + +merged environment: &{default map[] map[]} +WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs +2 release(s) found in helmfile.yaml + +err: release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? +changing working directory back to "/path/to" +`, }, } diff --git a/pkg/app/diff_test.go b/pkg/app/diff_test.go index 372badff..f1987143 100644 --- a/pkg/app/diff_test.go +++ b/pkg/app/diff_test.go @@ -931,7 +931,7 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau loc: location(), flags: flags{skipNeeds: true}, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -972,7 +972,7 @@ releases: loc: location(), flags: flags{skipNeeds: false}, files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -1006,14 +1006,81 @@ releases: upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - error: `in ./helmfile.yaml.gotmpl: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, + error: `in ./helmfile.yaml: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, + log: `processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml + +err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies +changing working directory back to "/path/to" +`, }, { // see https://github.com/roboll/helmfile/issues/919#issuecomment-549831747 name: "upgrades with bad selector", loc: location(), files: map[string]string{ - "/path/to/helmfile.yaml.gotmpl": ` + "/path/to/helmfile.yaml": ` {{ $mark := "a" }} releases: @@ -1045,6 +1112,72 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, + log: `processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml + +changing working directory back to "/path/to" +`, }, // // error cases @@ -1075,6 +1208,43 @@ releases: deleted: []exectest.Release{}, concurrency: 1, error: `in ./helmfile.yaml: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, + log: `processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart3 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart3 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: + +merged environment: &{default map[] map[]} +1 release(s) matching name=foo found in helmfile.yaml + +err: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies +changing working directory back to "/path/to" +`, }, { name: "non-existent release in needs", @@ -1101,6 +1271,46 @@ releases: deleted: []exectest.Release{}, concurrency: 1, error: `in ./helmfile.yaml: release(s) "default//foo" depend(s) on an undefined release "default//bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"?`, + log: `processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: namespace: ns1 + 4: chart: mychart3 + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: namespace: ns1 + 4: chart: mychart3 + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + +merged environment: &{default map[] map[]} +WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs +2 release(s) found in helmfile.yaml + +err: release(s) "default//foo" depend(s) on an undefined release "default//bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? +changing working directory back to "/path/to" +`, }, } diff --git a/pkg/app/run.go b/pkg/app/run.go index f01c2d4d..e29fce2a 100644 --- a/pkg/app/run.go +++ b/pkg/app/run.go @@ -135,6 +135,17 @@ func (r *Run) Repos(c ReposConfigProvider) error { return r.ctx.SyncReposOnce(r.state, r.helm) } +// TODO: Remove this function once Helmfile v0.x +func (r *Run) DeprecatedSyncCharts(c DeprecatedChartsConfigProvider) []error { + st := r.state + helm := r.helm + + affectedReleases := state.AffectedReleases{} + errs := st.SyncReleases(&affectedReleases, helm, c.Values(), c.Concurrency()) + affectedReleases.DisplayAffectedReleases(c.Logger()) + return errs +} + func (r *Run) diff(triggerCleanupEvent bool, detailedExitCode bool, c DiffConfigProvider, diffOpts *state.DiffOpts) (*string, map[string]state.ReleaseSpec, map[string]state.ReleaseSpec, []error) { st := r.state helm := r.helm diff --git a/pkg/app/testdata/app_diff_test/bad_selector b/pkg/app/testdata/app_diff_test/bad_selector index 7d03a1f4..9a3ab785 100644 --- a/pkg/app/testdata/app_diff_test/bad_selector +++ b/pkg/app/testdata/app_diff_test/bad_selector @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 0 release(s) matching app=test_non_existent found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default b/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default index ab53c3ad..a0113f65 100644 --- a/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default +++ b/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs b/pkg/app/testdata/app_diff_test/include-needs index 58fa9cab..892b6ea0 100644 --- a/pkg/app/testdata/app_diff_test/include-needs +++ b/pkg/app/testdata/app_diff_test/include-needs @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need index 368cb842..9154b011 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need index 0396ca0d..84a81703 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need index 368cb842..9154b011 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need index 0396ca0d..84a81703 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-transitive-needs b/pkg/app/testdata/app_diff_test/include-transitive-needs index 58fa9cab..892b6ea0 100644 --- a/pkg/app/testdata/app_diff_test/include-transitive-needs +++ b/pkg/app/testdata/app_diff_test/include-transitive-needs @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need index 0396ca0d..84a81703 100644 --- a/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/no-hooks b/pkg/app/testdata/app_diff_test/no-hooks index ceb99f63..67ee2936 100644 --- a/pkg/app/testdata/app_diff_test/no-hooks +++ b/pkg/app/testdata/app_diff_test/no-hooks @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release b/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release index 66b419fa..a695f222 100644 --- a/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release +++ b/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: a + 3: chart: incubator/raw + 4: namespace: default + 5: - name: b + 6: chart: incubator/raw + 7: namespace: default + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: a + 3: chart: incubator/raw + 4: namespace: default + 5: - name: b + 6: chart: incubator/raw + 7: namespace: default + 8: + merged environment: &{default map[] map[]} 1 release(s) matching name=a found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release b/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release index 58d51e49..a0a45f09 100644 --- a/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release +++ b/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: a + 3: chart: incubator/raw + 4: installed: false + 5: namespace: default + 6: - name: b + 7: chart: incubator/raw + 8: namespace: default + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: a + 3: chart: incubator/raw + 4: installed: false + 5: namespace: default + 6: - name: b + 7: chart: incubator/raw + 8: namespace: default + 9: + merged environment: &{default map[] map[]} 1 release(s) matching name=a found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/skip-needs b/pkg/app/testdata/app_diff_test/skip-needs index ceb99f63..67ee2936 100644 --- a/pkg/app/testdata/app_diff_test/skip-needs +++ b/pkg/app/testdata/app_diff_test/skip-needs @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/bar b/pkg/app/testdata/app_diff_test_1/bar index 26cad101..cf0a0bb0 100644 --- a/pkg/app/testdata/app_diff_test_1/bar +++ b/pkg/app/testdata/app_diff_test_1/bar @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: namespace: ns1 + 5: needs: + 6: - ns2/bar + 7: - name: bar + 8: chart: mychart2 + 9: namespace: ns2 +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: namespace: ns1 + 5: needs: + 6: - ns2/bar + 7: - name: bar + 8: chart: mychart2 + 9: namespace: ns2 +10: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo index 96453206..993d71e8 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: installed: false + 7: needs: + 8: - foo + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: installed: false + 7: needs: + 8: - foo + 9: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar index 9afd557d..febbbebd 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs index 820af517..1ac8c2d3 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs index b79babf5..2cae2be4 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo index ba652995..db62f332 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: needs: + 6: - foo + 7: - name: foo + 8: chart: mychart1 + 9: installed: false +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: needs: + 6: - foo + 7: - name: foo + 8: chart: mychart1 + 9: installed: false +10: + merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar index a3469c08..7268940e 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: installed: false + 8: needs: + 9: - bar +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: installed: false + 8: needs: + 9: - bar +10: + merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo index fb673733..b10dd133 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: installed: false + 5: - name: bar + 6: chart: mychart2 + 7: needs: + 8: - foo + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: installed: false + 5: - name: bar + 6: chart: mychart2 + 7: needs: + 8: - foo + 9: + merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs index 3456f070..c34f7b46 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: installed: false + 5: - name: bar + 6: chart: mychart2 + 7: needs: + 8: - foo + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: installed: false + 5: - name: bar + 6: chart: mychart2 + 7: needs: + 8: - foo + 9: + merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs index 13f06734..60002d0c 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: installed: false + 5: - name: bar + 6: chart: mychart2 + 7: needs: + 8: - foo + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: installed: false + 5: - name: bar + 6: chart: mychart2 + 7: needs: + 8: - foo + 9: + merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar index cb7b8fc7..f2e49270 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo b/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo index bb76a70e..2c4a2fef 100644 --- a/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo +++ b/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: namespace: ns2 + 5: needs: + 6: - ns1/foo + 7: - name: foo + 8: chart: mychart1 + 9: namespace: ns1 +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: namespace: ns2 + 5: needs: + 6: - ns1/foo + 7: - name: foo + 8: chart: mychart1 + 9: namespace: ns1 +10: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/install b/pkg/app/testdata/app_diff_test_1/install index ba4ef00f..bc8c2830 100644 --- a/pkg/app/testdata/app_diff_test_1/install +++ b/pkg/app/testdata/app_diff_test_1/install @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: mychart3 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: - name: bar + 9: chart: mychart2 +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: mychart3 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: - name: bar + 9: chart: mychart2 +10: + merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs b/pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs deleted file mode 100644 index 60dead90..00000000 --- a/pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs +++ /dev/null @@ -1,8 +0,0 @@ -processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -merged environment: &{default map[] map[]} -WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs -2 release(s) found in helmfile.yaml - -err: release(s) "default//foo" depend(s) on an undefined release "default//bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? -changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/noop b/pkg/app/testdata/app_diff_test_1/noop index beea0d82..5c2c5753 100644 --- a/pkg/app/testdata/app_diff_test_1/noop +++ b/pkg/app/testdata/app_diff_test_1/noop @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/smoke b/pkg/app/testdata/app_diff_test_1/smoke index b11d65d4..3cd9cd5a 100644 --- a/pkg/app/testdata/app_diff_test_1/smoke +++ b/pkg/app/testdata/app_diff_test_1/smoke @@ -1,5 +1,126 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/unselected_release_in_needs b/pkg/app/testdata/app_diff_test_1/unselected_release_in_needs deleted file mode 100644 index d82f9d50..00000000 --- a/pkg/app/testdata/app_diff_test_1/unselected_release_in_needs +++ /dev/null @@ -1,7 +0,0 @@ -processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -merged environment: &{default map[] map[]} -1 release(s) matching name=foo found in helmfile.yaml - -err: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies -changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo index e1ade01c..20aae345 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: needs: + 7: - foo + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: needs: + 7: - foo + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override index 37ac4517..f78c15ac 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: needs: + 7: - foo + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: needs: + 7: - foo + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar index 4add017f..b87bccce 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override index f54ab275..e0d964ad 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override index 358aaaf6..bbdfc3d1 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: helmDefaults: + 2: kubeContext: hello/world + 3: releases: + 4: - name: bar + 5: chart: mychart2 + 6: - name: foo + 7: chart: mychart1 + 8: needs: + 9: - bar +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: helmDefaults: + 2: kubeContext: hello/world + 3: releases: + 4: - name: bar + 5: chart: mychart2 + 6: - name: foo + 7: chart: mychart1 + 8: needs: + 9: - bar +10: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context b/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context index 1ca95228..e6383a6a 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context @@ -1,5 +1,42 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: releaseA + 3: chart: mychart1 + 4: namespace: namespaceA + 5: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster + 6: - name: releaseB + 7: chart: mychart2 + 8: namespace: namespaceA + 9: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster +10: needs: +11: - arn:aws:eks:us-east-1:1234567890:cluster/myekscluster/namespaceA/releaseA +12: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: releaseA + 3: chart: mychart1 + 4: namespace: namespaceA + 5: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster + 6: - name: releaseB + 7: chart: mychart2 + 8: namespace: namespaceA + 9: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster +10: needs: +11: - arn:aws:eks:us-east-1:1234567890:cluster/myekscluster/namespaceA/releaseA +12: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar b/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar index 26cad101..cf0a0bb0 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: namespace: ns1 + 5: needs: + 6: - ns2/bar + 7: - name: bar + 8: chart: mychart2 + 9: namespace: ns2 +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: namespace: ns1 + 5: needs: + 6: - ns2/bar + 7: - name: bar + 8: chart: mychart2 + 9: namespace: ns2 +10: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector b/pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector deleted file mode 100644 index 8e3e99cf..00000000 --- a/pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector +++ /dev/null @@ -1,33 +0,0 @@ -processing file "helmfile.yaml.gotmpl" in directory "." -changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl - -changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false b/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false deleted file mode 100644 index f29aa140..00000000 --- a/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false +++ /dev/null @@ -1,34 +0,0 @@ -processing file "helmfile.yaml.gotmpl" in directory "." -changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl - -err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies -changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true b/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true index 6e264062..427f901f 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true +++ b/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml processing 2 groups of releases in this order: GROUP RELEASES diff --git a/pkg/app/testdata/app_diff_test_2/bar b/pkg/app/testdata/app_diff_test_2/bar index f5cea33b..91ee7d7e 100644 --- a/pkg/app/testdata/app_diff_test_2/bar +++ b/pkg/app/testdata/app_diff_test_2/bar @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: namespace: ns1 + 5: needs: + 6: - ns2/bar + 7: - name: bar + 8: chart: mychart2 + 9: namespace: ns2 +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: namespace: ns1 + 5: needs: + 6: - ns2/bar + 7: - name: bar + 8: chart: mychart2 + 9: namespace: ns2 +10: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo index 7867ad46..4e540849 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: installed: false + 7: needs: + 8: - foo + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: installed: false + 7: needs: + 8: - foo + 9: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar index e0bc8dea..f3a1cd0f 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs index f08db1b7..451d5aba 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs index 03791661..a54fce36 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo index ba652995..db62f332 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: needs: + 6: - foo + 7: - name: foo + 8: chart: mychart1 + 9: installed: false +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: needs: + 6: - foo + 7: - name: foo + 8: chart: mychart1 + 9: installed: false +10: + merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar index a3469c08..7268940e 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: installed: false + 8: needs: + 9: - bar +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: installed: false + 5: - name: foo + 6: chart: mychart1 + 7: installed: false + 8: needs: + 9: - bar +10: + merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo index 52e9c63e..f4cc93bd 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: installed: false + 5: - name: bar + 6: chart: mychart2 + 7: needs: + 8: - foo + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: installed: false + 5: - name: bar + 6: chart: mychart2 + 7: needs: + 8: - foo + 9: + merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar index b897150f..8c2fb60c 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/foo b/pkg/app/testdata/app_diff_test_2/foo index 2638d8ff..7cdf3a2e 100644 --- a/pkg/app/testdata/app_diff_test_2/foo +++ b/pkg/app/testdata/app_diff_test_2/foo @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: namespace: ns2 + 5: needs: + 6: - ns1/foo + 7: - name: foo + 8: chart: mychart1 + 9: namespace: ns1 +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: namespace: ns2 + 5: needs: + 6: - ns1/foo + 7: - name: foo + 8: chart: mychart1 + 9: namespace: ns1 +10: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo b/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo index 2638d8ff..7cdf3a2e 100644 --- a/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo +++ b/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: namespace: ns2 + 5: needs: + 6: - ns1/foo + 7: - name: foo + 8: chart: mychart1 + 9: namespace: ns1 +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: namespace: ns2 + 5: needs: + 6: - ns1/foo + 7: - name: foo + 8: chart: mychart1 + 9: namespace: ns1 +10: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/install b/pkg/app/testdata/app_diff_test_2/install index 55f951fc..95591b3a 100644 --- a/pkg/app/testdata/app_diff_test_2/install +++ b/pkg/app/testdata/app_diff_test_2/install @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: mychart3 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: - name: bar + 9: chart: mychart2 +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: mychart3 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: - name: bar + 9: chart: mychart2 +10: + merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs b/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs deleted file mode 100644 index 34aaed69..00000000 --- a/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs +++ /dev/null @@ -1,8 +0,0 @@ -processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -merged environment: &{default map[] map[]} -WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs -2 release(s) found in helmfile.yaml - -err: release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? -changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_2/noop b/pkg/app/testdata/app_diff_test_2/noop index 3f843e50..4bb79c7f 100644 --- a/pkg/app/testdata/app_diff_test_2/noop +++ b/pkg/app/testdata/app_diff_test_2/noop @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/smoke b/pkg/app/testdata/app_diff_test_2/smoke index 52de3861..fcaf8164 100644 --- a/pkg/app/testdata/app_diff_test_2/smoke +++ b/pkg/app/testdata/app_diff_test_2/smoke @@ -1,5 +1,126 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo index 2239c0c5..6b69bd73 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: needs: + 7: - foo + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: needs: + 7: - foo + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override index 0841c62e..87892d12 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: needs: + 7: - foo + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: chart: mychart2 + 6: needs: + 7: - foo + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar index 0a5c6018..7ea553a7 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override index 686dabf1..49bb72fe 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: mychart2 + 4: - name: foo + 5: chart: mychart1 + 6: needs: + 7: - bar + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector b/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector deleted file mode 100644 index 8e3e99cf..00000000 --- a/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector +++ /dev/null @@ -1,33 +0,0 @@ -processing file "helmfile.yaml.gotmpl" in directory "." -changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl - -changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false deleted file mode 100644 index 3be41c57..00000000 --- a/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false +++ /dev/null @@ -1,34 +0,0 @@ -processing file "helmfile.yaml.gotmpl" in directory "." -changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl - -err: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies -changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true index e61b33e8..926e26fd 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true +++ b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml processing 2 groups of releases in this order: GROUP RELEASES diff --git a/pkg/app/testdata/app_lint_test/bad_selector b/pkg/app/testdata/app_lint_test/bad_selector index 7d03a1f4..9a3ab785 100644 --- a/pkg/app/testdata/app_lint_test/bad_selector +++ b/pkg/app/testdata/app_lint_test/bad_selector @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 0 release(s) matching app=test_non_existent found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default b/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default index ab53c3ad..a0113f65 100644 --- a/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default +++ b/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs b/pkg/app/testdata/app_lint_test/include-needs index 58fa9cab..892b6ea0 100644 --- a/pkg/app/testdata/app_lint_test/include-needs +++ b/pkg/app/testdata/app_lint_test/include-needs @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need index 54c6135e..ad93dd62 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need index f2ad0c8f..c51d74d8 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need index 54c6135e..ad93dd62 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need index f2ad0c8f..c51d74d8 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-transitive-needs b/pkg/app/testdata/app_lint_test/include-transitive-needs index 58fa9cab..892b6ea0 100644 --- a/pkg/app/testdata/app_lint_test/include-transitive-needs +++ b/pkg/app/testdata/app_lint_test/include-transitive-needs @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need index f2ad0c8f..c51d74d8 100644 --- a/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/skip-needs b/pkg/app/testdata/app_lint_test/skip-needs index ceb99f63..67ee2936 100644 --- a/pkg/app/testdata/app_lint_test/skip-needs +++ b/pkg/app/testdata/app_lint_test/skip-needs @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_list_test/default_environment_includes_all_releases b/pkg/app/testdata/app_list_test/default_environment_includes_all_releases index 75efff96..5dd4bb4a 100644 --- a/pkg/app/testdata/app_list_test/default_environment_includes_all_releases +++ b/pkg/app/testdata/app_list_test/default_environment_includes_all_releases @@ -1,16 +1,221 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile_1.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile_1.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_1.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + merged environment: &{default map[] map[]} +first-pass rendering starting for "helmfile_1.yaml.part.1": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile_1.yaml.part.1": + 0: releases: + 1: - name: logging + 2: chart: incubator/raw + 3: namespace: kube-system + 4: + 5: - name: kubernetes-external-secrets + 6: chart: incubator/raw + 7: namespace: kube-system + 8: needs: + 9: - kube-system/logging +10: +11: - name: external-secrets +12: chart: incubator/raw +13: namespace: default +14: labels: +15: app: test +16: needs: +17: - kube-system/kubernetes-external-secrets +18: +19: - name: my-release +20: chart: incubator/raw +21: namespace: default +22: labels: +23: app: test +24: needs: +25: - default/external-secrets +26: +27: +28: # Disabled releases are treated as missing +29: - name: disabled +30: chart: incubator/raw +31: namespace: kube-system +32: installed: false +33: +34: - name: test2 +35: chart: incubator/raw +36: needs: +37: - kube-system/disabled +38: +39: - name: test3 +40: chart: incubator/raw +41: needs: +42: - test2 +43: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile_1.yaml.part.1": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_1.yaml.part.1": + 0: releases: + 1: - name: logging + 2: chart: incubator/raw + 3: namespace: kube-system + 4: + 5: - name: kubernetes-external-secrets + 6: chart: incubator/raw + 7: namespace: kube-system + 8: needs: + 9: - kube-system/logging +10: +11: - name: external-secrets +12: chart: incubator/raw +13: namespace: default +14: labels: +15: app: test +16: needs: +17: - kube-system/kubernetes-external-secrets +18: +19: - name: my-release +20: chart: incubator/raw +21: namespace: default +22: labels: +23: app: test +24: needs: +25: - default/external-secrets +26: +27: +28: # Disabled releases are treated as missing +29: - name: disabled +30: chart: incubator/raw +31: namespace: kube-system +32: installed: false +33: +34: - name: test2 +35: chart: incubator/raw +36: needs: +37: - kube-system/disabled +38: +39: - name: test3 +40: chart: incubator/raw +41: needs: +42: - test2 +43: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile_2.yaml.part.0": + 0: + 1: environments: + 2: test: {} + 3: shared: {} + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile_2.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_2.yaml.part.0": + 0: + 1: environments: + 2: test: {} + 3: shared: {} + merged environment: &{default map[] map[]} +first-pass rendering starting for "helmfile_2.yaml.part.1": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile_2.yaml.part.1": + 0: repositories: + 1: - name: bitnami + 2: url: https://charts.bitnami.com/bitnami + 3: + 4: releases: + 5: - name: cache + 6: namespace: my-app + 7: chart: bitnami/redis + 8: version: 17.0.7 + 9: labels: +10: app: test +11: +12: - name: database +13: namespace: my-app +14: chart: bitnami/postgres +15: version: 11.6.22 +16: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile_2.yaml.part.1": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_2.yaml.part.1": + 0: repositories: + 1: - name: bitnami + 2: url: https://charts.bitnami.com/bitnami + 3: + 4: releases: + 5: - name: cache + 6: namespace: my-app + 7: chart: bitnami/redis + 8: version: 17.0.7 + 9: labels: +10: app: test +11: +12: - name: database +13: namespace: my-app +14: chart: bitnami/postgres +15: version: 11.6.22 +16: + merged environment: &{default map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile_3.yaml.part.0": + 0: + 1: releases: + 2: - name: global + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile_3.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_3.yaml.part.0": + 0: + 1: releases: + 2: - name: global + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + merged environment: &{default map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/fail_on_unknown_environment b/pkg/app/testdata/app_list_test/fail_on_unknown_environment index 9eccd0c3..040b2ebe 100644 --- a/pkg/app/testdata/app_list_test/fail_on_unknown_environment +++ b/pkg/app/testdata/app_list_test/fail_on_unknown_environment @@ -1,13 +1,74 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{staging map[] map[]}, overrode= +first-pass uses: &{staging map[] map[]} +first-pass rendering output of "helmfile_1.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + +first-pass produced: &{staging map[] map[]} +first-pass rendering result of "helmfile_1.yaml.part.0": {staging map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_1.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + merged environment: &{staging map[] map[]} changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{staging map[] map[]}, overrode= +first-pass uses: &{staging map[] map[]} +first-pass rendering output of "helmfile_2.yaml.part.0": + 0: + 1: environments: + 2: test: {} + 3: shared: {} + +first-pass produced: &{staging map[] map[]} +first-pass rendering result of "helmfile_2.yaml.part.0": {staging map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_2.yaml.part.0": + 0: + 1: environments: + 2: test: {} + 3: shared: {} + merged environment: &{staging map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{staging map[] map[]}, overrode= +first-pass uses: &{staging map[] map[]} +first-pass rendering output of "helmfile_3.yaml.part.0": + 0: + 1: releases: + 2: - name: global + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + +first-pass produced: &{staging map[] map[]} +first-pass rendering result of "helmfile_3.yaml.part.0": {staging map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_3.yaml.part.0": + 0: + 1: releases: + 2: - name: global + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + merged environment: &{staging map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files index b161220b..8350e3c8 100644 --- a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files +++ b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files @@ -1,16 +1,221 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{shared map[] map[]}, overrode= +first-pass uses: &{shared map[] map[]} +first-pass rendering output of "helmfile_1.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + +first-pass produced: &{shared map[] map[]} +first-pass rendering result of "helmfile_1.yaml.part.0": {shared map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_1.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + merged environment: &{shared map[] map[]} +first-pass rendering starting for "helmfile_1.yaml.part.1": inherited=&{shared map[] map[]}, overrode= +first-pass uses: &{shared map[] map[]} +first-pass rendering output of "helmfile_1.yaml.part.1": + 0: releases: + 1: - name: logging + 2: chart: incubator/raw + 3: namespace: kube-system + 4: + 5: - name: kubernetes-external-secrets + 6: chart: incubator/raw + 7: namespace: kube-system + 8: needs: + 9: - kube-system/logging +10: +11: - name: external-secrets +12: chart: incubator/raw +13: namespace: default +14: labels: +15: app: test +16: needs: +17: - kube-system/kubernetes-external-secrets +18: +19: - name: my-release +20: chart: incubator/raw +21: namespace: default +22: labels: +23: app: test +24: needs: +25: - default/external-secrets +26: +27: +28: # Disabled releases are treated as missing +29: - name: disabled +30: chart: incubator/raw +31: namespace: kube-system +32: installed: false +33: +34: - name: test2 +35: chart: incubator/raw +36: needs: +37: - kube-system/disabled +38: +39: - name: test3 +40: chart: incubator/raw +41: needs: +42: - test2 +43: + +first-pass produced: &{shared map[] map[]} +first-pass rendering result of "helmfile_1.yaml.part.1": {shared map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_1.yaml.part.1": + 0: releases: + 1: - name: logging + 2: chart: incubator/raw + 3: namespace: kube-system + 4: + 5: - name: kubernetes-external-secrets + 6: chart: incubator/raw + 7: namespace: kube-system + 8: needs: + 9: - kube-system/logging +10: +11: - name: external-secrets +12: chart: incubator/raw +13: namespace: default +14: labels: +15: app: test +16: needs: +17: - kube-system/kubernetes-external-secrets +18: +19: - name: my-release +20: chart: incubator/raw +21: namespace: default +22: labels: +23: app: test +24: needs: +25: - default/external-secrets +26: +27: +28: # Disabled releases are treated as missing +29: - name: disabled +30: chart: incubator/raw +31: namespace: kube-system +32: installed: false +33: +34: - name: test2 +35: chart: incubator/raw +36: needs: +37: - kube-system/disabled +38: +39: - name: test3 +40: chart: incubator/raw +41: needs: +42: - test2 +43: + merged environment: &{shared map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{shared map[] map[]}, overrode= +first-pass uses: &{shared map[] map[]} +first-pass rendering output of "helmfile_2.yaml.part.0": + 0: + 1: environments: + 2: test: {} + 3: shared: {} + +first-pass produced: &{shared map[] map[]} +first-pass rendering result of "helmfile_2.yaml.part.0": {shared map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_2.yaml.part.0": + 0: + 1: environments: + 2: test: {} + 3: shared: {} + merged environment: &{shared map[] map[]} +first-pass rendering starting for "helmfile_2.yaml.part.1": inherited=&{shared map[] map[]}, overrode= +first-pass uses: &{shared map[] map[]} +first-pass rendering output of "helmfile_2.yaml.part.1": + 0: repositories: + 1: - name: bitnami + 2: url: https://charts.bitnami.com/bitnami + 3: + 4: releases: + 5: - name: cache + 6: namespace: my-app + 7: chart: bitnami/redis + 8: version: 17.0.7 + 9: labels: +10: app: test +11: +12: - name: database +13: namespace: my-app +14: chart: bitnami/postgres +15: version: 11.6.22 +16: + +first-pass produced: &{shared map[] map[]} +first-pass rendering result of "helmfile_2.yaml.part.1": {shared map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_2.yaml.part.1": + 0: repositories: + 1: - name: bitnami + 2: url: https://charts.bitnami.com/bitnami + 3: + 4: releases: + 5: - name: cache + 6: namespace: my-app + 7: chart: bitnami/redis + 8: version: 17.0.7 + 9: labels: +10: app: test +11: +12: - name: database +13: namespace: my-app +14: chart: bitnami/postgres +15: version: 11.6.22 +16: + merged environment: &{shared map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{shared map[] map[]}, overrode= +first-pass uses: &{shared map[] map[]} +first-pass rendering output of "helmfile_3.yaml.part.0": + 0: + 1: releases: + 2: - name: global + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + +first-pass produced: &{shared map[] map[]} +first-pass rendering result of "helmfile_3.yaml.part.0": {shared map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_3.yaml.part.0": + 0: + 1: releases: + 2: - name: global + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + merged environment: &{shared map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only index a214f41f..927ee649 100644 --- a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only +++ b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only @@ -1,14 +1,120 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{test map[] map[]}, overrode= +first-pass uses: &{test map[] map[]} +first-pass rendering output of "helmfile_1.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + +first-pass produced: &{test map[] map[]} +first-pass rendering result of "helmfile_1.yaml.part.0": {test map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_1.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + merged environment: &{test map[] map[]} changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{test map[] map[]}, overrode= +first-pass uses: &{test map[] map[]} +first-pass rendering output of "helmfile_2.yaml.part.0": + 0: + 1: environments: + 2: test: {} + 3: shared: {} + +first-pass produced: &{test map[] map[]} +first-pass rendering result of "helmfile_2.yaml.part.0": {test map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_2.yaml.part.0": + 0: + 1: environments: + 2: test: {} + 3: shared: {} + merged environment: &{test map[] map[]} +first-pass rendering starting for "helmfile_2.yaml.part.1": inherited=&{test map[] map[]}, overrode= +first-pass uses: &{test map[] map[]} +first-pass rendering output of "helmfile_2.yaml.part.1": + 0: repositories: + 1: - name: bitnami + 2: url: https://charts.bitnami.com/bitnami + 3: + 4: releases: + 5: - name: cache + 6: namespace: my-app + 7: chart: bitnami/redis + 8: version: 17.0.7 + 9: labels: +10: app: test +11: +12: - name: database +13: namespace: my-app +14: chart: bitnami/postgres +15: version: 11.6.22 +16: + +first-pass produced: &{test map[] map[]} +first-pass rendering result of "helmfile_2.yaml.part.1": {test map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_2.yaml.part.1": + 0: repositories: + 1: - name: bitnami + 2: url: https://charts.bitnami.com/bitnami + 3: + 4: releases: + 5: - name: cache + 6: namespace: my-app + 7: chart: bitnami/redis + 8: version: 17.0.7 + 9: labels: +10: app: test +11: +12: - name: database +13: namespace: my-app +14: chart: bitnami/postgres +15: version: 11.6.22 +16: + merged environment: &{test map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{test map[] map[]}, overrode= +first-pass uses: &{test map[] map[]} +first-pass rendering output of "helmfile_3.yaml.part.0": + 0: + 1: releases: + 2: - name: global + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + +first-pass produced: &{test map[] map[]} +first-pass rendering result of "helmfile_3.yaml.part.0": {test map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_3.yaml.part.0": + 0: + 1: releases: + 2: - name: global + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + merged environment: &{test map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment b/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment index 41a5321e..4d332f10 100644 --- a/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment +++ b/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment @@ -1,15 +1,175 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{development map[] map[]}, overrode= +first-pass uses: &{development map[] map[]} +first-pass rendering output of "helmfile_1.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + +first-pass produced: &{development map[] map[]} +first-pass rendering result of "helmfile_1.yaml.part.0": {development map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_1.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + merged environment: &{development map[] map[]} +first-pass rendering starting for "helmfile_1.yaml.part.1": inherited=&{development map[] map[]}, overrode= +first-pass uses: &{development map[] map[]} +first-pass rendering output of "helmfile_1.yaml.part.1": + 0: releases: + 1: - name: logging + 2: chart: incubator/raw + 3: namespace: kube-system + 4: + 5: - name: kubernetes-external-secrets + 6: chart: incubator/raw + 7: namespace: kube-system + 8: needs: + 9: - kube-system/logging +10: +11: - name: external-secrets +12: chart: incubator/raw +13: namespace: default +14: labels: +15: app: test +16: needs: +17: - kube-system/kubernetes-external-secrets +18: +19: - name: my-release +20: chart: incubator/raw +21: namespace: default +22: labels: +23: app: test +24: needs: +25: - default/external-secrets +26: +27: +28: # Disabled releases are treated as missing +29: - name: disabled +30: chart: incubator/raw +31: namespace: kube-system +32: installed: false +33: +34: - name: test2 +35: chart: incubator/raw +36: needs: +37: - kube-system/disabled +38: +39: - name: test3 +40: chart: incubator/raw +41: needs: +42: - test2 +43: + +first-pass produced: &{development map[] map[]} +first-pass rendering result of "helmfile_1.yaml.part.1": {development map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_1.yaml.part.1": + 0: releases: + 1: - name: logging + 2: chart: incubator/raw + 3: namespace: kube-system + 4: + 5: - name: kubernetes-external-secrets + 6: chart: incubator/raw + 7: namespace: kube-system + 8: needs: + 9: - kube-system/logging +10: +11: - name: external-secrets +12: chart: incubator/raw +13: namespace: default +14: labels: +15: app: test +16: needs: +17: - kube-system/kubernetes-external-secrets +18: +19: - name: my-release +20: chart: incubator/raw +21: namespace: default +22: labels: +23: app: test +24: needs: +25: - default/external-secrets +26: +27: +28: # Disabled releases are treated as missing +29: - name: disabled +30: chart: incubator/raw +31: namespace: kube-system +32: installed: false +33: +34: - name: test2 +35: chart: incubator/raw +36: needs: +37: - kube-system/disabled +38: +39: - name: test3 +40: chart: incubator/raw +41: needs: +42: - test2 +43: + merged environment: &{development map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{development map[] map[]}, overrode= +first-pass uses: &{development map[] map[]} +first-pass rendering output of "helmfile_2.yaml.part.0": + 0: + 1: environments: + 2: test: {} + 3: shared: {} + +first-pass produced: &{development map[] map[]} +first-pass rendering result of "helmfile_2.yaml.part.0": {development map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_2.yaml.part.0": + 0: + 1: environments: + 2: test: {} + 3: shared: {} + merged environment: &{development map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" +first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{development map[] map[]}, overrode= +first-pass uses: &{development map[] map[]} +first-pass rendering output of "helmfile_3.yaml.part.0": + 0: + 1: releases: + 2: - name: global + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + +first-pass produced: &{development map[] map[]} +first-pass rendering result of "helmfile_3.yaml.part.0": {development map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile_3.yaml.part.0": + 0: + 1: releases: + 2: - name: global + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + merged environment: &{development map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_template_test/bad_selector b/pkg/app/testdata/app_template_test/bad_selector index 7d03a1f4..9a3ab785 100644 --- a/pkg/app/testdata/app_template_test/bad_selector +++ b/pkg/app/testdata/app_template_test/bad_selector @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 0 release(s) matching app=test_non_existent found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default b/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default index ab53c3ad..a0113f65 100644 --- a/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default +++ b/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs b/pkg/app/testdata/app_template_test/include-needs index 58fa9cab..892b6ea0 100644 --- a/pkg/app/testdata/app_template_test/include-needs +++ b/pkg/app/testdata/app_template_test/include-needs @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need index ebd01666..5b8e896d 100644 --- a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need index 29ad4ef5..47172c7e 100644 --- a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need index ebd01666..5b8e896d 100644 --- a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need index 29ad4ef5..47172c7e 100644 --- a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-transitive-needs b/pkg/app/testdata/app_template_test/include-transitive-needs index 58fa9cab..892b6ea0 100644 --- a/pkg/app/testdata/app_template_test/include-transitive-needs +++ b/pkg/app/testdata/app_template_test/include-transitive-needs @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need index 29ad4ef5..47172c7e 100644 --- a/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/no-hooks b/pkg/app/testdata/app_template_test/no-hooks index ceb99f63..67ee2936 100644 --- a/pkg/app/testdata/app_template_test/no-hooks +++ b/pkg/app/testdata/app_template_test/no-hooks @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/show-only b/pkg/app/testdata/app_template_test/show-only index e528ba50..16806eb9 100644 --- a/pkg/app/testdata/app_template_test/show-only +++ b/pkg/app/testdata/app_template_test/show-only @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=logging found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/skip-needs b/pkg/app/testdata/app_template_test/skip-needs index ceb99f63..67ee2936 100644 --- a/pkg/app/testdata/app_template_test/skip-needs +++ b/pkg/app/testdata/app_template_test/skip-needs @@ -1,5 +1,106 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: logging + 3: chart: incubator/raw + 4: namespace: kube-system + 5: + 6: - name: kubernetes-external-secrets + 7: chart: incubator/raw + 8: namespace: kube-system + 9: needs: +10: - kube-system/logging +11: +12: - name: external-secrets +13: chart: incubator/raw +14: namespace: default +15: labels: +16: app: test +17: needs: +18: - kube-system/kubernetes-external-secrets +19: +20: - name: my-release +21: chart: incubator/raw +22: namespace: default +23: labels: +24: app: test +25: needs: +26: - default/external-secrets +27: +28: +29: # Disabled releases are treated as missing +30: - name: disabled +31: chart: incubator/raw +32: namespace: kube-system +33: installed: false +34: +35: - name: test2 +36: chart: incubator/raw +37: needs: +38: - kube-system/disabled +39: +40: - name: test3 +41: chart: incubator/raw +42: needs: +43: - test2 +44: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order b/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order index 6b1135ae..c64a76f9 100644 --- a/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order +++ b/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order @@ -1,6 +1,120 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: environments: + 2: development: {} + 3: shared: {} + merged environment: &{default map[] map[]} +first-pass rendering starting for "helmfile.yaml.part.1": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.1": + 0: releases: + 1: - name: logging + 2: chart: incubator/raw + 3: namespace: kube-system + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: needs: + 8: - kube-system/logging + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: # Disabled releases are treated as missing +24: - name: disabled +25: chart: incubator/raw +26: namespace: kube-system +27: installed: false +28: - name: test2 +29: chart: incubator/raw +30: needs: +31: - kube-system/disabled +32: - name: test3 +33: chart: incubator/raw +34: needs: +35: - test2 +36: - name: test4 +37: chart: incubator/raw +38: needs: +39: - test2 +40: - test3 +41: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.1": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.1": + 0: releases: + 1: - name: logging + 2: chart: incubator/raw + 3: namespace: kube-system + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: needs: + 8: - kube-system/logging + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: # Disabled releases are treated as missing +24: - name: disabled +25: chart: incubator/raw +26: namespace: kube-system +27: installed: false +28: - name: test2 +29: chart: incubator/raw +30: needs: +31: - kube-system/disabled +32: - name: test3 +33: chart: incubator/raw +34: needs: +35: - test2 +36: - name: test4 +37: chart: incubator/raw +38: needs: +39: - test2 +40: - test3 +41: + merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log index 7999740f..3ee09b86 100644 --- a/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: stable/mychart1 + 4: - name: bar + 5: chart: stable/mychart2 + 6: installed: false + 7: needs: + 8: - foo + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: stable/mychart1 + 4: - name: bar + 5: chart: stable/mychart2 + 6: installed: false + 7: needs: + 8: - foo + 9: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log index 63e24849..02d852b3 100644 --- a/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: installed: false + 5: - name: foo + 6: chart: stable/mychart1 + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: installed: false + 5: - name: foo + 6: chart: stable/mychart1 + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log index f640c818..f3377bd1 100644 --- a/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: installed: false + 5: needs: + 6: - foo + 7: - name: foo + 8: chart: stable/mychart1 + 9: installed: false +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: installed: false + 5: needs: + 6: - foo + 7: - name: foo + 8: chart: stable/mychart1 + 9: installed: false +10: + merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log index 2b2c48cd..e8850438 100644 --- a/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: installed: false + 5: - name: foo + 6: chart: stable/mychart1 + 7: installed: false + 8: needs: + 9: - bar +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: installed: false + 5: - name: foo + 6: chart: stable/mychart1 + 7: installed: false + 8: needs: + 9: - bar +10: + merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log index 1dc037b0..25bb1eef 100644 --- a/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: stable/mychart1 + 4: installed: false + 5: - name: bar + 6: chart: stable/mychart2 + 7: needs: + 8: - foo + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: stable/mychart1 + 4: installed: false + 5: - name: bar + 6: chart: stable/mychart2 + 7: needs: + 8: - foo + 9: + merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log index 3f58a191..38541ce3 100644 --- a/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: - name: foo + 5: chart: stable/mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: - name: foo + 5: chart: stable/mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/duplicate_releases/log b/pkg/app/testdata/testapply/duplicate_releases/log index ccdf69e2..5a14f57e 100644 --- a/pkg/app/testdata/testapply/duplicate_releases/log +++ b/pkg/app/testdata/testapply/duplicate_releases/log @@ -1,5 +1,44 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: namespace: ns1 + 4: chart: mychart3 + 5: - name: foo + 6: chart: mychart2 + 7: needs: + 8: - ns1/bar + 9: - name: foo +10: chart: mychart1 +11: needs: +12: - ns1/bar +13: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: namespace: ns1 + 4: chart: mychart3 + 5: - name: foo + 6: chart: mychart2 + 7: needs: + 8: - ns1/bar + 9: - name: foo +10: chart: mychart1 +11: needs: +12: - ns1/bar +13: + merged environment: &{default map[] map[]} err: found 2 duplicate releases with ID "default//foo" changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log b/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log index 3dd5b87b..223b67ad 100644 --- a/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log +++ b/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log @@ -1,5 +1,32 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: - name: foo_notFound + 5: chart: stable/mychart1 + 6: installed: false + 7: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: - name: foo_notFound + 5: chart: stable/mychart1 + 6: installed: false + 7: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log b/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log index c5e811d4..e309756f 100644 --- a/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log +++ b/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log @@ -1,5 +1,44 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: stable/mychart3 + 4: disableValidationOnInstall: true + 5: - name: foo + 6: chart: stable/mychart1 + 7: disableValidationOnInstall: true + 8: needs: + 9: - bar +10: - name: bar +11: chart: stable/mychart2 +12: disableValidation: true +13: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: stable/mychart3 + 4: disableValidationOnInstall: true + 5: - name: foo + 6: chart: stable/mychart1 + 7: disableValidationOnInstall: true + 8: needs: + 9: - bar +10: - name: bar +11: chart: stable/mychart2 +12: disableValidation: true +13: + merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log b/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log index c5e811d4..e309756f 100644 --- a/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log +++ b/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log @@ -1,5 +1,44 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: stable/mychart3 + 4: disableValidationOnInstall: true + 5: - name: foo + 6: chart: stable/mychart1 + 7: disableValidationOnInstall: true + 8: needs: + 9: - bar +10: - name: bar +11: chart: stable/mychart2 +12: disableValidation: true +13: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: stable/mychart3 + 4: disableValidationOnInstall: true + 5: - name: foo + 6: chart: stable/mychart1 + 7: disableValidationOnInstall: true + 8: needs: + 9: - bar +10: - name: bar +11: chart: stable/mychart2 +12: disableValidation: true +13: + merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/install/log b/pkg/app/testdata/testapply/install/log index b6766a38..288e71a2 100644 --- a/pkg/app/testdata/testapply/install/log +++ b/pkg/app/testdata/testapply/install/log @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: stable/mychart3 + 4: - name: foo + 5: chart: stable/mychart1 + 6: needs: + 7: - bar + 8: - name: bar + 9: chart: stable/mychart2 +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: chart: stable/mychart3 + 4: - name: foo + 5: chart: stable/mychart1 + 6: needs: + 7: - bar + 8: - name: bar + 9: chart: stable/mychart2 +10: + merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/non-existent_release_in_needs/log b/pkg/app/testdata/testapply/non-existent_release_in_needs/log index 714f59fa..b13e2b15 100644 --- a/pkg/app/testdata/testapply/non-existent_release_in_needs/log +++ b/pkg/app/testdata/testapply/non-existent_release_in_needs/log @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: namespace: ns1 + 4: chart: mychart3 + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - ns1/bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: baz + 3: namespace: ns1 + 4: chart: mychart3 + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - ns1/bar + 9: + merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/noop/log b/pkg/app/testdata/testapply/noop/log index b9eb3b39..89669abf 100644 --- a/pkg/app/testdata/testapply/noop/log +++ b/pkg/app/testdata/testapply/noop/log @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: - name: foo + 5: chart: stable/mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: - name: foo + 5: chart: stable/mychart1 + 6: installed: false + 7: needs: + 8: - bar + 9: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/smoke/log b/pkg/app/testdata/testapply/smoke/log index 5f674219..6ef2316c 100644 --- a/pkg/app/testdata/testapply/smoke/log +++ b/pkg/app/testdata/testapply/smoke/log @@ -1,5 +1,126 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/unselected_release_in_needs/log b/pkg/app/testdata/testapply/unselected_release_in_needs/log index 9f34aacd..fd4dca83 100644 --- a/pkg/app/testdata/testapply/unselected_release_in_needs/log +++ b/pkg/app/testdata/testapply/unselected_release_in_needs/log @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: namespace: ns1 + 4: chart: mychart3 + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - ns1/bar + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: namespace: ns1 + 4: chart: mychart3 + 5: - name: foo + 6: chart: mychart1 + 7: needs: + 8: - ns1/bar + 9: + merged environment: &{default map[] map[]} 1 release(s) matching name=foo found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log index c216b8ee..75c0b4ce 100644 --- a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log +++ b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: stable/mychart1 + 4: - name: bar + 5: chart: stable/mychart2 + 6: needs: + 7: - foo + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: stable/mychart1 + 4: - name: bar + 5: chart: stable/mychart2 + 6: needs: + 7: - foo + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log index 06004eba..0854f6f9 100644 --- a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: stable/mychart1 + 4: - name: bar + 5: chart: stable/mychart2 + 6: needs: + 7: - foo + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: stable/mychart1 + 4: - name: bar + 5: chart: stable/mychart2 + 6: needs: + 7: - foo + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log index f590244f..18819452 100644 --- a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log +++ b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: - name: foo + 5: chart: stable/mychart1 + 6: needs: + 7: - bar + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: - name: foo + 5: chart: stable/mychart1 + 6: needs: + 7: - bar + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log index 53a2991c..38252743 100644 --- a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log @@ -1,5 +1,34 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: - name: foo + 5: chart: stable/mychart1 + 6: needs: + 7: - bar + 8: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: - name: foo + 5: chart: stable/mychart1 + 6: needs: + 7: - bar + 8: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log b/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log index 13ca7ee3..6f129537 100644 --- a/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log +++ b/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: stable/mychart1 + 4: namespace: ns1 + 5: needs: + 6: - ns2/bar + 7: - name: bar + 8: chart: stable/mychart2 + 9: namespace: ns2 +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: stable/mychart1 + 4: namespace: ns1 + 5: needs: + 6: - ns2/bar + 7: - name: bar + 8: chart: stable/mychart2 + 9: namespace: ns2 +10: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log b/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log index 5e96b8fd..76015ef1 100644 --- a/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log +++ b/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log @@ -1,5 +1,38 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: namespace: ns2 + 5: needs: + 6: - ns1/foo + 7: - name: foo + 8: chart: stable/mychart1 + 9: namespace: ns1 +10: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: bar + 3: chart: stable/mychart2 + 4: namespace: ns2 + 5: needs: + 6: - ns1/foo + 7: - name: foo + 8: chart: stable/mychart1 + 9: namespace: ns1 +10: + merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrades_with_bad_selector/log b/pkg/app/testdata/testapply/upgrades_with_bad_selector/log index 8e3e99cf..37de515c 100644 --- a/pkg/app/testdata/testapply/upgrades_with_bad_selector/log +++ b/pkg/app/testdata/testapply/upgrades_with_bad_selector/log @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,6 +60,6 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl +0 release(s) matching app=test_non_existent found in helmfile.yaml changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log index f29aa140..b286816b 100644 --- a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log +++ b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log index 65c32bd4..d1a55a90 100644 --- a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log +++ b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/bad_--selector/log b/pkg/app/testdata/testapply_2/bad_--selector/log deleted file mode 100644 index 8e3e99cf..00000000 --- a/pkg/app/testdata/testapply_2/bad_--selector/log +++ /dev/null @@ -1,33 +0,0 @@ -processing file "helmfile.yaml.gotmpl" in directory "." -changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl - -changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log b/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log index 6e400919..dfde4bdd 100644 --- a/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log +++ b/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log @@ -1,5 +1,52 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: incubator/raw + 4: namespace: default + 5: labels: + 6: app: test + 7: component: raw + 8: index: '1' + 9: +10: - name: foo +11: chart: incubator/raw +12: namespace: default +13: labels: +14: app: test +15: component: raw +16: index: '2' +17: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: incubator/raw + 4: namespace: default + 5: labels: + 6: app: test + 7: component: raw + 8: index: '1' + 9: +10: - name: foo +11: chart: incubator/raw +12: namespace: default +13: labels: +14: app: test +15: component: raw +16: index: '2' +17: + merged environment: &{default map[] map[]} 1 release(s) matching index=1 found in helmfile.yaml diff --git a/pkg/app/testdata/testapply_2/include-transitive-needs=true/log b/pkg/app/testdata/testapply_2/include-transitive-needs=true/log index c4fd365e..80fe6952 100644 --- a/pkg/app/testdata/testapply_2/include-transitive-needs=true/log +++ b/pkg/app/testdata/testapply_2/include-transitive-needs=true/log @@ -1,7 +1,35 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: serviceA + 5: chart: my/chart + 6: needs: + 7: - serviceB + 8: + 9: - name: serviceB +10: chart: my/chart +11: needs: +12: - serviceC +13: +14: - name: serviceC +15: chart: my/chart +16: +17: - name: serviceD +18: chart: my/chart +19: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -24,7 +52,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 19: merged environment: &{default map[] map[]} -3 release(s) matching name=serviceA found in helmfile.yaml.gotmpl +3 release(s) matching name=serviceA found in helmfile.yaml Affected releases are: serviceA (my/chart) UPDATED diff --git a/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log b/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log index 2c735ba9..ed58f794 100644 --- a/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log +++ b/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log @@ -1,5 +1,44 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: incubator/raw + 4: namespace: default + 5: labels: + 6: app: test + 7: + 8: - name: bar + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: incubator/raw + 4: namespace: default + 5: labels: + 6: app: test + 7: + 8: - name: bar + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: + merged environment: &{default map[] map[]} 0 release(s) matching app=foo found in helmfile.yaml diff --git a/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log b/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log index 07be1f75..5aad40b2 100644 --- a/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log +++ b/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log @@ -1,5 +1,56 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: incubator/raw + 4: namespace: default + 5: labels: + 6: app: test + 7: + 8: - name: bar + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: build +13: +14: - name: bar +15: chart: incubator/raw +16: namespace: default +17: labels: +18: app: test +19: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: foo + 3: chart: incubator/raw + 4: namespace: default + 5: labels: + 6: app: test + 7: + 8: - name: bar + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: build +13: +14: - name: bar +15: chart: incubator/raw +16: namespace: default +17: labels: +18: app: test +19: + merged environment: &{default map[] map[]} 1 release(s) matching name=foo found in helmfile.yaml diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log index fad7bdc6..0350fb56 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log index 370e8e8e..2f1fa1f1 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log index 9998300d..c6a51f3c 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log @@ -1,7 +1,40 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -30,7 +63,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log index 6bf96b12..13ca54dd 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log @@ -1,7 +1,40 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -30,7 +63,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_2/skip-needs=true/log b/pkg/app/testdata/testapply_2/skip-needs=true/log index 65c32bd4..d1a55a90 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=true/log +++ b/pkg/app/testdata/testapply_2/skip-needs=true/log @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log b/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log index 1f4c6d72..26968c1e 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/bad_--selector/log b/pkg/app/testdata/testapply_3/bad_--selector/log deleted file mode 100644 index 8e3e99cf..00000000 --- a/pkg/app/testdata/testapply_3/bad_--selector/log +++ /dev/null @@ -1,33 +0,0 @@ -processing file "helmfile.yaml.gotmpl" in directory "." -changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl - -changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log index 4245010a..4193cc54 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log index 653c58c2..1b585c5b 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log index 0996c8a0..84e5b96e 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log @@ -1,7 +1,40 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -30,7 +63,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log index 222191de..3018fdfa 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log @@ -1,7 +1,40 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: installed: false + 8: + 9: - name: external-secrets +10: chart: incubator/raw +11: namespace: default +12: labels: +13: app: test +14: needs: +15: - kube-system/kubernetes-external-secrets +16: +17: - name: my-release +18: chart: incubator/raw +19: namespace: default +20: labels: +21: app: test +22: needs: +23: - default/external-secrets +24: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -30,7 +63,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_3/skip-needs=true/log b/pkg/app/testdata/testapply_3/skip-needs=true/log index 3a82d6bc..e7200b58 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=true/log +++ b/pkg/app/testdata/testapply_3/skip-needs=true/log @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log b/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log index 3c4dc215..0bb7dd4b 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log @@ -1,7 +1,39 @@ -processing file "helmfile.yaml.gotmpl" in directory "." +processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= -rendering result of "helmfile.yaml.gotmpl.part.0": +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": 0: 1: 2: @@ -28,7 +60,7 @@ rendering result of "helmfile.yaml.gotmpl.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml.gotmpl +2 release(s) matching app=test found in helmfile.yaml Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testdeps/smoke/log b/pkg/app/testdata/testdeps/smoke/log deleted file mode 100644 index 52b88928..00000000 --- a/pkg/app/testdata/testdeps/smoke/log +++ /dev/null @@ -1,7 +0,0 @@ -processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -merged environment: &{default map[] map[]} -There are no repositories defined in your helmfile.yaml. -This means helmfile cannot update your dependencies or create a lock file. -See https://github.com/roboll/helmfile/issues/878 for more information. -changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log b/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log index a7eea328..e7d3352d 100644 --- a/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log +++ b/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: backend-v1 + 3: chart: charts/backend + 4: installed: false + 5: - name: frontend-v1 + 6: chart: charts/frontend + 7: needs: + 8: - backend-v1 + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: backend-v1 + 3: chart: charts/backend + 4: installed: false + 5: - name: frontend-v1 + 6: chart: charts/frontend + 7: needs: + 8: - backend-v1 + 9: + merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log b/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log index 0ca9be54..b3ea59f1 100644 --- a/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log +++ b/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log @@ -1,5 +1,126 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 1 release(s) matching name=logging found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy/helm3/log b/pkg/app/testdata/testdestroy/helm3/log index a7eea328..e7d3352d 100644 --- a/pkg/app/testdata/testdestroy/helm3/log +++ b/pkg/app/testdata/testdestroy/helm3/log @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: backend-v1 + 3: chart: charts/backend + 4: installed: false + 5: - name: frontend-v1 + 6: chart: charts/frontend + 7: needs: + 8: - backend-v1 + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: backend-v1 + 3: chart: charts/backend + 4: installed: false + 5: - name: frontend-v1 + 6: chart: charts/frontend + 7: needs: + 8: - backend-v1 + 9: + merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy/smoke/log b/pkg/app/testdata/testdestroy/smoke/log index 16e0f5c9..13a80305 100644 --- a/pkg/app/testdata/testdestroy/smoke/log +++ b/pkg/app/testdata/testdestroy/smoke/log @@ -1,5 +1,126 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log b/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log index eebb5cdb..04b1ccfd 100644 --- a/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log +++ b/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: backend-v1 + 3: chart: charts/backend + 4: installed: false + 5: - name: frontend-v1 + 6: chart: charts/frontend + 7: needs: + 8: - backend-v1 + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: backend-v1 + 3: chart: charts/backend + 4: installed: false + 5: - name: frontend-v1 + 6: chart: charts/frontend + 7: needs: + 8: - backend-v1 + 9: + merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log b/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log index 6ac05319..917d5684 100644 --- a/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log +++ b/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log @@ -1,5 +1,126 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 1 release(s) matching name=logging found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/helm3/log b/pkg/app/testdata/testdestroy_2/helm3/log index eebb5cdb..04b1ccfd 100644 --- a/pkg/app/testdata/testdestroy_2/helm3/log +++ b/pkg/app/testdata/testdestroy_2/helm3/log @@ -1,5 +1,36 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: backend-v1 + 3: chart: charts/backend + 4: installed: false + 5: - name: frontend-v1 + 6: chart: charts/frontend + 7: needs: + 8: - backend-v1 + 9: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: backend-v1 + 3: chart: charts/backend + 4: installed: false + 5: - name: frontend-v1 + 6: chart: charts/frontend + 7: needs: + 8: - backend-v1 + 9: + merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/smoke/log b/pkg/app/testdata/testdestroy_2/smoke/log index 6d07d6be..d4fd6427 100644 --- a/pkg/app/testdata/testdestroy_2/smoke/log +++ b/pkg/app/testdata/testdestroy_2/smoke/log @@ -1,5 +1,126 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" +first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= +first-pass uses: &{default map[] map[]} +first-pass rendering output of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + +first-pass produced: &{default map[] map[]} +first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} +vals: +map[] +defaultVals:[] +second-pass rendering result of "helmfile.yaml.part.0": + 0: + 1: releases: + 2: - name: database + 3: chart: charts/mysql + 4: needs: + 5: - logging + 6: - name: frontend-v1 + 7: chart: charts/frontend + 8: installed: false + 9: needs: +10: - servicemesh +11: - logging +12: - backend-v1 +13: - name: frontend-v2 +14: chart: charts/frontend +15: needs: +16: - servicemesh +17: - logging +18: - backend-v2 +19: - name: frontend-v3 +20: chart: charts/frontend +21: needs: +22: - servicemesh +23: - logging +24: - backend-v2 +25: - name: backend-v1 +26: chart: charts/backend +27: installed: false +28: needs: +29: - servicemesh +30: - logging +31: - database +32: - anotherbackend +33: - name: backend-v2 +34: chart: charts/backend +35: needs: +36: - servicemesh +37: - logging +38: - database +39: - anotherbackend +40: - name: anotherbackend +41: chart: charts/anotherbackend +42: needs: +43: - servicemesh +44: - logging +45: - database +46: - name: servicemesh +47: chart: charts/istio +48: needs: +49: - logging +50: - name: logging +51: chart: charts/fluent-bit +52: - name: front-proxy +53: chart: stable/envoy +54: + merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log b/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log deleted file mode 100644 index db8157f1..00000000 --- a/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log +++ /dev/null @@ -1,10 +0,0 @@ -rendering starting for "": inherited=&{default map[] map[]}, overrode= -rendering result of "": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: - 6: - diff --git a/pkg/app/two_pass_renderer.go b/pkg/app/two_pass_renderer.go index fddfa307..221af0c2 100644 --- a/pkg/app/two_pass_renderer.go +++ b/pkg/app/two_pass_renderer.go @@ -5,7 +5,10 @@ import ( "fmt" "strings" + "github.com/google/go-cmp/cmp" + "github.com/helmfile/helmfile/pkg/environment" + "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" "github.com/helmfile/helmfile/pkg/tmpl" ) @@ -19,6 +22,52 @@ func prependLineNumbers(text string) string { return buf.String() } +func (r *desiredStateLoader) renderPrestate(firstPassEnv, overrode *environment.Environment, baseDir, filename string, content []byte) (*environment.Environment, *state.HelmState) { + initEnv, err := firstPassEnv.Merge(overrode) + if err != nil { + return firstPassEnv, nil + } + tmplData := state.NewEnvironmentTemplateData(*initEnv, r.namespace, map[string]any{}) + firstPassRenderer := tmpl.NewFirstPassRenderer(baseDir, tmplData) + + // parse as much as we can, tolerate errors, this is a preparse + yamlBuf, err := firstPassRenderer.RenderTemplateContentToBuffer(content) + if err != nil { + r.logger.Debugf("first-pass rendering input of \"%s\":\n%s", filename, prependLineNumbers(string(content))) + r.logger.Debugf("template syntax error: %v", err) + if yamlBuf == nil { // we have a template syntax error, let the second parse report + return firstPassEnv, nil + } + } + yamlData := yamlBuf.String() + r.logger.Debugf("first-pass rendering output of \"%s\":\n%s", filename, prependLineNumbers(yamlData)) + + // Work-around for https://github.com/golang/go/issues/24963 + sanitized := strings.ReplaceAll(yamlData, "", "") + + if len(yamlData) != len(sanitized) { + msg := "replaced s to workaround https://github.com/golang/go/issues/24963 to address https://github.com/roboll/helmfile/issues/553:\n%s" + r.logger.Debugf(msg, cmp.Diff(yamlData, sanitized)) + } + + c := r.underlying() + c.Strict = false + // create preliminary state, as we may have an environment. Tolerate errors. + prestate, err := c.ParseAndLoad([]byte(sanitized), baseDir, filename, r.env, true, false, firstPassEnv, overrode) + if err != nil { + if _, ok := err.(*state.StateLoadError); ok { + r.logger.Debugf("could not deduce `environment:` block, configuring only .Environment.Name. error: %v", err) + } + r.logger.Debugf("error in first-pass rendering: result of \"%s\":\n%s", filename, prependLineNumbers(yamlBuf.String())) + } + + if prestate != nil { + firstPassEnv = &prestate.Env + } + + return firstPassEnv, prestate +} + type RenderOpts struct { } @@ -33,7 +82,11 @@ func (r *desiredStateLoader) renderTemplatesToYamlWithEnv(baseDir, filename stri } func (r *desiredStateLoader) twoPassRenderTemplateToYaml(inherited, overrode *environment.Environment, baseDir, filename string, content []byte) (*bytes.Buffer, error) { + // try a first pass render. This will always succeed, but can produce a limited env var phase string + if !runtime.V1Mode { + phase = "first-pass " + } r.logger.Debugf("%srendering starting for \"%s\": inherited=%v, overrode=%v", phase, filename, inherited, overrode) initEnv, err := inherited.Merge(nil) @@ -47,14 +100,53 @@ func (r *desiredStateLoader) twoPassRenderTemplateToYaml(inherited, overrode *en vals map[string]any ) - finalEnv, err = initEnv.Merge(overrode) - if err != nil { - return nil, err - } + if runtime.V1Mode { + var err error - vals, err = finalEnv.GetMergedValues() - if err != nil { - return nil, err + finalEnv, err = initEnv.Merge(overrode) + if err != nil { + return nil, err + } + + vals, err = finalEnv.GetMergedValues() + if err != nil { + return nil, err + } + } else { + r.logger.Debugf("first-pass uses: %v", initEnv) + firstPassEnv, err := initEnv.Merge(nil) + if err != nil { + return nil, err + } + renderedEnv, prestate := r.renderPrestate(firstPassEnv, overrode, baseDir, filename, content) + + r.logger.Debugf("first-pass produced: %v", renderedEnv) + + mergedEnv, err := inherited.Merge(renderedEnv) + if err != nil { + return nil, err + } + + mergedEnv, err = mergedEnv.Merge(overrode) + if err != nil { + return nil, err + } + + r.logger.Debugf("first-pass rendering result of \"%s\": %v", filename, *mergedEnv) + + renderingPhase = "second-pass " + + finalEnv = mergedEnv + + vals, err = finalEnv.GetMergedValues() + if err != nil { + return nil, err + } + + if prestate != nil { + prestate.Env = *mergedEnv + r.logger.Debugf("vals:\n%v\ndefaultVals:%v", vals, prestate.DefaultValues) + } } tmplData := state.NewEnvironmentTemplateData(*finalEnv, r.namespace, vals) diff --git a/pkg/app/two_pass_renderer_test.go b/pkg/app/two_pass_renderer_test.go index 5190f9f6..fde1630f 100644 --- a/pkg/app/two_pass_renderer_test.go +++ b/pkg/app/two_pass_renderer_test.go @@ -7,6 +7,7 @@ import ( "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/remote" + "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" "github.com/helmfile/helmfile/pkg/testhelper" "github.com/helmfile/helmfile/pkg/yaml" @@ -67,6 +68,60 @@ releases: } } +func TestReadFromYaml_RenderTemplate(t *testing.T) { + defaultValuesYaml := ` +releaseName: "hello" +conditionalReleaseTag: "yes" +` + + yamlContent := []byte(` +environments: + staging: + values: + - default/values.yaml + production: + +releases: +- name: {{ .Environment.Values.releaseName }} + chart: mychart1 + +{{ if (eq .Environment.Values.conditionalReleaseTag "yes") }} +- name: conditionalRelease +{{ end }} + +`) + + files := map[string]string{ + "/path/to/default/values.yaml": defaultValuesYaml, + } + + r, _, _ := makeLoader(files, "staging") + // test the double rendering + yamlBuf, err := r.renderTemplatesToYaml("", "", yamlContent) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + var state state.HelmState + err = yaml.Unmarshal(yamlBuf.Bytes(), &state) + + if err != nil { + t.Errorf("unexpected error: %v", err) + } + + if len(state.Releases) != 2 { + t.Fatal("there should be 2 releases") + } + + if state.Releases[0].Name != "hello" { + t.Errorf("release name should be hello") + } + + if state.Releases[1].Name != "conditionalRelease" { + t.Error("conditional release should have been present") + } +} + func testReadFromYaml_RenderTemplateLog(t *testing.T) { t.Helper() @@ -110,7 +165,20 @@ releases: } func TestReadFromYaml_RenderTemplateLog(t *testing.T) { - testReadFromYaml_RenderTemplateLog(t) + v := runtime.V1Mode + t.Cleanup(func() { + runtime.V1Mode = v + }) + + t.Run("v0mode", func(t *testing.T) { + runtime.V1Mode = false + testReadFromYaml_RenderTemplateLog(t) + }) + + t.Run("v1mode", func(t *testing.T) { + runtime.V1Mode = true + testReadFromYaml_RenderTemplateLog(t) + }) } func TestReadFromYaml_RenderTemplateWithValuesReferenceError(t *testing.T) { @@ -143,6 +211,51 @@ releases: } } +// This test shows that a gotmpl reference will get rendered correctly +// even if the pre-render disables the readFile and exec functions. +// This does not apply to .gotmpl files, which is a nice side-effect. +func TestReadFromYaml_RenderTemplateWithGotmpl(t *testing.T) { + defaultValuesYamlGotmpl := ` +releaseName: {{ readFile "nonIgnoredFile" }} +` + + yamlContent := []byte(` +environments: + staging: + values: + - values.yaml.gotmpl + production: + +{{ if (eq .Environment.Values.releaseName "release-a") }} # line 8 +releases: +- name: a + chart: mychart1 +{{ end }} +`) + + files := map[string]string{ + "/path/to/nonIgnoredFile": `release-a`, + "/path/to/values.yaml.gotmpl": defaultValuesYamlGotmpl, + } + + r, _, _ := makeLoader(files, "staging") + rendered, _ := r.renderTemplatesToYaml("", "", yamlContent) + + var state state.HelmState + err := yaml.Unmarshal(rendered.Bytes(), &state) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + if len(state.Releases) != 1 { + t.Fatal("there should be 1 release") + } + + if state.Releases[0].Name != "a" { + t.Fatal("release should have been declared") + } +} + func TestReadFromYaml_RenderTemplateWithNamespace(t *testing.T) { yamlContent := []byte(`releases: - name: {{ .Namespace }}-myrelease diff --git a/pkg/config/apply.go b/pkg/config/apply.go index f3f0946f..4d67aa61 100644 --- a/pkg/config/apply.go +++ b/pkg/config/apply.go @@ -18,6 +18,10 @@ type ApplyOptions struct { DetailedExitcode bool // StripTrailingCR is true if trailing carriage returns should be stripped during diffing StripTrailingCR bool + // TODO: Remove this function once Helmfile v0.x + // DEPRECATED: Use skip-cleanup instead + RetainValuesFiles bool + // SkipCleanup is true if the cleanup of temporary values files should be skipped SkipCleanup bool // SkipCRDs is true if the CRDs should be skipped @@ -135,6 +139,12 @@ func (a *ApplyImpl) IncludeTransitiveNeeds() bool { return a.ApplyOptions.IncludeTransitiveNeeds } +// TODO: Remove this function once Helmfile v0.x +// RetainValuesFiles returns the retain values files. +func (a *ApplyImpl) RetainValuesFiles() bool { + return a.ApplyOptions.RetainValuesFiles +} + // ShowSecrets returns the show secrets. func (a *ApplyImpl) ShowSecrets() bool { return a.ApplyOptions.ShowSecrets diff --git a/pkg/config/charts.go b/pkg/config/charts.go new file mode 100644 index 00000000..859894bc --- /dev/null +++ b/pkg/config/charts.go @@ -0,0 +1,46 @@ +// TODO: Remove this function once Helmfile v0.x +package config + +// ChartsOptions is the options for the build command +type ChartsOptions struct { + // Set is the additional values to be merged into the helm command --set flag + Set []string + // Values is the additional value files to be merged into the helm command --values flag + Values []string + // Concurrency is the maximum number of concurrent helm processes to run, 0 is unlimited + Concurrency int +} + +// NewChartsOptions creates a new Apply +func NewChartsOptions() *ChartsOptions { + return &ChartsOptions{} +} + +// ChartsImpl is impl for applyOptions +type ChartsImpl struct { + *GlobalImpl + *ChartsOptions +} + +// NewChartsImpl creates a new ChartsImpl +func NewChartsImpl(g *GlobalImpl, b *ChartsOptions) *ChartsImpl { + return &ChartsImpl{ + GlobalImpl: g, + ChartsOptions: b, + } +} + +// Concurrency returns the concurrency +func (c *ChartsImpl) Concurrency() int { + return c.ChartsOptions.Concurrency +} + +// IncludeTransitiveNeeds returns the includeTransitiveNeeds +func (c *ChartsImpl) IncludeTransitiveNeeds() bool { + return false +} + +// Values returns the values +func (c *ChartsImpl) Values() []string { + return c.ChartsOptions.Values +} diff --git a/pkg/config/delete.go b/pkg/config/delete.go new file mode 100644 index 00000000..f688e94f --- /dev/null +++ b/pkg/config/delete.go @@ -0,0 +1,67 @@ +// TODO: Remove this function once Helmfile v0.x +package config + +// DeleteOptions is the options for the build command +type DeleteOptions struct { + // Concurrency is the maximum number of concurrent helm processes to run, 0 is unlimited + Concurrency int + // Purge is the purge flag + Purge bool + // SkipCharts makes Delete skip `withPreparedCharts` + SkipCharts bool + // Cascade '--cascade' to helmv3 delete, available values: background, foreground, or orphan, default: background + Cascade string + // Wait '--wait' if set, will wait until all the resources are deleted before returning. It will wait for as long as --timeout + DeleteWait bool + // Timeout '--timeout', to wait for helm delete operation (default 5m0s) + DeleteTimeout int +} + +// NewDeleteOptions creates a new Apply +func NewDeleteOptions() *DeleteOptions { + return &DeleteOptions{} +} + +// DeleteImpl is impl for applyOptions +type DeleteImpl struct { + *GlobalImpl + *DeleteOptions +} + +// NewDeleteImpl creates a new DeleteImpl +func NewDeleteImpl(g *GlobalImpl, b *DeleteOptions) *DeleteImpl { + return &DeleteImpl{ + GlobalImpl: g, + DeleteOptions: b, + } +} + +// Concurrency returns the concurrency +func (c *DeleteImpl) Concurrency() int { + return c.DeleteOptions.Concurrency +} + +// Purge returns the purge +func (c *DeleteImpl) Purge() bool { + return c.DeleteOptions.Purge +} + +// SkipCharts returns skipCharts flag +func (c *DeleteImpl) SkipCharts() bool { + return c.DeleteOptions.SkipCharts +} + +// Cascade returns cascade flag +func (c *DeleteImpl) Cascade() string { + return c.DeleteOptions.Cascade +} + +// DeleteWait returns the wait flag +func (c *DeleteImpl) DeleteWait() bool { + return c.DeleteOptions.DeleteWait +} + +// DeleteTimeout returns the timeout flag +func (c *DeleteImpl) DeleteTimeout() int { + return c.DeleteOptions.DeleteTimeout +} diff --git a/pkg/envvar/const.go b/pkg/envvar/const.go index 0235af17..94df7381 100644 --- a/pkg/envvar/const.go +++ b/pkg/envvar/const.go @@ -6,12 +6,16 @@ const ( // use helm status to check if a release exists before installing it UseHelmStatusToCheckReleaseExistence = "HELMFILE_USE_HELM_STATUS_TO_CHECK_RELEASE_EXISTENCE" + // TODO: Remove this function once Helmfile v0.x + SkipInsecureTemplateFunctions = "HELMFILE_SKIP_INSECURE_TEMPLATE_FUNCTIONS" + DisableRunnerUniqueID = "HELMFILE_DISABLE_RUNNER_UNIQUE_ID" 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" GoccyGoYaml = "HELMFILE_GOCCY_GOYAML" CacheHome = "HELMFILE_CACHE_HOME" Interactive = "HELMFILE_INTERACTIVE" diff --git a/pkg/policy/checker.go b/pkg/policy/checker.go index 28db5d70..b493d513 100644 --- a/pkg/policy/checker.go +++ b/pkg/policy/checker.go @@ -9,6 +9,8 @@ import ( "slices" "strings" "unicode" + + "github.com/helmfile/helmfile/pkg/runtime" ) var ( @@ -49,7 +51,7 @@ func forbidEnvironmentsWithReleases(filePath string, content []byte) (bool, erro } for i := 0; i < len(result)-1; i++ { if result[i] != "---" && result[i+1] != "---" { - return true, EnvironmentsAndReleasesWithinSameYamlPartErr + return runtime.V1Mode, EnvironmentsAndReleasesWithinSameYamlPartErr } } return false, nil @@ -121,7 +123,7 @@ func TopConfigKeysVerifier(filePath string, helmfileContent []byte) (bool, error preKey := orderKeys[i-1] currentKey := orderKeys[i] if topkeysPriority[preKey] > topkeysPriority[currentKey] { - return true, fmt.Errorf("top-level config key %s must be defined before %s in %s", currentKey, preKey, 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 --git a/pkg/policy/checker_test.go b/pkg/policy/checker_test.go index 0b64081a..7c28555c 100644 --- a/pkg/policy/checker_test.go +++ b/pkg/policy/checker_test.go @@ -4,12 +4,15 @@ import ( "testing" "github.com/stretchr/testify/require" + + "github.com/helmfile/helmfile/pkg/runtime" ) func TestForbidEnvironmentsWithReleases(t *testing.T) { testCases := []struct { name string filePath string + v1mode bool content []byte expectedErr bool isStrict bool @@ -18,6 +21,7 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when only releases", filePath: "helmfile.yaml", content: []byte("releases:\n"), + v1mode: false, expectedErr: false, isStrict: false, }, @@ -25,6 +29,7 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when only environments", filePath: "helmfile.yaml", content: []byte("environments:\n"), + v1mode: false, expectedErr: false, isStrict: false, }, @@ -32,6 +37,7 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when has --- between releases and environments", filePath: "helmfile.yaml", content: []byte("environments:\n---\nreleases:\n"), + v1mode: false, expectedErr: false, isStrict: false, }, @@ -39,6 +45,7 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when has --- between releases and environments, and --- on top of helmfile.yaml.gotmpl", filePath: "helmfile.yaml", content: []byte("---\nenvironments:\n---\nreleases:\n"), + v1mode: false, expectedErr: false, isStrict: false, }, @@ -46,13 +53,28 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "error when both releases and environments", filePath: "helmfile.yaml", content: []byte("environments:\nreleases:\n"), + v1mode: false, + expectedErr: true, + isStrict: false, + }, + { + name: "error when both releases and environments for plain yaml on v1", + filePath: "helmfile.yaml", + content: []byte("environments:\nreleases:\n"), + v1mode: true, expectedErr: true, isStrict: true, }, } + v1mode := runtime.V1Mode + t.Cleanup(func() { + runtime.V1Mode = v1mode + }) + for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { + runtime.V1Mode = tc.v1mode isStrict, err := forbidEnvironmentsWithReleases(tc.filePath, tc.content) require.Equal(t, tc.isStrict, isStrict, "expected isStrict=%v, got=%v", tc.isStrict, isStrict) if tc.expectedErr { @@ -131,31 +153,26 @@ func TestTopConfigKeysVerifier(t *testing.T) { name: "error when not correct order 00", helmfileContent: []byte("releases:\nbases:\n"), wantErr: true, - wantStrict: true, }, { name: "error when not correct order 01", helmfileContent: []byte("releases:\nhelmDefaults:\nbases:\n"), wantErr: true, - wantStrict: true, }, { name: "error when not correct order 02", helmfileContent: []byte("helmDefaults:\nreleases:\nbases:\n"), wantErr: true, - wantStrict: true, }, { name: "error when not correct order 03", helmfileContent: []byte("releases:\nva:\nve:\nbases:\n"), wantErr: true, - wantStrict: true, }, { name: "error when not correct order 04", helmfileContent: []byte("bases:\nreleases:\nenvironments:\n"), wantErr: true, - wantStrict: true, }, { name: "no error when only has bases", diff --git a/pkg/runtime/runtime.go b/pkg/runtime/runtime.go index 7c1e1d14..e2e407b5 100644 --- a/pkg/runtime/runtime.go +++ b/pkg/runtime/runtime.go @@ -3,15 +3,24 @@ package runtime import ( "fmt" "os" + "strconv" "github.com/helmfile/helmfile/pkg/envvar" ) +// V1Mode is false by default for Helmfile v0.x and +// true by default for Helmfile v1.x var ( + V1Mode bool + // GoccyGoYaml is set to true in order to let Helmfile use // goccy/go-yaml instead of gopkg.in/yaml.v2. // It's false by default in Helmfile v0.x and true by default for Helmfile v1.x. GoccyGoYaml bool + + // We set this via ldflags at build-time so that we can use the + // value specified at the build time as the runtime default. + v1Mode string ) func Info() string { @@ -20,10 +29,22 @@ func Info() string { yamlLib = "goccy/go-yaml" } - return fmt.Sprintf("YAML library = %v", yamlLib) + return fmt.Sprintf("V1 mode = %v\nYAML library = %v", V1Mode, yamlLib) } func init() { + // You can toggle the V1 mode at runtime via an envvar: + // - Helmfile v1.x behaves like v0.x by running it with HELMFILE_V1MODE=false + // - Helmfile v0.x behaves like v1.x by with HELMFILE_V1MODE=true + switch os.Getenv(envvar.V1Mode) { + case "true": + V1Mode = true + case "false": + V1Mode = false + default: + V1Mode, _ = strconv.ParseBool(v1Mode) + } + // You can switch the YAML library at runtime via an envvar: switch os.Getenv(envvar.GoccyGoYaml) { case "true": @@ -31,6 +52,6 @@ func init() { case "false": GoccyGoYaml = false default: - GoccyGoYaml = true + GoccyGoYaml = V1Mode } } diff --git a/pkg/state/create.go b/pkg/state/create.go index 248a3c85..c08086d4 100644 --- a/pkg/state/create.go +++ b/pkg/state/create.go @@ -117,6 +117,20 @@ func (c *StateCreator) Parse(content []byte, baseDir, file string) (*HelmState, } } + // TODO: Remove this function once Helmfile v0.x + if len(state.DeprecatedReleases) > 0 { + if len(state.Releases) > 0 { + return nil, fmt.Errorf("failed to parse %s: you can't specify both `charts` and `releases` sections", file) + } + state.Releases = state.DeprecatedReleases + state.DeprecatedReleases = []ReleaseSpec{} + } + + // TODO: Remove this function once Helmfile v0.x + if state.DeprecatedContext != "" && state.HelmDefaults.KubeContext == "" { + state.HelmDefaults.KubeContext = state.DeprecatedContext + } + if c.overrideHelmBinary != "" && c.overrideHelmBinary != DefaultHelmBinary { state.DefaultHelmBinary = c.overrideHelmBinary } else if state.DefaultHelmBinary == "" { diff --git a/pkg/state/create_test.go b/pkg/state/create_test.go index 4cc282be..46b1e072 100644 --- a/pkg/state/create_test.go +++ b/pkg/state/create_test.go @@ -280,6 +280,26 @@ func TestReadFromYaml_StrictUnmarshalling(t *testing.T) { } } +// TODO: Remove this function once Helmfile v0.x +func TestReadFromYaml_DeprecatedReleaseReferences(t *testing.T) { + yamlFile := "example/path/to/yaml/file" + yamlContent := []byte(`charts: +- name: myrelease + chart: mychart +`) + state, err := createFromYaml(yamlContent, yamlFile, DefaultEnv, logger) + if err != nil { + t.Errorf("unxpected error: %v", err) + } + + if state.Releases[0].Name != "myrelease" { + t.Errorf("unexpected release name: expected=myrelease actual=%s", state.Releases[0].Name) + } + if state.Releases[0].Chart != "mychart" { + t.Errorf("unexpected chart name: expected=mychart actual=%s", state.Releases[0].Chart) + } +} + func TestReadFromYaml_ConflictingReleasesConfig(t *testing.T) { yamlFile := "example/path/to/yaml/file" yamlContent := []byte(`charts: diff --git a/pkg/state/state.go b/pkg/state/state.go index 4d9e43e1..a28c05d9 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -60,6 +60,10 @@ type ReleaseSetSpec struct { HelmDefaults HelmSpec `yaml:"helmDefaults,omitempty"` Helmfiles []SubHelmfileSpec `yaml:"helmfiles,omitempty"` + // TODO: Remove this function once Helmfile v0.x + DeprecatedContext string `yaml:"context,omitempty"` + DeprecatedReleases []ReleaseSpec `yaml:"charts,omitempty"` + OverrideKubeContext string `yaml:"kubeContext,omitempty"` OverrideNamespace string `yaml:"namespace,omitempty"` OverrideChart string `yaml:"chart,omitempty"` diff --git a/pkg/state/state_test.go b/pkg/state/state_test.go index 59210312..9072ea56 100644 --- a/pkg/state/state_test.go +++ b/pkg/state/state_test.go @@ -58,9 +58,13 @@ func TestHelmState_applyDefaultsTo(t *testing.T) { type fields struct { BaseChartPath string Context string - Namespace string - Repositories []RepositorySpec - Releases []ReleaseSpec + + // TODO: Remove this function once Helmfile v0.x + DeprecatedReleases []ReleaseSpec + + Namespace string + Repositories []RepositorySpec + Releases []ReleaseSpec } type args struct { spec ReleaseSpec @@ -85,8 +89,12 @@ func TestHelmState_applyDefaultsTo(t *testing.T) { fieldsWithNamespace := fields{ BaseChartPath: ".", Context: "test_context", - Namespace: specWithNamespaceFromFields.Namespace, - Repositories: nil, + + // TODO: Remove this function once Helmfile v0.x + DeprecatedReleases: nil, + + Namespace: specWithNamespaceFromFields.Namespace, + Repositories: nil, Releases: []ReleaseSpec{ specWithNamespace, }, @@ -140,6 +148,10 @@ func TestHelmState_applyDefaultsTo(t *testing.T) { state := &HelmState{ basePath: tt.fields.BaseChartPath, ReleaseSetSpec: ReleaseSetSpec{ + // TODO: Remove this function once Helmfile v0.x + DeprecatedContext: tt.fields.Context, + DeprecatedReleases: tt.fields.DeprecatedReleases, + OverrideNamespace: tt.fields.Namespace, Repositories: tt.fields.Repositories, Releases: tt.fields.Releases, @@ -728,6 +740,9 @@ func TestHelmState_flagsForUpgrade(t *testing.T) { state := &HelmState{ basePath: "./", ReleaseSetSpec: ReleaseSetSpec{ + // TODO: Remove this function once Helmfile v0.x + DeprecatedContext: "default", + Releases: []ReleaseSpec{*tt.release}, HelmDefaults: tt.defaults, }, @@ -889,8 +904,9 @@ func TestHelmState_flagsForTemplate(t *testing.T) { state := &HelmState{ basePath: "./", ReleaseSetSpec: ReleaseSetSpec{ - Releases: []ReleaseSpec{*tt.release}, - HelmDefaults: tt.defaults, + DeprecatedContext: "default", + Releases: []ReleaseSpec{*tt.release}, + HelmDefaults: tt.defaults, }, valsRuntime: valsRuntime, } diff --git a/pkg/tmpl/context_funcs.go b/pkg/tmpl/context_funcs.go index dac6be4a..12888a91 100644 --- a/pkg/tmpl/context_funcs.go +++ b/pkg/tmpl/context_funcs.go @@ -19,6 +19,7 @@ import ( "github.com/helmfile/helmfile/pkg/envvar" "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/maputil" + "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/yaml" ) @@ -36,10 +37,23 @@ func (e DisableInsecureFeaturesError) Error() string { var ( disableInsecureFeatures bool + + // TODO: Remove this function once Helmfile v0.x + skipInsecureTemplateFunctions bool ) func init() { disableInsecureFeatures, _ = strconv.ParseBool(os.Getenv(envvar.DisableInsecureFeatures)) + + // TODO: Remove this function once Helmfile v0.x + skipInsecureTemplateFunctions, _ = strconv.ParseBool(os.Getenv(envvar.SkipInsecureTemplateFunctions)) + skipInsecureTemplateFunctions = func() bool { + if runtime.V1Mode { + return false + } + b, _ := strconv.ParseBool(os.Getenv(envvar.SkipInsecureTemplateFunctions)) + return b + }() } func (c *Context) createFuncMap() template.FuncMap { @@ -62,7 +76,7 @@ func (c *Context) createFuncMap() template.FuncMap { "fetchSecretValue": fetchSecretValue, "expandSecretRefs": fetchSecretValues, } - if c.preRender { + if c.preRender || skipInsecureTemplateFunctions { // disable potential side-effect template calls funcMap["exec"] = func(string, []any, ...string) (string, error) { return "", nil diff --git a/pkg/tmpl/context_funcs_test.go b/pkg/tmpl/context_funcs_test.go index d1141d8e..e9e67e04 100644 --- a/pkg/tmpl/context_funcs_test.go +++ b/pkg/tmpl/context_funcs_test.go @@ -46,6 +46,30 @@ func TestCreateFuncMap_DisabledInsecureFeatures(t *testing.T) { disableInsecureFeatures = currentVal } +// TODO: Remove this function once Helmfile v0.x +func TestCreateFuncMap_SkipInsecureTemplateFunctions(t *testing.T) { + if runtime.V1Mode { + t.Logf("SkipInsecureTemplateFunctions is not supported in V1 mode") + return + } + currentVal := skipInsecureTemplateFunctions + + { + skipInsecureTemplateFunctions = true + ctx := &Context{basePath: "."} + funcMaps := ctx.createFuncMap() + args := make([]any, 0) + actual1, err1 := funcMaps["exec"].(func(command string, args []any, inputs ...string) (string, error))("ls", args) + require.Equal(t, "", actual1) + require.ErrorIs(t, err1, nil) + actual2, err2 := funcMaps["readFile"].(func(filename string) (string, error))("context_funcs_test.go") + require.Equal(t, "", actual2) + require.ErrorIs(t, err2, nil) + } + + skipInsecureTemplateFunctions = currentVal +} + func newFSExpecting(expectedFilename string, expected string) *filesystem.FileSystem { return filesystem.FromFileSystem(filesystem.FileSystem{ ReadFile: func(filename string) ([]byte, error) { diff --git a/test/e2e/template/helmfile/snapshot_test.go b/test/e2e/template/helmfile/snapshot_test.go index 68f62be5..672598f1 100644 --- a/test/e2e/template/helmfile/snapshot_test.go +++ b/test/e2e/template/helmfile/snapshot_test.go @@ -223,7 +223,7 @@ func testHelmfileTemplateWithBuildCommand(t *testing.T, goccyGoYaml bool) { helmConfigHome := filepath.Join(tmpDir, "helm_config") t.Logf("Using HELM_CACHE_HOME=%s, HELMFILE_CACHE_HOME=%s, HELM_CONFIG_HOME=%s", helmCacheHome, helmfileCacheHome, helmConfigHome) - inputFile := filepath.Join(testdataDir, name, "input.yaml.gotmpl") + inputFile := filepath.Join(testdataDir, name, "input.yaml") outputFile := filepath.Join(testdataDir, name, "output.yaml") ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) diff --git a/test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml similarity index 58% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml index 05b9688c..6b312364 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml.gotmpl +++ b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml @@ -4,13 +4,13 @@ environments: - test.yaml.gotmpl --- helmfiles: -- path: helmfiles/test.yaml.gotmpl +- path: helmfiles/test.yaml values: - envName: {{ .Values.envName }} -- path: helmfiles/prod.yaml.gotmpl +- path: helmfiles/prod.yaml values: - envName: {{ .Values.envName }} -- path: helmfiles/no-envs.yaml.gotmpl +- path: helmfiles/no-envs.yaml values: - envName: {{ .Values.envName }} -- path: helmfiles/no-values.yaml.gotmpl \ No newline at end of file +- path: helmfiles/no-values.yaml \ No newline at end of file diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml new file mode 100644 index 00000000..71fee0cb --- /dev/null +++ b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml @@ -0,0 +1,5 @@ +chartifyTempDir: envs_releases_within_same_yaml_part +helmfileArgs: +- --environment +- prod +- template diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/input.yaml similarity index 97% rename from test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/input.yaml index 4fc99ecb..276a4d93 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/input.yaml.gotmpl +++ b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/input.yaml @@ -1,7 +1,7 @@ environments: prod: staging: ---- + releases: - name: raw chart: ../../charts/raw-0.0.1 diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/output.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/output.yaml similarity index 56% rename from test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/output.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/output.yaml index 7f723eaa..2e9471ac 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/output.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/output.yaml @@ -1,3 +1,4 @@ +WARNING: environments and releases cannot be defined within the same YAML part. Use --- to extract the environments into a dedicated part Building dependency release=raw, chart=../../charts/raw-0.0.1 Templating release=raw, chart=../../charts/raw-0.0.1 --- diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml deleted file mode 100644 index 690947ac..00000000 --- a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml +++ /dev/null @@ -1,5 +0,0 @@ -chartifyTempDir: envs_releases_without_same_yaml_part -helmfileArgs: -- --environment -- prod -- template diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml index fb2d2b51..9e3dec93 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml @@ -1,7 +1,7 @@ --- -# Source: __workingdir__/testdata/snapshot/issue_2098_release_template_needs/input.yaml.gotmpl +# Source: __workingdir__/testdata/snapshot/issue_2098_release_template_needs/input.yaml -filepath: input.yaml.gotmpl +filepath: input.yaml helmBinary: helm kustomizeBinary: kustomize environments: diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml diff --git a/test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml.gotmpl b/test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml.gotmpl rename to test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml diff --git a/test/integration/test-cases/chart-needs.sh b/test/integration/test-cases/chart-needs.sh index 2ce8e63d..76cc3814 100644 --- a/test/integration/test-cases/chart-needs.sh +++ b/test/integration/test-cases/chart-needs.sh @@ -1,7 +1,14 @@ chart_need_case_input_dir="${cases_dir}/chart-needs/input" chart_need_case_output_dir="${cases_dir}/chart-needs/output" -config_file="helmfile.yaml.gotmpl" +config_file="helmfile.yaml" +if [[ ${HELMFILE_V1MODE} = true ]]; then + pushd "${chart_need_case_input_dir}" + mv "${config_file}" "${config_file}.gotmpl" + config_file="${config_file}.gotmpl" + popd +fi + chart_needs_tmp=$(mktemp -d) chart_needs_template_reverse=${chart_needs_tmp}/chart.needs.template.log chart_needs_lint_reverse=${chart_needs_tmp}/chart.needs.lint.log diff --git a/test/integration/test-cases/chart-needs/input/helmfile.yaml.gotmpl b/test/integration/test-cases/chart-needs/input/helmfile.yaml similarity index 100% rename from test/integration/test-cases/chart-needs/input/helmfile.yaml.gotmpl rename to test/integration/test-cases/chart-needs/input/helmfile.yaml diff --git a/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh b/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh index ea5d4a22..2fd4e5d3 100644 --- a/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh +++ b/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh @@ -1,7 +1,14 @@ chartify_jsonPatches_and_strategicMergePatches_case_input_dir="${cases_dir}/chartify-jsonPatches-and-strategicMergePatches/input" chartify_jsonPatches_and_strategicMergePatches_case_output_dir="${cases_dir}/chartify-jsonPatches-and-strategicMergePatches/output" -config_file="helmfile.yaml.gotmpl" +config_file="helmfile.yaml" +if [[ ${HELMFILE_V1MODE} = true ]]; then + pushd "${chartify_jsonPatches_and_strategicMergePatches_case_input_dir}" + mv "${config_file}" "${config_file}.gotmpl" + config_file="${config_file}.gotmpl" + popd +fi + chartify_jsonPatches_and_strategicMergePatches_tmp=$(mktemp -d) chartify_jsonPatches_and_strategicMergePatches_template_reverse=${chartify_jsonPatches_and_strategicMergePatches_tmp}/chartify_jsonPatches_and_strategicMergePatches.template.log diff --git a/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml.gotmpl b/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml similarity index 100% rename from test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml.gotmpl rename to test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml diff --git a/test/integration/test-cases/chartify.sh b/test/integration/test-cases/chartify.sh index 8c6e2d3a..963fbbd6 100644 --- a/test/integration/test-cases/chartify.sh +++ b/test/integration/test-cases/chartify.sh @@ -1,7 +1,14 @@ chartify_case_input_dir="${cases_dir}/chartify/input" chartify_case_output_dir="${cases_dir}/chartify/output" -config_file="helmfile.yaml.gotmpl" +config_file="helmfile.yaml" +if [[ ${HELMFILE_V1MODE} = true ]]; then + pushd "${chartify_case_input_dir}" + mv "${config_file}" "${config_file}.gotmpl" + config_file="${config_file}.gotmpl" + popd +fi + chartify_tmp=$(mktemp -d) chartify_template_reverse=${chartify_tmp}/chartify.template.log diff --git a/test/integration/test-cases/chartify/input/helmfile.yaml.gotmpl b/test/integration/test-cases/chartify/input/helmfile.yaml similarity index 100% rename from test/integration/test-cases/chartify/input/helmfile.yaml.gotmpl rename to test/integration/test-cases/chartify/input/helmfile.yaml diff --git a/test/integration/test-cases/cli-overwrite-environment-values.sh b/test/integration/test-cases/cli-overwrite-environment-values.sh index 8e51e159..48d9f2de 100644 --- a/test/integration/test-cases/cli-overwrite-environment-values.sh +++ b/test/integration/test-cases/cli-overwrite-environment-values.sh @@ -6,12 +6,24 @@ cli_overwrite_environment_values_reverse=${cli_overwrite_environment_values_tmp} case_title="cli overwrite environment values" -test_start "$case_title" -info "Comparing ${case_title} for output ${cli_overwrite_environment_values_reverse} with ${cli_overwrite_environment_values_output_dir}/overwritten.yaml" -for i in $(seq 10); do - info "Comparing build/cli-overwrite-environment-values #$i" - ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input.yaml.gotmpl template --state-values-set ns=test3 --state-values-set-string imageTag=1.23.3,zone="zone1,zone2" > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" - diff -u ${cli_overwrite_environment_values_output_dir}/output.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" - echo code=$? -done -test_pass "cli overwrite environment values for v1" \ No newline at end of file +if [[ ${HELMFILE_V1MODE} = true ]]; then + test_start "$case_title for v1" + info "Comparing ${case_title} for v1 output ${cli_overwrite_environment_values_reverse} with ${cli_overwrite_environment_values_output_dir}/overwritten.yaml" + for i in $(seq 10); do + info "Comparing build/cli-overwrite-environment-values #$i" + ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input_v1.yaml.gotmpl template --state-values-set ns=test3 --state-values-set-string imageTag=1.23.3,zone="zone1,zone2" > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" + diff -u ${cli_overwrite_environment_values_output_dir}/output_v1.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" + echo code=$? + done + test_pass "cli overwrite environment values for v1" +else + test_start "${case_title}" + info "Comparing ${case_title} output ${cli_overwrite_environment_values_reverse} with ${cli_overwrite_environment_values_output_dir}/overwritten.yaml" + for i in $(seq 10); do + info "Comparing build/cli-overwrite-environment-values #$i" + ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input_v1.yaml.gotmpl template --state-values-set ns=test3 --state-values-set-string imageTag=1.23.3,zone="zone1,zone2" > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" + diff -u ${cli_overwrite_environment_values_output_dir}/output_v1.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" + echo code=$? + done + test_pass "${case_title}" +fi diff --git a/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml b/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml new file mode 100644 index 00000000..28706d92 --- /dev/null +++ b/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml @@ -0,0 +1,17 @@ +environments: + default: + values: + - base.yaml + - override.yaml + +repositories: + - name: bitnami + url: https://charts.bitnami.com/bitnami + +releases: + - name: test + chart: bitnami/nginx + namespace: {{ .Values.ns }} + version: 13.2.27 + values: + - values.yaml.gotmpl diff --git a/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml.gotmpl b/test/integration/test-cases/cli-overwrite-environment-values/input/input_v1.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml.gotmpl rename to test/integration/test-cases/cli-overwrite-environment-values/input/input_v1.yaml.gotmpl diff --git a/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml b/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml index ba0f5cd7..ae8f779c 100644 --- a/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml +++ b/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml @@ -1,3 +1,9 @@ +Warning: environments and releases cannot be defined within the same YAML part. Use --- to extract the environments into a dedicated part +Warning: environments and releases cannot be defined within the same YAML part. Use --- to extract the environments into a dedicated part +Adding repo bitnami https://charts.bitnami.com/bitnami +"bitnami" has been added to your repositories + +Templating release=test, chart=bitnami/nginx --- # Source: nginx/templates/svc.yaml apiVersion: v1 @@ -51,7 +57,6 @@ spec: app.kubernetes.io/instance: test app.kubernetes.io/managed-by: Helm annotations: - zone: "zone1,zone2" spec: automountServiceAccountToken: false @@ -76,7 +81,7 @@ spec: initContainers: containers: - name: nginx - image: docker.io/bitnami/nginx:1.23.3 + image: docker.io/bitnami/nginx:test3 imagePullPolicy: "IfNotPresent" env: - name: BITNAMI_DEBUG diff --git a/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml b/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml new file mode 100644 index 00000000..ba0f5cd7 --- /dev/null +++ b/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml @@ -0,0 +1,111 @@ +--- +# Source: nginx/templates/svc.yaml +apiVersion: v1 +kind: Service +metadata: + name: test-nginx + namespace: "test3" + labels: + app.kubernetes.io/name: nginx + helm.sh/chart: nginx-13.2.27 + app.kubernetes.io/instance: test + app.kubernetes.io/managed-by: Helm + annotations: +spec: + type: LoadBalancer + sessionAffinity: None + externalTrafficPolicy: "Cluster" + ports: + - name: http + port: 80 + targetPort: http + selector: + app.kubernetes.io/name: nginx + app.kubernetes.io/instance: test +--- +# Source: nginx/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: test-nginx + namespace: "test3" + labels: + app.kubernetes.io/name: nginx + helm.sh/chart: nginx-13.2.27 + app.kubernetes.io/instance: test + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + strategy: + rollingUpdate: {} + type: RollingUpdate + selector: + matchLabels: + app.kubernetes.io/name: nginx + app.kubernetes.io/instance: test + template: + metadata: + labels: + app.kubernetes.io/name: nginx + helm.sh/chart: nginx-13.2.27 + app.kubernetes.io/instance: test + app.kubernetes.io/managed-by: Helm + annotations: + zone: "zone1,zone2" + spec: + + automountServiceAccountToken: false + shareProcessNamespace: false + serviceAccountName: default + affinity: + podAffinity: + + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + app.kubernetes.io/name: nginx + app.kubernetes.io/instance: test + topologyKey: kubernetes.io/hostname + weight: 1 + nodeAffinity: + + hostNetwork: false + hostIPC: false + initContainers: + containers: + - name: nginx + image: docker.io/bitnami/nginx:1.23.3 + imagePullPolicy: "IfNotPresent" + env: + - name: BITNAMI_DEBUG + value: "false" + - name: NGINX_HTTP_PORT_NUMBER + value: "8080" + envFrom: + ports: + - name: http + containerPort: 8080 + livenessProbe: + failureThreshold: 6 + initialDelaySeconds: 30 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + tcpSocket: + port: http + readinessProbe: + failureThreshold: 3 + initialDelaySeconds: 5 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 3 + tcpSocket: + port: http + resources: + limits: {} + requests: {} + volumeMounts: + volumes: + diff --git a/test/integration/test-cases/happypath.sh b/test/integration/test-cases/happypath.sh index 2968a554..a9778a1d 100644 --- a/test/integration/test-cases/happypath.sh +++ b/test/integration/test-cases/happypath.sh @@ -2,7 +2,14 @@ test_start "happypath - simple rollout of httpbin chart" happypath_case_input_dir="${cases_dir}/happypath/input" happypath_case_output_dir="${cases_dir}/happypath/output" -config_file="happypath.yaml.gotmpl" +config_file="happypath.yaml" + +if [[ ${HELMFILE_V1MODE} = true ]]; then + pushd "${happypath_case_input_dir}" + mv "${config_file}" "${config_file}.gotmpl" + config_file="${config_file}.gotmpl" + popd +fi info "Diffing ${happypath_case_input_dir}/${config_file}" bash -c "${helmfile} -f ${happypath_case_input_dir}/${config_file} diff --detailed-exitcode; code="'$?'"; [ "'${code}'" -eq 2 ]" || fail "unexpected exit code returned by helmfile diff" diff --git a/test/integration/test-cases/happypath/input/happypath.yaml.gotmpl b/test/integration/test-cases/happypath/input/happypath.yaml similarity index 100% rename from test/integration/test-cases/happypath/input/happypath.yaml.gotmpl rename to test/integration/test-cases/happypath/input/happypath.yaml diff --git a/test/integration/test-cases/postrender.sh b/test/integration/test-cases/postrender.sh index dfeab508..5a1a2aee 100644 --- a/test/integration/test-cases/postrender.sh +++ b/test/integration/test-cases/postrender.sh @@ -1,7 +1,14 @@ postrender_case_input_dir="${cases_dir}/postrender/input" postrender_case_output_dir="${cases_dir}/postrender/output" -config_file="helmfile.yaml.gotmpl" +config_file="helmfile.yaml" +if [[ ${HELMFILE_V1MODE} = true ]]; then + pushd "${postrender_case_input_dir}" + mv "${config_file}" "${config_file}.gotmpl" + config_file="${config_file}.gotmpl" + popd +fi + postrender_diff_out_file=${postrender_case_output_dir}/diff-result if [[ $EXTRA_HELMFILE_FLAGS == *--enable-live-output* ]]; then postrender_diff_out_file=${postrender_case_output_dir}/diff-result-live diff --git a/test/integration/test-cases/postrender/input/helmfile.yaml.gotmpl b/test/integration/test-cases/postrender/input/helmfile.yaml similarity index 100% rename from test/integration/test-cases/postrender/input/helmfile.yaml.gotmpl rename to test/integration/test-cases/postrender/input/helmfile.yaml diff --git a/test/integration/test-cases/regression.sh b/test/integration/test-cases/regression.sh index bc2ea412..8a68d491 100644 --- a/test/integration/test-cases/regression.sh +++ b/test/integration/test-cases/regression.sh @@ -4,20 +4,44 @@ test_start "regression tests" regression_case_input_dir="${cases_dir}/regression/input" info "https://github.com/roboll/helmfile/issues/1857" -config_file="issue.1857.yaml.gotmpl" +config_file="issue.1857.yaml" +if [[ ${HELMFILE_V1MODE} = true ]]; then + pushd "${regression_case_input_dir}" + mv "${config_file}" "${config_file}.gotmpl" + config_file="${config_file}.gotmpl" + popd +fi (${helmfile} -f ${regression_case_input_dir}/${config_file} --state-values-set grafanaEnabled=true template | grep grafana 1>/dev/null) || fail "\"helmfile template\" shouldn't include grafana" ! (${helmfile} -f ${regression_case_input_dir}/${config_file} --state-values-set grafanaEnabled=false template | grep grafana) || fail "\"helmfile template\" shouldn't include grafana" info "https://github.com/roboll/helmfile/issues/1867" -config_file="issue.1867.yaml.gotmpl" +config_file="issue.1867.yaml" +if [[ ${HELMFILE_V1MODE} = true ]]; then + pushd "${regression_case_input_dir}" + mv "${config_file}" "${config_file}.gotmpl" + config_file="${config_file}.gotmpl" + popd +fi (${helmfile} -f ${regression_case_input_dir}/${config_file} template 1>/dev/null) || fail "\"helmfile template\" shouldn't fail" info "https://github.com/roboll/helmfile/issues/2118" -config_file="issue.2118.yaml.gotmpl" +config_file="issue.2118.yaml" +if [[ ${HELMFILE_V1MODE} = true ]]; then + pushd "${regression_case_input_dir}" + mv "${config_file}" "${config_file}.gotmpl" + config_file="${config_file}.gotmpl" + popd +fi (${helmfile} -f ${regression_case_input_dir}/${config_file} template 1>/dev/null) || fail "\"helmfile template\" shouldn't fail" info "https://github.com/helmfile/helmfile/issues/1682" -config_file="issue.1682.yaml.gotmpl" +config_file="issue.1682.yaml" +if [[ ${HELMFILE_V1MODE} = true ]]; then + pushd "${regression_case_input_dir}" + mv "${config_file}" "${config_file}.gotmpl" + config_file="${config_file}.gotmpl" + popd +fi (${helmfile} -f ${regression_case_input_dir}/${config_file} deps 1>/dev/null) || fail "\"helmfile deps\" shouldn't fail" test_pass "regression tests" \ No newline at end of file diff --git a/test/integration/test-cases/regression/input/issue.1682.yaml.gotmpl b/test/integration/test-cases/regression/input/issue.1682.yaml similarity index 100% rename from test/integration/test-cases/regression/input/issue.1682.yaml.gotmpl rename to test/integration/test-cases/regression/input/issue.1682.yaml diff --git a/test/integration/test-cases/regression/input/issue.1857.yaml.gotmpl b/test/integration/test-cases/regression/input/issue.1857.yaml similarity index 100% rename from test/integration/test-cases/regression/input/issue.1857.yaml.gotmpl rename to test/integration/test-cases/regression/input/issue.1857.yaml diff --git a/test/integration/test-cases/regression/input/issue.1867.yaml.gotmpl b/test/integration/test-cases/regression/input/issue.1867.yaml similarity index 100% rename from test/integration/test-cases/regression/input/issue.1867.yaml.gotmpl rename to test/integration/test-cases/regression/input/issue.1867.yaml diff --git a/test/integration/test-cases/regression/input/issue.2118.yaml.gotmpl b/test/integration/test-cases/regression/input/issue.2118.yaml similarity index 100% rename from test/integration/test-cases/regression/input/issue.2118.yaml.gotmpl rename to test/integration/test-cases/regression/input/issue.2118.yaml diff --git a/test/integration/test-cases/secretssops.sh b/test/integration/test-cases/secretssops.sh index b5085275..b4c53f79 100644 --- a/test/integration/test-cases/secretssops.sh +++ b/test/integration/test-cases/secretssops.sh @@ -4,7 +4,13 @@ sops="sops --hc-vault-transit $VAULT_ADDR/v1/sops/keys/key" secretssops_case_input_dir="${cases_dir}/secretssops/input" secretssops_case_output_dir="${cases_dir}/secretssops/output" -config_file="secretssops.yaml.gotmpl" +config_file="secretssops.yaml" +if [[ ${HELMFILE_V1MODE} = true ]]; then + pushd "${secretssops_case_input_dir}" + mv "${config_file}" "${config_file}.gotmpl" + config_file="${config_file}.gotmpl" + popd +fi mkdir -p ${secretssops_case_input_dir}/tmp diff --git a/test/integration/test-cases/secretssops/input/secretssops.yaml.gotmpl b/test/integration/test-cases/secretssops/input/secretssops.yaml similarity index 100% rename from test/integration/test-cases/secretssops/input/secretssops.yaml.gotmpl rename to test/integration/test-cases/secretssops/input/secretssops.yaml diff --git a/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh b/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh index 113f45fa..a234fb19 100644 --- a/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh +++ b/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh @@ -1,20 +1,19 @@ -v1_subhelmfile_multi_bases_with_array_values_input_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/input" -v1_subhelmfile_multi_bases_with_array_values_output_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/output" +if [[ ${HELMFILE_V1MODE} = true ]]; then + v1_subhelmfile_multi_bases_with_array_values_input_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/input" + v1_subhelmfile_multi_bases_with_array_values_output_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/output" -yaml_overwrite_tmp=$(mktemp -d) -yaml_overwrite_reverse=${yaml_overwrite_tmp}/helmfile_template_result + yaml_overwrite_tmp=$(mktemp -d) + yaml_overwrite_reverse=${yaml_overwrite_tmp}/helmfile_template_result -v1_subhelmfile_multi_bases_with_array_values_output_file=${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result -if [[ $EXTRA_HELMFILE_FLAGS == *--enable-live-output* ]]; then - v1_subhelmfile_multi_bases_with_array_values_output_file=${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result-live -fi - -test_start "v1 subhelmfile multi bases with array values" -info "Comparing v1 subhelmfile multi bases with array values output ${yaml_overwrite_reverse} with ${v1_subhelmfile_multi_bases_with_array_values_output_file}" -for i in $(seq 10); do - info "Comparing build/v1-subhelmfile-multi-bases-with-array-values #$i" - ${helmfile} -f ${v1_subhelmfile_multi_bases_with_array_values_input_dir}/helmfile.yaml.gotmpl template -e dev &> ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" - diff -u ${v1_subhelmfile_multi_bases_with_array_values_output_file} ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" - echo code=$? -done -test_pass "v1 subhelmfile multi bases with array values" \ No newline at end of file + test_start "v1 subhelmfile multi bases with array values" + info "Comparing v1 subhelmfile multi bases with array values output ${yaml_overwrite_reverse} with ${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result" + for i in $(seq 10); do + info "Comparing build/v1-subhelmfile-multi-bases-with-array-values #$i" + ${helmfile} -f ${v1_subhelmfile_multi_bases_with_array_values_input_dir}/helmfile.yaml.gotmpl template -e dev &> ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" + diff -u ${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" + echo code=$? + done + test_pass "v1 subhelmfile multi bases with array values" +else + test_pass "[skipped] v1 subhelmfile multi bases with array values" +fi \ No newline at end of file diff --git a/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live b/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live deleted file mode 100644 index ba42d6c6..00000000 --- a/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live +++ /dev/null @@ -1,25 +0,0 @@ -Live output is enabled -Adding repo incubator https://charts.helm.sh/incubator/ -"incubator" has been added to your repositories - -Templating release=helmfile-test, chart=incubator/raw ---- -# Source: raw/templates/resources.yaml -apiVersion: v1 -kind: Pod -metadata: - labels: - app: raw - chart: raw-0.1.0 - heritage: Helm - release: helmfile-test - name: test -spec: - containers: - - command: - - /bin/sh - - -c - - env - image: registry.k8s.io/busybox - name: test-container - diff --git a/test/integration/test-cases/yaml-overwrite.sh b/test/integration/test-cases/yaml-overwrite.sh index 617d8f97..a4a45825 100644 --- a/test/integration/test-cases/yaml-overwrite.sh +++ b/test/integration/test-cases/yaml-overwrite.sh @@ -1,15 +1,19 @@ -yaml_overwrite_case_input_dir="${cases_dir}/yaml-overwrite/input" -yaml_overwrite_case_output_dir="${cases_dir}/yaml-overwrite/output" +if [[ ${HELMFILE_V1MODE} = true ]]; then + yaml_overwrite_case_input_dir="${cases_dir}/yaml-overwrite/input" + yaml_overwrite_case_output_dir="${cases_dir}/yaml-overwrite/output" -yaml_overwrite_tmp=$(mktemp -d) -yaml_overwrite_reverse=${yaml_overwrite_tmp}/yaml.override.build.yaml + yaml_overwrite_tmp=$(mktemp -d) + yaml_overwrite_reverse=${yaml_overwrite_tmp}/yaml.override.build.yaml -test_start "yaml overwrite feature" -info "Comparing yaml overwrite feature output ${yaml_overwrite_reverse} with ${yaml_overwrite_case_output_dir}/overwritten.yaml" -for i in $(seq 10); do - info "Comparing build/yaml-overwrite #$i" - ${helmfile} -f ${yaml_overwrite_case_input_dir}/issue.657.yaml.gotmpl template --skip-deps > ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" - ./dyff between -bs ${yaml_overwrite_case_output_dir}/overwritten.yaml ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" - echo code=$? -done -test_pass "yaml overwrite feature" \ No newline at end of file + test_start "yaml overwrite feature" + info "Comparing yaml overwrite feature output ${yaml_overwrite_reverse} with ${yaml_overwrite_case_output_dir}/overwritten.yaml" + for i in $(seq 10); do + info "Comparing build/yaml-overwrite #$i" + ${helmfile} -f ${yaml_overwrite_case_input_dir}/issue.657.yaml.gotmpl template --skip-deps > ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" + ./dyff between -bs ${yaml_overwrite_case_output_dir}/overwritten.yaml ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" + echo code=$? + done + test_pass "yaml overwrite feature" +else + test_pass "[skipped] yaml overwrite feature" +fi \ No newline at end of file From 2a04e5deeffee5a20eae8765ad78ff4bddd22552 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 07:38:39 +0800 Subject: [PATCH 119/177] build(deps): bump github.com/goccy/go-yaml from 1.15.17 to 1.15.19 (#1920) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.17 to 1.15.19. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.17...v1.15.19) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 88a1cab6..3a32b4a5 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.17 + github.com/goccy/go-yaml v1.15.19 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 5b0cc146..f9589f2c 100644 --- a/go.sum +++ b/go.sum @@ -1010,8 +1010,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.15.17 h1:dK4FbbTTEOZTLH/NW3/xBqg0JdC14YKVmYwS9GT3H60= -github.com/goccy/go-yaml v1.15.17/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.19 h1:ivDxLiW6SbmqPZwSAM9Yq+Yr68C9FLbTNyuH3ITizxQ= +github.com/goccy/go-yaml v1.15.19/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 8169595b9526c561b45c8768c7b0afb6b8b5ed62 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 06:47:30 +0800 Subject: [PATCH 120/177] build(deps): bump github.com/goccy/go-yaml from 1.15.19 to 1.15.20 (#1921) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3a32b4a5..2ef05f81 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.19 + github.com/goccy/go-yaml v1.15.20 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index f9589f2c..f44f50d7 100644 --- a/go.sum +++ b/go.sum @@ -1010,8 +1010,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.15.19 h1:ivDxLiW6SbmqPZwSAM9Yq+Yr68C9FLbTNyuH3ITizxQ= -github.com/goccy/go-yaml v1.15.19/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.20 h1:eQHFLrr1lpLYAxupPD9ThZbGtncPl9nyu3nkAayEZgY= +github.com/goccy/go-yaml v1.15.20/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 2c38611acd07a4f22693c35630c68af673f5be66 Mon Sep 17 00:00:00 2001 From: Connor Hindley Date: Tue, 11 Feb 2025 17:28:37 -0600 Subject: [PATCH 121/177] feat: Add support for --wait-retries flag. (#1922) * feat: Add support for --wait-retries flag. This change wires up waitRetries option to set the helm --wait-retries flag. --wait-retries was added in helm 3.15.0 and makes waiting more robust to registry errors. https://github.com/helm/helm/commit/fc74964 https://github.com/helm/helm/releases/tag/v3.15.0 Resolves #1522 Signed-off-by: Connor Hindley --- docs/index.md | 3 ++ pkg/app/app.go | 4 +++ pkg/app/app_test.go | 5 +++ pkg/app/config.go | 2 ++ pkg/config/apply.go | 7 +++++ pkg/config/sync.go | 7 +++++ pkg/state/helmx.go | 19 +++++++++++- pkg/state/helmx_test.go | 67 ++++++++++++++++++++++++++++++++++++++++- pkg/state/state.go | 8 ++++- pkg/state/temp_test.go | 12 ++++---- 10 files changed, 125 insertions(+), 9 deletions(-) diff --git a/docs/index.md b/docs/index.md index 88c819b7..22bf5fbe 100644 --- a/docs/index.md +++ b/docs/index.md @@ -195,6 +195,8 @@ helmDefaults: keyring: path/to/keyring.gpg # wait for k8s resources via --wait. (default false) wait: true + # if set and --wait enabled, will retry any failed check on resource state subject to the specified number of retries (default 0) + waitRetries: 3 # if set and --wait enabled, will wait until all Jobs have been completed before marking the release as successful. It will wait for as long as --timeout (default false, Implemented in Helm3.5) waitForJobs: true # time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness) (default 300) @@ -312,6 +314,7 @@ releases: verify: true keyring: path/to/keyring.gpg wait: true + waitRetries: 3 waitForJobs: true timeout: 60 recreatePods: true diff --git a/pkg/app/app.go b/pkg/app/app.go index 91beba57..23304dfc 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -385,6 +385,7 @@ func (a *App) Sync(c SyncConfigProvider) error { SkipRefresh: c.SkipRefresh(), SkipDeps: c.SkipDeps(), Wait: c.Wait(), + WaitRetries: c.WaitRetries(), WaitForJobs: c.WaitForJobs(), IncludeCRDs: &includeCRDs, IncludeTransitiveNeeds: c.IncludeNeeds(), @@ -419,6 +420,7 @@ func (a *App) Apply(c ApplyConfigProvider) error { SkipRefresh: c.SkipRefresh(), SkipDeps: c.SkipDeps(), Wait: c.Wait(), + WaitRetries: c.WaitRetries(), WaitForJobs: c.WaitForJobs(), IncludeCRDs: &includeCRDs, SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), @@ -1546,6 +1548,7 @@ Do you really want to apply? SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), SkipCRDs: c.SkipCRDs(), Wait: c.Wait(), + WaitRetries: c.WaitRetries(), WaitForJobs: c.WaitForJobs(), ReuseValues: c.ReuseValues(), ResetValues: c.ResetValues(), @@ -1943,6 +1946,7 @@ Do you really want to sync? Set: c.Set(), SkipCRDs: c.SkipCRDs(), Wait: c.Wait(), + WaitRetries: c.WaitRetries(), WaitForJobs: c.WaitForJobs(), ReuseValues: c.ReuseValues(), ResetValues: c.ResetValues(), diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index df79ee51..90c3f1ce 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -2244,6 +2244,7 @@ type applyConfig struct { diffArgs string logger *zap.SugaredLogger wait bool + waitRetries int waitForJobs bool reuseValues bool postRenderer string @@ -2272,6 +2273,10 @@ func (a applyConfig) Wait() bool { return a.wait } +func (a applyConfig) WaitRetries() int { + return a.waitRetries +} + func (a applyConfig) WaitForJobs() bool { return a.waitForJobs } diff --git a/pkg/app/config.go b/pkg/app/config.go index b6e3a064..ecccc0dc 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -63,6 +63,7 @@ type ApplyConfigProvider interface { SkipDeps() bool SkipRefresh() bool Wait() bool + WaitRetries() int WaitForJobs() bool IncludeTests() bool @@ -113,6 +114,7 @@ type SyncConfigProvider interface { SkipDeps() bool SkipRefresh() bool Wait() bool + WaitRetries() int WaitForJobs() bool SyncArgs() string diff --git a/pkg/config/apply.go b/pkg/config/apply.go index 4d67aa61..1b34a88b 100644 --- a/pkg/config/apply.go +++ b/pkg/config/apply.go @@ -50,6 +50,8 @@ type ApplyOptions struct { SuppressDiff bool // Wait is true if the helm command should wait for the release to be deployed Wait bool + // WaitRetries is the number of times to retry waiting for the release to be deployed + WaitRetries int // WaitForJobs is true if the helm command should wait for the jobs to be completed WaitForJobs bool // Propagate '--skipSchemaValidation' to helmv3 template and helm install @@ -213,6 +215,11 @@ func (a *ApplyImpl) Wait() bool { return a.ApplyOptions.Wait } +// WaitRetries returns the wait retries. +func (a *ApplyImpl) WaitRetries() int { + return a.ApplyOptions.WaitRetries +} + // WaitForJobs returns the wait for jobs. func (a *ApplyImpl) WaitForJobs() bool { return a.ApplyOptions.WaitForJobs diff --git a/pkg/config/sync.go b/pkg/config/sync.go index c8927b72..aaea12bb 100644 --- a/pkg/config/sync.go +++ b/pkg/config/sync.go @@ -20,6 +20,8 @@ type SyncOptions struct { SkipCRDs bool // Wait is the wait flag Wait bool + // WaitRetries is the wait retries flag + WaitRetries int // WaitForJobs is the wait for jobs flag WaitForJobs bool // ReuseValues is true if the helm command should reuse the values @@ -110,6 +112,11 @@ func (t *SyncImpl) Wait() bool { return t.SyncOptions.Wait } +// WaitRetries returns the wait retries +func (t *SyncImpl) WaitRetries() int { + return t.SyncOptions.WaitRetries +} + // WaitForJobs returns the wait for jobs func (t *SyncImpl) WaitForJobs() bool { return t.SyncOptions.WaitForJobs diff --git a/pkg/state/helmx.go b/pkg/state/helmx.go index 88e8e98a..2988a605 100644 --- a/pkg/state/helmx.go +++ b/pkg/state/helmx.go @@ -4,6 +4,7 @@ import ( "fmt" "os" "path/filepath" + "strconv" "github.com/helmfile/chartify" @@ -105,15 +106,31 @@ func (st *HelmState) appendWaitForJobsFlags(flags []string, release *ReleaseSpec return flags } -func (st *HelmState) appendWaitFlags(flags []string, release *ReleaseSpec, ops *SyncOpts) []string { +func (st *HelmState) appendWaitFlags(flags []string, helm helmexec.Interface, release *ReleaseSpec, ops *SyncOpts) []string { + var hasWait bool switch { case release.Wait != nil && *release.Wait: + hasWait = true flags = append(flags, "--wait") case ops != nil && ops.Wait: + hasWait = true flags = append(flags, "--wait") case release.Wait == nil && st.HelmDefaults.Wait: + hasWait = true flags = append(flags, "--wait") } + // see https://github.com/helm/helm/releases/tag/v3.15.0 + // https://github.com/helm/helm/commit/fc74964 + if hasWait && helm.IsVersionAtLeast("3.15.0") { + switch { + case release.WaitRetries != nil && *release.WaitRetries > 0: + flags = append(flags, "--wait-retries", strconv.Itoa(*release.WaitRetries)) + case ops != nil && ops.WaitRetries > 0: + flags = append(flags, "--wait-retries", strconv.Itoa(ops.WaitRetries)) + case release.WaitRetries == nil && st.HelmDefaults.WaitRetries > 0: + flags = append(flags, "--wait-retries", strconv.Itoa(st.HelmDefaults.WaitRetries)) + } + } return flags } diff --git a/pkg/state/helmx_test.go b/pkg/state/helmx_test.go index c9cdc44f..d60cd225 100644 --- a/pkg/state/helmx_test.go +++ b/pkg/state/helmx_test.go @@ -76,13 +76,16 @@ func TestAppendWaitFlags(t *testing.T) { name string release *ReleaseSpec syncOpts *SyncOpts + helm helmexec.Interface helmSpec HelmSpec expected []string }{ + // --wait { name: "release wait", release: &ReleaseSpec{Wait: &[]bool{true}[0]}, syncOpts: nil, + helm: testutil.NewVersionHelmExec("3.11.0"), helmSpec: HelmSpec{}, expected: []string{"--wait"}, }, @@ -90,6 +93,7 @@ func TestAppendWaitFlags(t *testing.T) { name: "cli flags wait", release: &ReleaseSpec{}, syncOpts: &SyncOpts{Wait: true}, + helm: testutil.NewVersionHelmExec("3.11.0"), helmSpec: HelmSpec{}, expected: []string{"--wait"}, }, @@ -97,6 +101,7 @@ func TestAppendWaitFlags(t *testing.T) { name: "helm defaults wait", release: &ReleaseSpec{}, syncOpts: nil, + helm: testutil.NewVersionHelmExec("3.11.0"), helmSpec: HelmSpec{Wait: true}, expected: []string{"--wait"}, }, @@ -104,6 +109,7 @@ func TestAppendWaitFlags(t *testing.T) { name: "release wait false", release: &ReleaseSpec{Wait: &[]bool{false}[0]}, syncOpts: nil, + helm: testutil.NewVersionHelmExec("3.11.0"), helmSpec: HelmSpec{Wait: true}, expected: []string{}, }, @@ -111,6 +117,7 @@ func TestAppendWaitFlags(t *testing.T) { name: "cli flags wait false", release: &ReleaseSpec{}, syncOpts: &SyncOpts{}, + helm: testutil.NewVersionHelmExec("3.11.0"), helmSpec: HelmSpec{Wait: true}, expected: []string{"--wait"}, }, @@ -118,16 +125,74 @@ func TestAppendWaitFlags(t *testing.T) { name: "helm defaults wait false", release: &ReleaseSpec{}, syncOpts: nil, + helm: testutil.NewVersionHelmExec("3.11.0"), helmSpec: HelmSpec{Wait: false}, expected: []string{}, }, + // --wait-retries + { + name: "release wait and retry unsupported", + release: &ReleaseSpec{Wait: &[]bool{true}[0], WaitRetries: &[]int{1}[0]}, + syncOpts: nil, + helm: testutil.NewVersionHelmExec("3.11.0"), + helmSpec: HelmSpec{}, + expected: []string{"--wait"}, + }, + { + name: "release wait and retry supported", + release: &ReleaseSpec{Wait: &[]bool{true}[0], WaitRetries: &[]int{1}[0]}, + syncOpts: nil, + helm: testutil.NewVersionHelmExec("3.15.0"), + helmSpec: HelmSpec{}, + expected: []string{"--wait", "--wait-retries", "1"}, + }, + { + name: "no wait retry", + release: &ReleaseSpec{WaitRetries: &[]int{1}[0]}, + syncOpts: nil, + helm: testutil.NewVersionHelmExec("3.15.0"), + helmSpec: HelmSpec{}, + expected: []string{}, + }, + { + name: "cli flags wait and retry", + release: &ReleaseSpec{}, + syncOpts: &SyncOpts{Wait: true, WaitRetries: 2}, + helm: testutil.NewVersionHelmExec("3.15.0"), + helmSpec: HelmSpec{}, + expected: []string{"--wait", "--wait-retries", "2"}, + }, + { + name: "helm defaults wait retry", + release: &ReleaseSpec{}, + syncOpts: nil, + helm: testutil.NewVersionHelmExec("3.15.0"), + helmSpec: HelmSpec{Wait: true, WaitRetries: 3}, + expected: []string{"--wait", "--wait-retries", "3"}, + }, + { + name: "release wait default retries", + release: &ReleaseSpec{Wait: &[]bool{true}[0]}, + syncOpts: nil, + helm: testutil.NewVersionHelmExec("3.15.0"), + helmSpec: HelmSpec{WaitRetries: 4}, + expected: []string{"--wait", "--wait-retries", "4"}, + }, + { + name: "release retries default wait", + release: &ReleaseSpec{WaitRetries: &[]int{5}[0]}, + syncOpts: nil, + helm: testutil.NewVersionHelmExec("3.15.0"), + helmSpec: HelmSpec{Wait: true}, + expected: []string{"--wait", "--wait-retries", "5"}, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { st := &HelmState{} st.HelmDefaults = tt.helmSpec - got := st.appendWaitFlags([]string{}, tt.release, tt.syncOpts) + got := st.appendWaitFlags([]string{}, tt.helm, tt.release, tt.syncOpts) require.Equalf(t, tt.expected, got, "appendWaitFlags() = %v, want %v", got, tt.expected) }) } diff --git a/pkg/state/state.go b/pkg/state/state.go index a28c05d9..38215228 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -167,6 +167,8 @@ type HelmSpec struct { Devel bool `yaml:"devel"` // Wait, if set to true, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful Wait bool `yaml:"wait"` + // WaitRetries, if set and --wait enabled, will retry any failed check on resource state, except if HTTP status code < 500 is received, subject to the specified number of retries + WaitRetries int `yaml:"waitRetries"` // WaitForJobs, if set and --wait enabled, will wait until all Jobs have been completed before marking the release as successful. It will wait for as long as --timeout WaitForJobs bool `yaml:"waitForJobs"` // Timeout is the time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness) (default 300) @@ -262,6 +264,8 @@ type ReleaseSpec struct { Devel *bool `yaml:"devel,omitempty"` // Wait, if set to true, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful Wait *bool `yaml:"wait,omitempty"` + // WaitRetries, if set and --wait enabled, will retry any failed check on resource state, except if HTTP status code < 500 is received, subject to the specified number of retries + WaitRetries *int `yaml:"waitRetries,omitempty"` // WaitForJobs, if set and --wait enabled, will wait until all Jobs have been completed before marking the release as successful. It will wait for as long as --timeout WaitForJobs *bool `yaml:"waitForJobs,omitempty"` // Timeout is the time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness) (default 300) @@ -781,6 +785,7 @@ type SyncOpts struct { SkipCleanup bool SkipCRDs bool Wait bool + WaitRetries int WaitForJobs bool ReuseValues bool ResetValues bool @@ -1122,6 +1127,7 @@ type ChartPrepareOptions struct { Validate bool IncludeCRDs *bool Wait bool + WaitRetries int WaitForJobs bool OutputDir string OutputDirTemplate string @@ -2730,7 +2736,7 @@ func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSp flags = append(flags, "--enable-dns") } - flags = st.appendWaitFlags(flags, release, opt) + flags = st.appendWaitFlags(flags, helm, release, opt) flags = st.appendWaitForJobsFlags(flags, release, opt) // non-OCI chart should be verified here diff --git a/pkg/state/temp_test.go b/pkg/state/temp_test.go index cc6769be..596d2dde 100644 --- a/pkg/state/temp_test.go +++ b/pkg/state/temp_test.go @@ -38,39 +38,39 @@ func TestGenerateID(t *testing.T) { run(testcase{ subject: "baseline", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, - want: "foo-values-5b58697694", + want: "foo-values-669d45cd7b", }) run(testcase{ subject: "different bytes content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: []byte(`{"k":"v"}`), - want: "foo-values-58bff47d77", + want: "foo-values-67d8c67fcf", }) run(testcase{ subject: "different map content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: map[string]any{"k": "v"}, - want: "foo-values-5fb8948f75", + want: "foo-values-b9bc64677", }) run(testcase{ subject: "different chart", release: ReleaseSpec{Name: "foo", Chart: "stable/envoy"}, - want: "foo-values-784b76684f", + want: "foo-values-585c4565f5", }) run(testcase{ subject: "different name", release: ReleaseSpec{Name: "bar", Chart: "incubator/raw"}, - want: "bar-values-f48df5f49", + want: "bar-values-c94846459", }) run(testcase{ subject: "specific ns", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw", Namespace: "myns"}, - want: "myns-foo-values-6b68696b8c", + want: "myns-foo-values-798d69477", }) for id, n := range ids { From 41d8070b85e461505cc8eb3ad6ca1e75e44c3936 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Wed, 12 Feb 2025 14:31:19 +0800 Subject: [PATCH 122/177] build: update go-yaml to v1.15.21 (#1923) Signed-off-by: yxxhero --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 2ef05f81..867cde3e 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.20 + github.com/goccy/go-yaml v1.15.21 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index f44f50d7..3279fc80 100644 --- a/go.sum +++ b/go.sum @@ -1012,6 +1012,8 @@ github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJA github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-yaml v1.15.20 h1:eQHFLrr1lpLYAxupPD9ThZbGtncPl9nyu3nkAayEZgY= github.com/goccy/go-yaml v1.15.20/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.21 h1:MihyxsYo59zPPZUE0Z5XPQPXW7kVLGGlcq9rMKAu7bs= +github.com/goccy/go-yaml v1.15.21/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 13c0b37e8e5a2e24646c1f6be23c21e81e1ed062 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 07:14:17 +0800 Subject: [PATCH 123/177] build(deps): bump github.com/helmfile/vals from 0.39.0 to 0.39.1 (#1926) --- go.mod | 18 +++++++++--------- go.sum | 38 ++++++++++++++++++-------------------- 2 files changed, 27 insertions(+), 29 deletions(-) diff --git a/go.mod b/go.mod index 867cde3e..482ed4e1 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.20.8 - github.com/helmfile/vals v0.39.0 + github.com/helmfile/vals v0.39.1 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 @@ -53,7 +53,7 @@ require ( github.com/blang/semver v3.5.1+incompatible // indirect github.com/dimchansky/utfbom v1.1.1 // indirect github.com/fatih/color v1.18.0 // indirect - github.com/fujiwara/tfstate-lookup v1.4.2 // indirect + github.com/fujiwara/tfstate-lookup v1.5.0 // indirect github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect @@ -72,7 +72,7 @@ require ( github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/jsonapi v1.3.1 // indirect - github.com/hashicorp/vault/api v1.15.0 // indirect + github.com/hashicorp/vault/api v1.16.0 // indirect github.com/huandu/xstrings v1.5.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/itchyny/gojq v0.12.16 // indirect @@ -98,7 +98,7 @@ require ( go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.34.0 // indirect - golang.org/x/oauth2 v0.25.0 // indirect + golang.org/x/oauth2 v0.26.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.8.0 // indirect @@ -122,7 +122,7 @@ require ( cloud.google.com/go/monitoring v1.21.2 // indirect cloud.google.com/go/secretmanager v1.14.3 // indirect github.com/1Password/connect-sdk-go v1.5.3 // indirect - github.com/1password/onepassword-sdk-go v0.1.6 // indirect + github.com/1password/onepassword-sdk-go v0.1.7 // indirect github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/AlecAivazis/survey/v2 v2.3.6 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 // indirect @@ -182,7 +182,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/containerd/platforms v0.2.1 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect - github.com/cyberark/conjur-api-go v0.12.10 // indirect + github.com/cyberark/conjur-api-go v0.12.12 // indirect github.com/danieljoos/wincred v1.2.2 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/cli v27.3.1+incompatible // indirect @@ -235,7 +235,7 @@ require ( github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcp-sdk-go v0.131.0 // indirect + github.com/hashicorp/hcp-sdk-go v0.135.0 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect @@ -306,10 +306,10 @@ require ( 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.32.0 // indirect + k8s.io/api v0.32.1 // indirect k8s.io/apiextensions-apiserver v0.32.0 // indirect k8s.io/cli-runtime v0.32.0 // indirect - k8s.io/client-go v0.32.0 // indirect + k8s.io/client-go v0.32.1 // indirect k8s.io/component-base v0.32.0 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect diff --git a/go.sum b/go.sum index 3279fc80..1058a007 100644 --- a/go.sum +++ b/go.sum @@ -631,8 +631,8 @@ gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zum git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/1Password/connect-sdk-go v1.5.3 h1:KyjJ+kCKj6BwB2Y8tPM1Ixg5uIS6HsB0uWA8U38p/Uk= github.com/1Password/connect-sdk-go v1.5.3/go.mod h1:5rSymY4oIYtS4G3t0oMkGAXBeoYiukV3vkqlnEjIDJs= -github.com/1password/onepassword-sdk-go v0.1.6 h1:oXmysmOSqhJ5S1+ViV33xwbrE8/0EJjPRo4a3o9afmU= -github.com/1password/onepassword-sdk-go v0.1.6/go.mod h1:tCgAKPZA64sVLmwizpOtFVc+OtXYHCwSp/+2Y+7CxyY= +github.com/1password/onepassword-sdk-go v0.1.7 h1:KGvK3nL5+jfDstcAVG5DZVQdAAJqZi1bhzPlPMI3jQs= +github.com/1password/onepassword-sdk-go v0.1.7/go.mod h1:tCgAKPZA64sVLmwizpOtFVc+OtXYHCwSp/+2Y+7CxyY= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AlecAivazis/survey/v2 v2.3.6 h1:NvTuVHISgTHEHeBFqt6BHOe4Ny/NwGZr7w+F8S9ziyw= @@ -869,8 +869,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 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.12.10 h1:exseTvvp7l4Fhw6RTE0kq9Ddipsk+941k945Nyoq8CE= -github.com/cyberark/conjur-api-go v0.12.10/go.mod h1:XNoyT5ZBLJAGjqXmelLv+eYMG4QxYkZWiw1zld3m0QQ= +github.com/cyberark/conjur-api-go v0.12.12 h1:1/wwnI3BfxTyC3fksWipljjdDkcVKvJmPUe4fRB3AKo= +github.com/cyberark/conjur-api-go v0.12.12/go.mod h1:XNoyT5ZBLJAGjqXmelLv+eYMG4QxYkZWiw1zld3m0QQ= github.com/danieljoos/wincred v1.2.2 h1:774zMFJrqaeYCK2W57BgAem/MLi6mtSE47MB6BOJ0i0= github.com/danieljoos/wincred v1.2.2/go.mod h1:w7w4Utbrz8lqeMbDAK0lkNJUv5sAOkFi7nd/ogr0Uh8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -947,8 +947,8 @@ github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7Dlme github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fujiwara/tfstate-lookup v1.4.2 h1:Mmsf+li1h+bfeqgKwFw4lz74g89ooMlDp99cOb3aZ4c= -github.com/fujiwara/tfstate-lookup v1.4.2/go.mod h1:C/n3SgmKG5Q3R/CuoOJLkSwtUDp6pUIVwShLPSFcZCw= +github.com/fujiwara/tfstate-lookup v1.5.0 h1:aH6taxOnqdLsf6OYLTpu1S2jdGyIByw+kIRdUpyx7IQ= +github.com/fujiwara/tfstate-lookup v1.5.0/go.mod h1:8Lx6yUGa402ko/I9nv5FMpfKfgc4ZUM2uNx06WJu+1E= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe h1:QKe/kmAYbndxwu91TcjHERsnMh5SgOB1x/qicvOdUJ8= @@ -1010,8 +1010,6 @@ github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.15.20 h1:eQHFLrr1lpLYAxupPD9ThZbGtncPl9nyu3nkAayEZgY= -github.com/goccy/go-yaml v1.15.20/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/goccy/go-yaml v1.15.21 h1:MihyxsYo59zPPZUE0Z5XPQPXW7kVLGGlcq9rMKAu7bs= github.com/goccy/go-yaml v1.15.21/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= @@ -1210,16 +1208,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos= github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= -github.com/hashicorp/hcp-sdk-go v0.131.0 h1:2o2peovPIJ1/yj3GGcxyMn0ndiGaCML0mosnsHPsikE= -github.com/hashicorp/hcp-sdk-go v0.131.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= +github.com/hashicorp/hcp-sdk-go v0.135.0 h1:INwgXXbc/8sBngWxGSfL/j0sCwWb1LJiuNMaf1R06fY= +github.com/hashicorp/hcp-sdk-go v0.135.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1DdPo= github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= -github.com/hashicorp/vault/api v1.15.0 h1:O24FYQCWwhwKnF7CuSqP30S51rTV7vz1iACXE/pj5DA= -github.com/hashicorp/vault/api v1.15.0/go.mod h1:+5YTO09JGn0u+b6ySD/LLVf8WkJCPLAL2Vkmrn2+CM8= +github.com/hashicorp/vault/api v1.16.0 h1:nbEYGJiAPGzT9U4oWgaaB0g+Rj8E59QuHKyA5LhwQN4= +github.com/hashicorp/vault/api v1.16.0/go.mod h1:KhuUhzOD8lDSk29AtzNjgAu2kxRA9jL9NAbkFlqvkBA= github.com/helmfile/chartify v0.20.8 h1:vRzQ6Mb8OEncoA3K5RYtup5JVzy5waUSK24MBXK3CTY= github.com/helmfile/chartify v0.20.8/go.mod h1:mWN+sWWf+lnA225jZIqqgpwbGjiT3NAQHGCm5vdC0zw= -github.com/helmfile/vals v0.39.0 h1:8V1NN4ac7SHFCjq3tlTO8zHKFQ26DY9qVGRKPhYDHoE= -github.com/helmfile/vals v0.39.0/go.mod h1:GoA8SSsiX661IFaG4E5O+FSPl+hW2MLyWR9zxzAjR+A= +github.com/helmfile/vals v0.39.1 h1:8QJpC1Jk6vtaD0C1buxVv2aEelMtknIZNUN3Ba6HSes= +github.com/helmfile/vals v0.39.1/go.mod h1:l80Z9s7XSNEpUU544t4i9zv0RwU6Q0inC7wE14mbm24= 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= @@ -1752,8 +1750,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= -golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE= +golang.org/x/oauth2 v0.26.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -2299,16 +2297,16 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE= -k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0= +k8s.io/api v0.32.1 h1:f562zw9cy+GvXzXf0CKlVQ7yHJVYzLfL6JAS4kOAaOc= +k8s.io/api v0.32.1/go.mod h1:/Yi/BqkuueW1BgpoePYBRdDYfjPF5sgTr5+YqDZra5k= k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0= k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw= k8s.io/apimachinery v0.32.1 h1:683ENpaCBjma4CYqsmZyhEzrGz6cjn1MY/X2jB2hkZs= k8s.io/apimachinery v0.32.1/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= k8s.io/cli-runtime v0.32.0 h1:dP+OZqs7zHPpGQMCGAhectbHU2SNCuZtIimRKTv2T1c= k8s.io/cli-runtime v0.32.0/go.mod h1:Mai8ht2+esoDRK5hr861KRy6z0zHsSTYttNVJXgP3YQ= -k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8= -k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8= +k8s.io/client-go v0.32.1 h1:otM0AxdhdBIaQh7l1Q0jQpmo7WOFIk5FFa4bg6YMdUU= +k8s.io/client-go v0.32.1/go.mod h1:aTTKZY7MdxUaJ/KiUs8D+GssR9zJZi77ZqtzcGXIiDg= k8s.io/component-base v0.32.0 h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU= k8s.io/component-base v0.32.0/go.mod h1:JLG2W5TUxUu5uDyKiH2R/7NnxJo1HlPoRIIbVLkK5eM= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= From 486134ca4e2cb6a5b38134f86b9bcf1708fbb29d Mon Sep 17 00:00:00 2001 From: Daniel Kugler Date: Thu, 13 Feb 2025 00:33:08 +0100 Subject: [PATCH 124/177] Bump kubectl to current version (1.32.1) (#1924) --- .github/workflows/Makefile | 2 +- Dockerfile | 6 +++--- Dockerfile.debian-stable-slim | 6 +++--- Dockerfile.ubuntu | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/Makefile b/.github/workflows/Makefile index f85b53bc..299e5e2f 100644 --- a/.github/workflows/Makefile +++ b/.github/workflows/Makefile @@ -1,6 +1,6 @@ HELM_VERSION ?= v3.7.2 KUSTOMIZE_VERSION ?= v5.4.3 -K8S_VERSION ?= v1.30.8 +K8S_VERSION ?= v1.32.1 MINIKUBE_VERSION ?= v1.31.1 SOPS_VERSION ?= v3.9.3 diff --git a/Dockerfile b/Dockerfile index fef2853c..1c690970 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,12 +50,12 @@ RUN set -x && \ # 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.30.8" +ENV KUBECTL_VERSION="v1.32.1" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl" && \ case ${TARGETPLATFORM} in \ - "linux/amd64") KUBECTL_SHA256="7f39bdcf768ce4b8c1428894c70c49c8b4d2eee52f3606eb02f5f7d10f66d692" ;; \ - "linux/arm64") KUBECTL_SHA256="e51d6a76fade0871a9143b64dc62a5ff44f369aa6cb4b04967d93798bf39d15b" ;; \ + "linux/amd64") KUBECTL_SHA256="e16c80f1a9f94db31063477eb9e61a2e24c1a4eee09ba776b029048f5369db0c" ;; \ + "linux/arm64") KUBECTL_SHA256="98206fd83a4fd17f013f8c61c33d0ae8ec3a7c53ec59ef3d6a0a9400862dc5b2" ;; \ esac && \ echo "${KUBECTL_SHA256} kubectl" | sha256sum -c && \ chmod +x kubectl && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index d19a5d40..a4f92af9 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -55,13 +55,13 @@ RUN set -x && \ # 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.30.8" +ENV KUBECTL_VERSION="v1.32.1" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl" && \ case ${TARGETPLATFORM} in \ # checksums are available at https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256 - "linux/amd64") KUBECTL_SHA256="7f39bdcf768ce4b8c1428894c70c49c8b4d2eee52f3606eb02f5f7d10f66d692" ;; \ - "linux/arm64") KUBECTL_SHA256="e51d6a76fade0871a9143b64dc62a5ff44f369aa6cb4b04967d93798bf39d15b" ;; \ + "linux/amd64") KUBECTL_SHA256="e16c80f1a9f94db31063477eb9e61a2e24c1a4eee09ba776b029048f5369db0c" ;; \ + "linux/arm64") KUBECTL_SHA256="98206fd83a4fd17f013f8c61c33d0ae8ec3a7c53ec59ef3d6a0a9400862dc5b2" ;; \ esac && \ echo "${KUBECTL_SHA256} kubectl" | sha256sum -c && \ chmod +x kubectl && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 55226c9c..04870224 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -55,13 +55,13 @@ RUN set -x && \ # 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.30.8" +ENV KUBECTL_VERSION="v1.32.1" RUN set -x && \ curl --retry 5 --retry-connrefused -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl" && \ case ${TARGETPLATFORM} in \ # checksums are available at https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256 - "linux/amd64") KUBECTL_SHA256="7f39bdcf768ce4b8c1428894c70c49c8b4d2eee52f3606eb02f5f7d10f66d692" ;; \ - "linux/arm64") KUBECTL_SHA256="e51d6a76fade0871a9143b64dc62a5ff44f369aa6cb4b04967d93798bf39d15b" ;; \ + "linux/amd64") KUBECTL_SHA256="e16c80f1a9f94db31063477eb9e61a2e24c1a4eee09ba776b029048f5369db0c" ;; \ + "linux/arm64") KUBECTL_SHA256="98206fd83a4fd17f013f8c61c33d0ae8ec3a7c53ec59ef3d6a0a9400862dc5b2" ;; \ esac && \ echo "${KUBECTL_SHA256} kubectl" | sha256sum -c && \ chmod +x kubectl && \ From 9685a0bfe7848d8c3b54d6fc1156ee24d33da75d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 07:58:01 +0800 Subject: [PATCH 125/177] build(deps): bump github.com/goccy/go-yaml from 1.15.21 to 1.15.22 (#1925) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.21 to 1.15.22. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.21...v1.15.22) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 482ed4e1..1e561c9f 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.21 + github.com/goccy/go-yaml v1.15.22 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 1058a007..53232e04 100644 --- a/go.sum +++ b/go.sum @@ -1010,8 +1010,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.15.21 h1:MihyxsYo59zPPZUE0Z5XPQPXW7kVLGGlcq9rMKAu7bs= -github.com/goccy/go-yaml v1.15.21/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.22 h1:iQI1hvCoiYYiVFq76P4AI8ImgDOfgiyKnl/AWjK8/gA= +github.com/goccy/go-yaml v1.15.22/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 9c380668eca49a0954194de22a8bcbdd31e23c36 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Thu, 13 Feb 2025 15:48:05 +0800 Subject: [PATCH 126/177] build: update Helm to v3.17.1 and related dependencies (#1928) Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 8 ++++---- Dockerfile | 6 +++--- Dockerfile.debian-stable-slim | 6 +++--- Dockerfile.ubuntu | 6 +++--- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- pkg/app/init.go | 2 +- 7 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2e25b18c..3b1b2669 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -71,20 +71,20 @@ jobs: plugin-diff-version: 3.9.14 extra-helmfile-flags: '' v1mode: '' - - helm-version: v3.17.0 + - helm-version: v3.17.1 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' v1mode: '' - - helm-version: v3.17.0 + - helm-version: v3.17.1 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '' v1mode: '' # Helmfile v1 - - helm-version: v3.17.0 + - helm-version: v3.17.1 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 @@ -92,7 +92,7 @@ jobs: v1mode: 'true' # In case you need to test some optional helmfile features, # enable it via extra-helmfile-flags below. - - helm-version: v3.17.0 + - helm-version: v3.17.1 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 diff --git a/Dockerfile b/Dockerfile index 1c690970..938a82d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.17.0" +ARG HELM_VERSION="v3.17.1" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="fb5d12662fde6eeff36ac4ccacbf3abed96b0ee2de07afdde4edb14e613aee24" ;; \ - "linux/arm64") HELM_SHA256="c4d4be8e80082b7eaa411e3e231d62cf05d01cddfef59b0d01006a7901e11ee4" ;; \ + "linux/amd64") HELM_SHA256="3b66f3cd28409f29832b1b35b43d9922959a32d795003149707fea84cbcd4469" ;; \ + "linux/arm64") HELM_SHA256="c86c9b23602d4abbfae39d9634e25ab1d0ea6c4c16c5b154113efe316a402547" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index a4f92af9..86b56dde 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.17.0" +ARG HELM_VERSION="v3.17.1" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="fb5d12662fde6eeff36ac4ccacbf3abed96b0ee2de07afdde4edb14e613aee24" ;; \ - "linux/arm64") HELM_SHA256="c4d4be8e80082b7eaa411e3e231d62cf05d01cddfef59b0d01006a7901e11ee4" ;; \ + "linux/amd64") HELM_SHA256="3b66f3cd28409f29832b1b35b43d9922959a32d795003149707fea84cbcd4469" ;; \ + "linux/arm64") HELM_SHA256="c86c9b23602d4abbfae39d9634e25ab1d0ea6c4c16c5b154113efe316a402547" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 04870224..f2c01e0c 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.17.0" +ARG HELM_VERSION="v3.17.1" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="fb5d12662fde6eeff36ac4ccacbf3abed96b0ee2de07afdde4edb14e613aee24" ;; \ - "linux/arm64") HELM_SHA256="c4d4be8e80082b7eaa411e3e231d62cf05d01cddfef59b0d01006a7901e11ee4" ;; \ + "linux/amd64") HELM_SHA256="3b66f3cd28409f29832b1b35b43d9922959a32d795003149707fea84cbcd4469" ;; \ + "linux/arm64") HELM_SHA256="c86c9b23602d4abbfae39d9634e25ab1d0ea6c4c16c5b154113efe316a402547" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/go.mod b/go.mod index 1e561c9f..d6f4492e 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( golang.org/x/sync v0.11.0 golang.org/x/term v0.29.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.17.0 + helm.sh/helm/v3 v3.17.1 k8s.io/apimachinery v0.32.1 ) @@ -307,13 +307,13 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/api v0.32.1 // indirect - k8s.io/apiextensions-apiserver v0.32.0 // indirect - k8s.io/cli-runtime v0.32.0 // indirect + k8s.io/apiextensions-apiserver v0.32.1 // indirect + k8s.io/cli-runtime v0.32.1 // indirect k8s.io/client-go v0.32.1 // indirect - k8s.io/component-base v0.32.0 // indirect + k8s.io/component-base v0.32.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect - k8s.io/kubectl v0.32.0 // indirect + k8s.io/kubectl v0.32.1 // indirect k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect oras.land/oras-go v1.2.5 // indirect sigs.k8s.io/kustomize/api v0.18.0 // indirect diff --git a/go.sum b/go.sum index 53232e04..9d723a3a 100644 --- a/go.sum +++ b/go.sum @@ -2287,8 +2287,8 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -helm.sh/helm/v3 v3.17.0 h1:DUD4AGdNVn7PSTYfxe1gmQG7s18QeWv/4jI9TubnhT0= -helm.sh/helm/v3 v3.17.0/go.mod h1:Mo7eGyKPPHlS0Ml67W8z/lbkox/gD9Xt1XpD6bxvZZA= +helm.sh/helm/v3 v3.17.1 h1:gzVoAD+qVuoJU6KDMSAeo0xRJ6N1znRxz3wyuXRmJDk= +helm.sh/helm/v3 v3.17.1/go.mod h1:nvreuhuR+j78NkQcLC3TYoprCKStLyw5P4T7E5itv2w= 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= @@ -2299,22 +2299,22 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= k8s.io/api v0.32.1 h1:f562zw9cy+GvXzXf0CKlVQ7yHJVYzLfL6JAS4kOAaOc= k8s.io/api v0.32.1/go.mod h1:/Yi/BqkuueW1BgpoePYBRdDYfjPF5sgTr5+YqDZra5k= -k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0= -k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw= +k8s.io/apiextensions-apiserver v0.32.1 h1:hjkALhRUeCariC8DiVmb5jj0VjIc1N0DREP32+6UXZw= +k8s.io/apiextensions-apiserver v0.32.1/go.mod h1:sxWIGuGiYov7Io1fAS2X06NjMIk5CbRHc2StSmbaQto= k8s.io/apimachinery v0.32.1 h1:683ENpaCBjma4CYqsmZyhEzrGz6cjn1MY/X2jB2hkZs= k8s.io/apimachinery v0.32.1/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/cli-runtime v0.32.0 h1:dP+OZqs7zHPpGQMCGAhectbHU2SNCuZtIimRKTv2T1c= -k8s.io/cli-runtime v0.32.0/go.mod h1:Mai8ht2+esoDRK5hr861KRy6z0zHsSTYttNVJXgP3YQ= +k8s.io/cli-runtime v0.32.1 h1:19nwZPlYGJPUDbhAxDIS2/oydCikvKMHsxroKNGA2mM= +k8s.io/cli-runtime v0.32.1/go.mod h1:NJPbeadVFnV2E7B7vF+FvU09mpwYlZCu8PqjzfuOnkY= k8s.io/client-go v0.32.1 h1:otM0AxdhdBIaQh7l1Q0jQpmo7WOFIk5FFa4bg6YMdUU= k8s.io/client-go v0.32.1/go.mod h1:aTTKZY7MdxUaJ/KiUs8D+GssR9zJZi77ZqtzcGXIiDg= -k8s.io/component-base v0.32.0 h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU= -k8s.io/component-base v0.32.0/go.mod h1:JLG2W5TUxUu5uDyKiH2R/7NnxJo1HlPoRIIbVLkK5eM= +k8s.io/component-base v0.32.1 h1:/5IfJ0dHIKBWysGV0yKTFfacZ5yNV1sulPh3ilJjRZk= +k8s.io/component-base v0.32.1/go.mod h1:j1iMMHi/sqAHeG5z+O9BFNCF698a1u0186zkjMZQ28w= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= -k8s.io/kubectl v0.32.0 h1:rpxl+ng9qeG79YA4Em9tLSfX0G8W0vfaiPVrc/WR7Xw= -k8s.io/kubectl v0.32.0/go.mod h1:qIjSX+QgPQUgdy8ps6eKsYNF+YmFOAO3WygfucIqFiE= +k8s.io/kubectl v0.32.1 h1:/btLtXLQUU1rWx8AEvX9jrb9LaI6yeezt3sFALhB8M8= +k8s.io/kubectl v0.32.1/go.mod h1:sezNuyWi1STk4ZNPVRIFfgjqMI6XMf+oCVLjZen/pFQ= k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= diff --git a/pkg/app/init.go b/pkg/app/init.go index 31e5cbfb..99b81e44 100644 --- a/pkg/app/init.go +++ b/pkg/app/init.go @@ -18,7 +18,7 @@ import ( const ( HelmRequiredVersion = "v3.16.4" - HelmRecommendedVersion = "v3.17.0" + HelmRecommendedVersion = "v3.17.1" HelmDiffRecommendedVersion = "v3.9.14" HelmSecretsRecommendedVersion = "v4.6.0" HelmGitRecommendedVersion = "v0.15.1" From 0d863b3c055d70ecad50d8001f5776725ffef325 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Feb 2025 06:49:05 +0800 Subject: [PATCH 127/177] build(deps): bump k8s.io/apimachinery from 0.32.1 to 0.32.2 (#1931) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d6f4492e..8df8f334 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( golang.org/x/term v0.29.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.17.1 - k8s.io/apimachinery v0.32.1 + k8s.io/apimachinery v0.32.2 ) replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 diff --git a/go.sum b/go.sum index 9d723a3a..4d881e46 100644 --- a/go.sum +++ b/go.sum @@ -2301,8 +2301,8 @@ k8s.io/api v0.32.1 h1:f562zw9cy+GvXzXf0CKlVQ7yHJVYzLfL6JAS4kOAaOc= k8s.io/api v0.32.1/go.mod h1:/Yi/BqkuueW1BgpoePYBRdDYfjPF5sgTr5+YqDZra5k= k8s.io/apiextensions-apiserver v0.32.1 h1:hjkALhRUeCariC8DiVmb5jj0VjIc1N0DREP32+6UXZw= k8s.io/apiextensions-apiserver v0.32.1/go.mod h1:sxWIGuGiYov7Io1fAS2X06NjMIk5CbRHc2StSmbaQto= -k8s.io/apimachinery v0.32.1 h1:683ENpaCBjma4CYqsmZyhEzrGz6cjn1MY/X2jB2hkZs= -k8s.io/apimachinery v0.32.1/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/apimachinery v0.32.2 h1:yoQBR9ZGkA6Rgmhbp/yuT9/g+4lxtsGYwW6dR6BDPLQ= +k8s.io/apimachinery v0.32.2/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= k8s.io/cli-runtime v0.32.1 h1:19nwZPlYGJPUDbhAxDIS2/oydCikvKMHsxroKNGA2mM= k8s.io/cli-runtime v0.32.1/go.mod h1:NJPbeadVFnV2E7B7vF+FvU09mpwYlZCu8PqjzfuOnkY= k8s.io/client-go v0.32.1 h1:otM0AxdhdBIaQh7l1Q0jQpmo7WOFIk5FFa4bg6YMdUU= From e33b4725ea3bd5aff0919a810e68baecc7d1e27b Mon Sep 17 00:00:00 2001 From: Vince-Chenal Date: Fri, 14 Feb 2025 13:49:07 +0100 Subject: [PATCH 128/177] feat: inject cli state values (--state-values-set) into environment templating context (#1917) * feat: inject cli state values (--state-values-set) into environment templating context Signed-off-by: Vincent Chenal * test: added envvals_loader unit test for environment values Signed-off-by: Vincent Chenal * test: added 'state values set cli args in environments' integration test Signed-off-by: Vincent Chenal * fix: merge environments before loadValuesEntries Signed-off-by: Vincent Chenal * fix: 'state values set cli args in environments' integration test Signed-off-by: Vincent Chenal --------- Signed-off-by: Vincent Chenal --- pkg/state/create.go | 6 +++++- pkg/state/envvals_loader.go | 2 +- pkg/state/envvals_loader_test.go | 19 +++++++++++++++++++ pkg/state/testdata/values.9.yaml.gotmpl | 1 + test/integration/run.sh | 1 + ...ate-values-set-cli-args-in-environments.sh | 14 ++++++++++++++ .../input/environments.yaml.gotmpl | 2 ++ .../input/helmfile-extra-args | 1 + .../input/helmfile.yaml.gotmpl | 17 +++++++++++++++++ .../output/output.yaml | 8 ++++++++ 10 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 pkg/state/testdata/values.9.yaml.gotmpl create mode 100644 test/integration/test-cases/state-values-set-cli-args-in-environments.sh create mode 100644 test/integration/test-cases/state-values-set-cli-args-in-environments/input/environments.yaml.gotmpl create mode 100644 test/integration/test-cases/state-values-set-cli-args-in-environments/input/helmfile-extra-args create mode 100644 test/integration/test-cases/state-values-set-cli-args-in-environments/input/helmfile.yaml.gotmpl create mode 100644 test/integration/test-cases/state-values-set-cli-args-in-environments/output/output.yaml diff --git a/pkg/state/create.go b/pkg/state/create.go index c08086d4..ab2fa6b2 100644 --- a/pkg/state/create.go +++ b/pkg/state/create.go @@ -278,7 +278,11 @@ func (c *StateCreator) loadEnvValues(st *HelmState, name string, failOnMissingEn valuesFiles = append(valuesFiles, f) } envValuesEntries := append(valuesFiles, envSpec.Values...) - valuesVals, err = st.loadValuesEntries(envSpec.MissingFileHandler, envValuesEntries, c.remote, ctxEnv, name) + loadValuesEntriesEnv, err := ctxEnv.Merge(overrode) + if err != nil { + return nil, err + } + valuesVals, err = st.loadValuesEntries(envSpec.MissingFileHandler, envValuesEntries, c.remote, loadValuesEntriesEnv, name) if err != nil { return nil, err } diff --git a/pkg/state/envvals_loader.go b/pkg/state/envvals_loader.go index b0101f34..731cc70d 100644 --- a/pkg/state/envvals_loader.go +++ b/pkg/state/envvals_loader.go @@ -65,7 +65,7 @@ func (ld *EnvironmentValuesLoader) LoadEnvironmentValues(missingFileHandler *str if strings.HasSuffix(f, ".hcl") { hclLoader.AddFile(f) } else { - tmplData := NewEnvironmentTemplateData(env, "", map[string]any{}) + tmplData := NewEnvironmentTemplateData(env, "", env.Values) r := tmpl.NewFileRenderer(ld.fs, filepath.Dir(f), tmplData) bytes, err := r.RenderToBytes(f) if err != nil { diff --git a/pkg/state/envvals_loader_test.go b/pkg/state/envvals_loader_test.go index af801443..764ada78 100644 --- a/pkg/state/envvals_loader_test.go +++ b/pkg/state/envvals_loader_test.go @@ -228,3 +228,22 @@ func TestEnvValsLoad_MultiHCL(t *testing.T) { t.Error(diff) } } + +func TestEnvValsLoad_EnvironmentValues(t *testing.T) { + l := newLoader() + env := environment.New("test") + env.Values["foo"] = "bar" + + actual, err := l.LoadEnvironmentValues(nil, []any{"testdata/values.9.yaml.gotmpl"}, env, "") + if err != nil { + t.Fatal(err) + } + + expected := map[string]any{ + "foo": "bar", + } + + if diff := cmp.Diff(expected, actual); diff != "" { + t.Error(diff) + } +} diff --git a/pkg/state/testdata/values.9.yaml.gotmpl b/pkg/state/testdata/values.9.yaml.gotmpl new file mode 100644 index 00000000..09f8749f --- /dev/null +++ b/pkg/state/testdata/values.9.yaml.gotmpl @@ -0,0 +1 @@ +foo: {{ .Values.foo }} diff --git a/test/integration/run.sh b/test/integration/run.sh index f3d9bb5f..f43909ae 100755 --- a/test/integration/run.sh +++ b/test/integration/run.sh @@ -101,6 +101,7 @@ ${kubectl} create namespace ${test_ns} || fail "Could not create namespace ${tes . ${dir}/test-cases/hcl-secrets.sh . ${dir}/test-cases/issue-1749.sh . ${dir}/test-cases/issue-1893.sh +. ${dir}/test-cases/state-values-set-cli-args-in-environments.sh # ALL DONE ----------------------------------------------------------------------------------------------------------- diff --git a/test/integration/test-cases/state-values-set-cli-args-in-environments.sh b/test/integration/test-cases/state-values-set-cli-args-in-environments.sh new file mode 100644 index 00000000..e9de8f8d --- /dev/null +++ b/test/integration/test-cases/state-values-set-cli-args-in-environments.sh @@ -0,0 +1,14 @@ +state_values_set_cli_args_in_environments_input_dir="${cases_dir}/state-values-set-cli-args-in-environments/input" +state_values_set_cli_args_in_environments_output_dir="${cases_dir}/state-values-set-cli-args-in-environments/output" + +state_values_set_cli_args_in_environments_tmp=$(mktemp -d) +state_values_set_cli_args_in_environments_reverse=${state_values_set_cli_args_in_environments_tmp}/state.values.set.cli.args.build.yaml + +test_start "state values set cli args in environments" +info "Comparing state values set cli args environments output ${state_values_set_cli_args_in_environments_reverse} with ${state_values_set_cli_args_in_environments_output_dir}/output.yaml" + +${helmfile} -f ${state_values_set_cli_args_in_environments_input_dir}/helmfile.yaml.gotmpl template $(cat "$state_values_set_cli_args_in_environments_input_dir/helmfile-extra-args") --skip-deps > "${state_values_set_cli_args_in_environments_reverse}" || fail "\"helmfile template\" shouldn't fail" +./dyff between -bs "${state_values_set_cli_args_in_environments_output_dir}/output.yaml" "${state_values_set_cli_args_in_environments_reverse}" || fail "\"helmfile template\" should be consistent" +echo code=$? + +test_pass "state values set cli args in environments" diff --git a/test/integration/test-cases/state-values-set-cli-args-in-environments/input/environments.yaml.gotmpl b/test/integration/test-cases/state-values-set-cli-args-in-environments/input/environments.yaml.gotmpl new file mode 100644 index 00000000..e822c582 --- /dev/null +++ b/test/integration/test-cases/state-values-set-cli-args-in-environments/input/environments.yaml.gotmpl @@ -0,0 +1,2 @@ +--- +foo: {{ .Values.foo }} diff --git a/test/integration/test-cases/state-values-set-cli-args-in-environments/input/helmfile-extra-args b/test/integration/test-cases/state-values-set-cli-args-in-environments/input/helmfile-extra-args new file mode 100644 index 00000000..aed11348 --- /dev/null +++ b/test/integration/test-cases/state-values-set-cli-args-in-environments/input/helmfile-extra-args @@ -0,0 +1 @@ +--state-values-set foo=bar diff --git a/test/integration/test-cases/state-values-set-cli-args-in-environments/input/helmfile.yaml.gotmpl b/test/integration/test-cases/state-values-set-cli-args-in-environments/input/helmfile.yaml.gotmpl new file mode 100644 index 00000000..e7cefc94 --- /dev/null +++ b/test/integration/test-cases/state-values-set-cli-args-in-environments/input/helmfile.yaml.gotmpl @@ -0,0 +1,17 @@ +environments: + default: + values: + - environments.yaml.gotmpl +--- +releases: +- name: state-value-set-args-environments + chart: ../../../charts/raw + values: + - templates: + - | + apiVersion: v1 + kind: ConfigMap + metadata: + name: test + data: + foo: {{ .Values.foo }} diff --git a/test/integration/test-cases/state-values-set-cli-args-in-environments/output/output.yaml b/test/integration/test-cases/state-values-set-cli-args-in-environments/output/output.yaml new file mode 100644 index 00000000..e0451d01 --- /dev/null +++ b/test/integration/test-cases/state-values-set-cli-args-in-environments/output/output.yaml @@ -0,0 +1,8 @@ +--- +# Source: raw/templates/resources.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: test +data: + foo: bar From 8b15c30cf2a7732db91224a5019b7a957d56bb74 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Sat, 15 Feb 2025 00:57:50 +0800 Subject: [PATCH 129/177] docs: add skipSchemaValidation to index.md and update related structs (#1935) * docs: add skipSchemaValidation to index.md and update related structs Signed-off-by: yxxhero * feat: add SkipSchemaValidation to config and state handling Signed-off-by: yxxhero --------- Signed-off-by: yxxhero --- docs/index.md | 4 ++++ pkg/app/app.go | 47 ++++++++++++++++++++++-------------------- pkg/app/config.go | 2 ++ pkg/config/apply.go | 2 +- pkg/config/sync.go | 2 +- pkg/config/template.go | 2 +- pkg/state/state.go | 7 +++++-- 7 files changed, 39 insertions(+), 27 deletions(-) diff --git a/docs/index.md b/docs/index.md index 22bf5fbe..5af7f7c0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -193,6 +193,8 @@ helmDefaults: # verify the chart before upgrading (only works with packaged charts not directories) (default false) verify: true keyring: path/to/keyring.gpg + # --skip-schema-validation flag to helm 'install', 'upgrade' and 'lint', starts with helm 3.16.0 (default false) + skipSchemaValidation: false # wait for k8s resources via --wait. (default false) wait: true # if set and --wait enabled, will retry any failed check on resource state subject to the specified number of retries (default 0) @@ -313,6 +315,8 @@ releases: # Override helmDefaults options for verify, wait, waitForJobs, timeout, recreatePods and force. verify: true keyring: path/to/keyring.gpg + # --skip-schema-validation flag to helm 'install', 'upgrade' and 'lint', starts with helm 3.16.0 (default false) + skipSchemaValidation: false wait: true waitRetries: 3 waitForJobs: true diff --git a/pkg/app/app.go b/pkg/app/app.go index 23304dfc..7bed5766 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -1441,6 +1441,7 @@ func (a *App) apply(r *Run, c ApplyConfigProvider) (bool, bool, []error) { DiffArgs: c.DiffArgs(), PostRenderer: c.PostRenderer(), PostRendererArgs: c.PostRendererArgs(), + SkipSchemaValidation: c.SkipSchemaValidation(), SuppressOutputLineRegex: c.SuppressOutputLineRegex(), } @@ -1943,18 +1944,19 @@ Do you really want to sync? subst.Releases = rs opts := &state.SyncOpts{ - Set: c.Set(), - SkipCRDs: c.SkipCRDs(), - Wait: c.Wait(), - WaitRetries: c.WaitRetries(), - WaitForJobs: c.WaitForJobs(), - ReuseValues: c.ReuseValues(), - ResetValues: c.ResetValues(), - PostRenderer: c.PostRenderer(), - PostRendererArgs: c.PostRendererArgs(), - SyncArgs: c.SyncArgs(), - HideNotes: c.HideNotes(), - TakeOwnership: c.TakeOwnership(), + Set: c.Set(), + SkipCRDs: c.SkipCRDs(), + Wait: c.Wait(), + WaitRetries: c.WaitRetries(), + WaitForJobs: c.WaitForJobs(), + ReuseValues: c.ReuseValues(), + ResetValues: c.ResetValues(), + PostRenderer: c.PostRenderer(), + PostRendererArgs: c.PostRendererArgs(), + SyncArgs: c.SyncArgs(), + HideNotes: c.HideNotes(), + TakeOwnership: c.TakeOwnership(), + SkipSchemaValidation: c.SkipSchemaValidation(), } return subst.SyncReleases(&affectedReleases, helm, c.Values(), c.Concurrency(), opts) })) @@ -1982,16 +1984,17 @@ func (a *App) template(r *Run, c TemplateConfigProvider) (bool, []error) { } opts := &state.TemplateOpts{ - Set: c.Set(), - IncludeCRDs: c.IncludeCRDs(), - NoHooks: c.NoHooks(), - OutputDirTemplate: c.OutputDirTemplate(), - SkipCleanup: c.SkipCleanup(), - SkipTests: c.SkipTests(), - PostRenderer: c.PostRenderer(), - PostRendererArgs: c.PostRendererArgs(), - KubeVersion: c.KubeVersion(), - ShowOnly: c.ShowOnly(), + Set: c.Set(), + IncludeCRDs: c.IncludeCRDs(), + NoHooks: c.NoHooks(), + OutputDirTemplate: c.OutputDirTemplate(), + SkipCleanup: c.SkipCleanup(), + SkipTests: c.SkipTests(), + PostRenderer: c.PostRenderer(), + PostRendererArgs: c.PostRendererArgs(), + KubeVersion: c.KubeVersion(), + ShowOnly: c.ShowOnly(), + SkipSchemaValidation: c.SkipSchemaValidation(), } return st.TemplateReleases(helm, c.OutputDir(), c.Values(), args, c.Concurrency(), c.Validate(), opts) }) diff --git a/pkg/app/config.go b/pkg/app/config.go index ecccc0dc..08bb39cd 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -103,6 +103,7 @@ type ApplyConfigProvider interface { type SyncConfigProvider interface { Args() string PostRenderer() string + SkipSchemaValidation() bool PostRendererArgs() []string HideNotes() bool TakeOwnership() bool @@ -239,6 +240,7 @@ type TemplateConfigProvider interface { Args() string PostRenderer() string PostRendererArgs() []string + SkipSchemaValidation() bool Values() []string Set() []string diff --git a/pkg/config/apply.go b/pkg/config/apply.go index 1b34a88b..e77592b5 100644 --- a/pkg/config/apply.go +++ b/pkg/config/apply.go @@ -54,7 +54,7 @@ type ApplyOptions struct { WaitRetries int // WaitForJobs is true if the helm command should wait for the jobs to be completed WaitForJobs bool - // Propagate '--skipSchemaValidation' to helmv3 template and helm install + // Propagate '--skip-schema-validation' to helmv3 template and helm install SkipSchemaValidation bool // ReuseValues is true if the helm command should reuse the values ReuseValues bool diff --git a/pkg/config/sync.go b/pkg/config/sync.go index aaea12bb..033f82ed 100644 --- a/pkg/config/sync.go +++ b/pkg/config/sync.go @@ -32,7 +32,7 @@ type SyncOptions struct { PostRenderer string // Propagate '--post-renderer-args' to helmv3 template and helm install PostRendererArgs []string - // Propagate '--skipSchemaValidation' to helmv3 template and helm install + // Propagate '--skip-schema-validation' to helmv3 template and helm install SkipSchemaValidation bool // Cascade '--cascade' to helmv3 delete, available values: background, foreground, or orphan, default: background Cascade string diff --git a/pkg/config/template.go b/pkg/config/template.go index 134cc6aa..90c82691 100644 --- a/pkg/config/template.go +++ b/pkg/config/template.go @@ -38,7 +38,7 @@ type TemplateOptions struct { PostRenderer string // Propagate '--post-renderer-args' to helmv3 template and helm install PostRendererArgs []string - // Propagate '--skipSchemaValidation' to helmv3 template and helm install + // Propagate '--skip-schema-validation' to helmv3 template and helm install SkipSchemaValidation bool // KubeVersion is the kube-version flag KubeVersion string diff --git a/pkg/state/state.go b/pkg/state/state.go index 38215228..b2d9b74b 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -161,7 +161,7 @@ type HelmSpec struct { Keyring string `yaml:"keyring,omitempty"` // EnableDNS, when set to true, enable DNS lookups when rendering templates EnableDNS bool `yaml:"enableDNS"` - // Propagate '--skipSchemaValidation' to helmv3 template and helm install + // Propagate '--skip-schema-validation' to helmv3 template and helm install SkipSchemaValidation *bool `yaml:"skipSchemaValidation,omitempty"` // Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0' Devel bool `yaml:"devel"` @@ -390,7 +390,7 @@ type ReleaseSpec struct { // Propagate '--post-renderer' to helmv3 template and helm install PostRenderer *string `yaml:"postRenderer,omitempty"` - // Propagate '--skipSchemaValidation' to helmv3 template and helm install + // Propagate '--skip-schema-validation' to helmv3 template and helm install SkipSchemaValidation *bool `yaml:"skipSchemaValidation,omitempty"` // Propagate '--post-renderer-args' to helmv3 template and helm install @@ -1492,6 +1492,8 @@ type TemplateOpts struct { PostRendererArgs []string KubeVersion string ShowOnly []string + // Propagate '--skip-schema-validation' to helmv3 template and helm install + SkipSchemaValidation bool } type TemplateOpt interface{ Apply(*TemplateOpts) } @@ -2837,6 +2839,7 @@ func (st *HelmState) flagsForTemplate(helm helmexec.Interface, release *ReleaseS flags = st.appendApiVersionsFlags(flags, release, kubeVersion) flags = st.appendChartDownloadFlags(flags, release) flags = st.appendShowOnlyFlags(flags, showOnly) + flags = st.appendSkipSchemaValidationFlags(flags, release, opt.SkipSchemaValidation) common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex) if err != nil { From a89803521de6a50a770b3cf347f35f0ab8417dcb Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Sat, 15 Feb 2025 12:17:44 +0800 Subject: [PATCH 130/177] refactor(state): optimize HelmState flags handling (#1937) Signed-off-by: yxxhero --- pkg/state/state.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/state/state.go b/pkg/state/state.go index b2d9b74b..22f619c3 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -2824,22 +2824,24 @@ func (st *HelmState) flagsForTemplate(helm helmexec.Interface, release *ReleaseS flags = st.appendChartVersionFlags(flags, release) flags = st.appendHelmXFlags(flags, release) - postRenderer := "" var postRendererArgs []string - kubeVersion := "" var showOnly []string + postRenderer := "" + kubeVersion := "" + skipSchemaValidation := false if opt != nil { postRenderer = opt.PostRenderer postRendererArgs = opt.PostRendererArgs kubeVersion = opt.KubeVersion showOnly = opt.ShowOnly + skipSchemaValidation = opt.SkipSchemaValidation } flags = st.appendPostRenderFlags(flags, release, postRenderer) flags = st.appendPostRenderArgsFlags(flags, release, postRendererArgs) flags = st.appendApiVersionsFlags(flags, release, kubeVersion) flags = st.appendChartDownloadFlags(flags, release) flags = st.appendShowOnlyFlags(flags, showOnly) - flags = st.appendSkipSchemaValidationFlags(flags, release, opt.SkipSchemaValidation) + flags = st.appendSkipSchemaValidationFlags(flags, release, skipSchemaValidation) common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex) if err != nil { From 9b2710b826a719f0c8538e2d4dc6abc8bab83697 Mon Sep 17 00:00:00 2001 From: Aditya Menon Date: Tue, 18 Feb 2025 05:59:01 +0100 Subject: [PATCH 131/177] Update vals package to v0.39.2 (#1938) * Update vals package to v0.39.2 Signed-off-by: Aditya Menon * fix golangci lint file Signed-off-by: Aditya Menon --------- Signed-off-by: Aditya Menon --- .golangci.yaml | 68 ++++++++++++++++++++++++++++++-------------------- go.mod | 22 ++++++++-------- go.sum | 45 +++++++++++++++++---------------- pkg/app/app.go | 2 -- 4 files changed, 76 insertions(+), 61 deletions(-) diff --git a/.golangci.yaml b/.golangci.yaml index d0c0f1c2..e828a482 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -27,10 +27,6 @@ run: # - src/external_libs # - autogenerated_by_my_lib - # default is true. Enables skipping of directories: - # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$ - skip-dirs-use-default: true - # which files to skip: they will be analyzed, but issues from them # won't be reported. Default value is empty list, but there is # no need to include all autogenerated files, we confidently recognize @@ -51,8 +47,35 @@ run: # output configuration options output: - # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number" - format: line-number + # The formats used to render issues. + # Formats: + # - `colored-line-number` + # - `line-number` + # - `json` + # - `colored-tab` + # - `tab` + # - `html` + # - `checkstyle` + # - `code-climate` + # - `junit-xml` + # - `junit-xml-extended` + # - `github-actions` + # - `teamcity` + # - `sarif` + # Output path can be either `stdout`, `stderr` or path to the file to write to. + # + # For the CLI flag (`--out-format`), multiple formats can be specified by separating them by comma. + # The output can be specified for each of them by separating format name and path by colon symbol. + # Example: "--out-format=checkstyle:report.xml,json:stdout,colored-line-number" + # The CLI flag (`--out-format`) override the configuration file. + # + # Default: + # formats: + # - format: colored-line-number + # path: stdout + formats: + - format: line-number + path: stdout # print lines of code with issue, default is true print-issued-lines: true @@ -88,12 +111,13 @@ linters-settings: # Disable error checking, as errorcheck detects more errors and is more configurable. gosec: - exclude: - - "G104" + excludes: + - "G104" govet: # report about shadowed variables - check-shadowing: false + disable: + - shadow # settings per analyzer settings: @@ -111,13 +135,15 @@ linters-settings: # disable: # - shadow # disable-all: false - golint: + revive: # minimal confidence for issues, default is 0.8 - min-confidence: 0.8 + confidence: 0.8 + ignore-generated-header: true + severity: warning gofmt: # simplify code: gofmt with `-s` option, true by default simplify: true - goimports: + # goimports: # put imports beginning with prefix after 3rd-party packages; # it's a comma-separated list of prefixes # local-prefixes: github.com/org/project @@ -127,9 +153,6 @@ linters-settings: gocognit: # minimal code complexity to report, 30 by default (but we recommend 10-20) min-complexity: 100 - maligned: - # print struct with more effective memory layout or not, false by default - suggest-new: true dupl: # tokens count to trigger issue, 150 by default threshold: 100 @@ -159,12 +182,6 @@ linters-settings: line-length: 120 # tab width in spaces. Default to 1. tab-width: 1 - unused: - # treat code as a program (not a library) and report unused exported identifiers; default is false. - # XXX: if you enable this setting, unused will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find funcs usages. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false unparam: # Inspect exported functions, default is false. Set to true if no external program/library imports your code. # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: @@ -173,7 +190,7 @@ linters-settings: check-exported: false nakedret: # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 - max-func-lines: 50 + max-func-lines: 50 prealloc: # XXX: we don't recommend using this linter before doing performance profiling. # For most programs usage of prealloc will be a premature optimization. @@ -237,9 +254,6 @@ linters-settings: allow-trailing-comment: false # Force newlines in end of case at this limit (0 = never). force-case-trailing-whitespace: 0 - revive: - ignore-generated-header: true - severity: warning funlen: # Checks the number of lines in a function. # If lower than 0, disable the check. @@ -270,7 +284,7 @@ linters: - ineffassign - misspell - nakedret - - exportloopref + - copyloopvar - staticcheck - typecheck - unconvert @@ -357,4 +371,4 @@ issues: # new-from-rev: REV # Show only new issues created in git patch with set file path. - # new-from-patch: path/to/patch/file \ No newline at end of file + # new-from-patch: path/to/patch/file diff --git a/go.mod b/go.mod index 8df8f334..63335045 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.20.8 - github.com/helmfile/vals v0.39.1 + github.com/helmfile/vals v0.39.2 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 @@ -97,10 +97,10 @@ require ( 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.34.0 // indirect + golang.org/x/net v0.35.0 // indirect golang.org/x/oauth2 v0.26.0 // indirect golang.org/x/sys v0.30.0 // indirect - golang.org/x/text v0.21.0 // indirect + golang.org/x/text v0.22.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/api v0.215.0 // indirect google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect @@ -126,15 +126,15 @@ require ( github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/AlecAivazis/survey/v2 v2.3.6 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.3.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.3.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.3.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.3.2 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3 // indirect github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect @@ -235,7 +235,7 @@ require ( github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcp-sdk-go v0.135.0 // indirect + github.com/hashicorp/hcp-sdk-go v0.136.0 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect @@ -296,7 +296,7 @@ require ( go.opentelemetry.io/otel/trace v1.30.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.32.0 // indirect + golang.org/x/crypto v0.33.0 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/tools v0.26.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect @@ -306,10 +306,10 @@ require ( 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.32.1 // indirect + k8s.io/api v0.32.2 // indirect k8s.io/apiextensions-apiserver v0.32.1 // indirect k8s.io/cli-runtime v0.32.1 // indirect - k8s.io/client-go v0.32.1 // indirect + k8s.io/client-go v0.32.2 // indirect k8s.io/component-base v0.32.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect diff --git a/go.sum b/go.sum index 4d881e46..2ef85aaa 100644 --- a/go.sum +++ b/go.sum @@ -639,10 +639,10 @@ github.com/AlecAivazis/survey/v2 v2.3.6 h1:NvTuVHISgTHEHeBFqt6BHOe4Ny/NwGZr7w+F8 github.com/AlecAivazis/survey/v2 v2.3.6/go.mod h1:4AuI9b7RjAR+G7v9+C4YSlX/YL3K3cWNXgWXOhllqvI= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 h1:g0EZJwz7xkXQiZAI5xi9f3WWFYBlX1CPTrR+NDToRkQ= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0/go.mod h1:XCW7KnZet0Opnr7HccfUw1PLc4CjHqpcaxW8DHklNkQ= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.1 h1:1mvYtZfWQAnwNah/C+Z+Jb9rQH95LPE2vlmMuWAHJk8= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.1/go.mod h1:75I/mXtme1JyWFtz8GocPHVFyH421IBoZErnO16dd0k= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.1 h1:Bk5uOhSAenHyR5P61D/NzeQCv+4fEVV8mOkJ82NqpWw= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.1/go.mod h1:QZ4pw3or1WPmRBxf0cHd1tknzrT54WPBOQoGutCPvSU= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 h1:F0gBpfdPLGsw+nsgk6aqqkZS1jiixa5WwFe3fk/T3Ys= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2/go.mod h1:SqINnQ9lVVdRlyC8cd1lCI0SdX4n2paeABd2K8ggfnE= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal v1.1.2 h1:mLY+pNLjCUeKhgnAJWAKhEUQM+RJQo2H1fuGSw1Ky1E= @@ -653,10 +653,10 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0/go.mod h1:+OgGVo0Httq7N5oayfvaLQ/Jq+2gJdqfp++Hyyl7Tws= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.3.0 h1:7rKG7UmnrxX4N53TFhkYqjc+kVUZuw0fL8I3Fh+Ld9E= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.3.0/go.mod h1:Wjo+24QJVhhl/L7jy6w9yzFF2yDOf3cKECAa8ecf9vE= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.3.0 h1:WLUIpeyv04H0RCcQHaA4TNoyrQ39Ox7V+re+iaqzTe0= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.3.0/go.mod h1:hd8hTTIY3VmUVPRHNH7GVCHO3SHgXkJKZHReby/bnUQ= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.0 h1:eXnN9kaS8TiDwXjoie3hMRLuwdUBUMW9KRgOqB3mCaw= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.0/go.mod h1:XIpam8wumeZ5rVMuhdDQLMfIPDf1WO3IzrCRO3e3e3o= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.3.1 h1:mrkDCdkMsD4l9wjFGhofFHFrV43Y3c53RSLKOCJ5+Ow= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.3.1/go.mod h1:hPv41DbqMmnxcGralanA/kVlfdH5jv3T4LxGku2E1BY= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1 h1:bFWuoEKg+gImo7pvkiQEFAc8ocibADgXeiLAxWhWmkI= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1/go.mod h1:Vih/3yc6yac2JzU4hzpaDupBJP0Flaia9rXXrU8xyww= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0 h1:nVocQV40OQne5613EeLayJiRAJuKlBGy+m22qWG+WRg= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0/go.mod h1:7QJP7dr2wznCMeqIrhMgWGf7XpAQnVrJqDm9nvV3Cu4= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= @@ -679,8 +679,8 @@ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUM github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.3.2 h1:kYRSnvJju5gYVyhkij+RTJ/VR6QIUaCfWeaFm2ycsjQ= -github.com/AzureAD/microsoft-authentication-library-for-go v1.3.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3 h1:H5xDQaE3XowWfhZRUpnfC+rGZMEVoSiji+b+/HFAPU4= +github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -1208,16 +1208,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos= github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= -github.com/hashicorp/hcp-sdk-go v0.135.0 h1:INwgXXbc/8sBngWxGSfL/j0sCwWb1LJiuNMaf1R06fY= -github.com/hashicorp/hcp-sdk-go v0.135.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= +github.com/hashicorp/hcp-sdk-go v0.136.0 h1:NNtb/dYoj7YrVQVvWZ2T7PY2Pwn8vQ5YKIAgaqaKk6A= +github.com/hashicorp/hcp-sdk-go v0.136.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1DdPo= github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.16.0 h1:nbEYGJiAPGzT9U4oWgaaB0g+Rj8E59QuHKyA5LhwQN4= github.com/hashicorp/vault/api v1.16.0/go.mod h1:KhuUhzOD8lDSk29AtzNjgAu2kxRA9jL9NAbkFlqvkBA= github.com/helmfile/chartify v0.20.8 h1:vRzQ6Mb8OEncoA3K5RYtup5JVzy5waUSK24MBXK3CTY= github.com/helmfile/chartify v0.20.8/go.mod h1:mWN+sWWf+lnA225jZIqqgpwbGjiT3NAQHGCm5vdC0zw= -github.com/helmfile/vals v0.39.1 h1:8QJpC1Jk6vtaD0C1buxVv2aEelMtknIZNUN3Ba6HSes= -github.com/helmfile/vals v0.39.1/go.mod h1:l80Z9s7XSNEpUU544t4i9zv0RwU6Q0inC7wE14mbm24= +github.com/helmfile/vals v0.39.2 h1:o8zTbaTSbyXGdENnUzK/Al6+s8XnP9romF1q8sS/mNk= +github.com/helmfile/vals v0.39.2/go.mod h1:/xZJlCQD12OvD2vQovqKuVG6nmqpVDjMb8lrhtiubkA= 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= @@ -1591,8 +1591,9 @@ golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58 golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= +golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1719,8 +1720,9 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= 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= @@ -1901,8 +1903,9 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2297,16 +2300,16 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -k8s.io/api v0.32.1 h1:f562zw9cy+GvXzXf0CKlVQ7yHJVYzLfL6JAS4kOAaOc= -k8s.io/api v0.32.1/go.mod h1:/Yi/BqkuueW1BgpoePYBRdDYfjPF5sgTr5+YqDZra5k= +k8s.io/api v0.32.2 h1:bZrMLEkgizC24G9eViHGOPbW+aRo9duEISRIJKfdJuw= +k8s.io/api v0.32.2/go.mod h1:hKlhk4x1sJyYnHENsrdCWw31FEmCijNGPJO5WzHiJ6Y= k8s.io/apiextensions-apiserver v0.32.1 h1:hjkALhRUeCariC8DiVmb5jj0VjIc1N0DREP32+6UXZw= k8s.io/apiextensions-apiserver v0.32.1/go.mod h1:sxWIGuGiYov7Io1fAS2X06NjMIk5CbRHc2StSmbaQto= k8s.io/apimachinery v0.32.2 h1:yoQBR9ZGkA6Rgmhbp/yuT9/g+4lxtsGYwW6dR6BDPLQ= k8s.io/apimachinery v0.32.2/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= k8s.io/cli-runtime v0.32.1 h1:19nwZPlYGJPUDbhAxDIS2/oydCikvKMHsxroKNGA2mM= k8s.io/cli-runtime v0.32.1/go.mod h1:NJPbeadVFnV2E7B7vF+FvU09mpwYlZCu8PqjzfuOnkY= -k8s.io/client-go v0.32.1 h1:otM0AxdhdBIaQh7l1Q0jQpmo7WOFIk5FFa4bg6YMdUU= -k8s.io/client-go v0.32.1/go.mod h1:aTTKZY7MdxUaJ/KiUs8D+GssR9zJZi77ZqtzcGXIiDg= +k8s.io/client-go v0.32.2 h1:4dYCD4Nz+9RApM2b/3BtVvBHw54QjMFUl1OLcJG5yOA= +k8s.io/client-go v0.32.2/go.mod h1:fpZ4oJXclZ3r2nDOv+Ux3XcJutfrwjKTCHz2H3sww94= k8s.io/component-base v0.32.1 h1:/5IfJ0dHIKBWysGV0yKTFfacZ5yNV1sulPh3ilJjRZk= k8s.io/component-base v0.32.1/go.mod h1:j1iMMHi/sqAHeG5z+O9BFNCF698a1u0186zkjMZQ28w= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= diff --git a/pkg/app/app.go b/pkg/app/app.go index 7bed5766..61e3224e 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -1324,7 +1324,6 @@ func (a *App) getSelectedReleases(r *Run, includeTransitiveNeeds bool) ([]state. selectedIds := map[string]state.ReleaseSpec{} selectedCounts := map[string]int{} for _, r := range selected { - r := r id := state.ReleaseToID(&r) selectedIds[id] = r selectedCounts[id]++ @@ -1338,7 +1337,6 @@ func (a *App) getSelectedReleases(r *Run, includeTransitiveNeeds bool) ([]state. groupsByID := map[string][]*state.ReleaseSpec{} for _, r := range allReleases { - r := r groupsByID[state.ReleaseToID(&r)] = append(groupsByID[state.ReleaseToID(&r)], &r) } From 8401428bfd15faf5aed0d58e597b6e157e94ddf3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Feb 2025 05:18:19 +0000 Subject: [PATCH 132/177] build(deps): bump github.com/spf13/cobra from 1.8.1 to 1.9.1 (#1940) --- go.mod | 4 ++-- go.sum | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 63335045..2235ad8f 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.20.8 github.com/helmfile/vals v0.39.2 - github.com/spf13/cobra v1.8.1 + github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939 @@ -181,7 +181,7 @@ require ( github.com/containerd/errdefs v0.3.0 // indirect github.com/containerd/log v0.1.0 // indirect github.com/containerd/platforms v0.2.1 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect github.com/cyberark/conjur-api-go v0.12.12 // indirect github.com/danieljoos/wincred v1.2.2 // indirect github.com/distribution/reference v0.6.0 // indirect diff --git a/go.sum b/go.sum index 2ef85aaa..15c913dd 100644 --- a/go.sum +++ b/go.sum @@ -862,9 +862,9 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= -github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= @@ -1449,9 +1449,8 @@ github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= -github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= +github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= From c8d799a1184755700ce42cb446bf1206e65a8077 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Feb 2025 05:23:11 +0000 Subject: [PATCH 133/177] build(deps): bump github.com/goccy/go-yaml from 1.15.22 to 1.15.23 (#1941) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2235ad8f..b1f6ad2f 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.22 + github.com/goccy/go-yaml v1.15.23 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.6.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 15c913dd..b01e32f0 100644 --- a/go.sum +++ b/go.sum @@ -1010,8 +1010,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.15.22 h1:iQI1hvCoiYYiVFq76P4AI8ImgDOfgiyKnl/AWjK8/gA= -github.com/goccy/go-yaml v1.15.22/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.15.23 h1:WS0GAX1uNPDLUvLkNU2vXq6oTnsmfVFocjQ/4qA48qo= +github.com/goccy/go-yaml v1.15.23/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 82a2f7ed2f03155cf567fb49cb87fb916a50aed0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Feb 2025 05:36:50 +0000 Subject: [PATCH 134/177] build(deps): bump github.com/helmfile/chartify from 0.20.8 to 0.20.9 (#1942) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b1f6ad2f..577e17aa 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 - github.com/helmfile/chartify v0.20.8 + github.com/helmfile/chartify v0.20.9 github.com/helmfile/vals v0.39.2 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 diff --git a/go.sum b/go.sum index b01e32f0..2c1cae5d 100644 --- a/go.sum +++ b/go.sum @@ -1214,8 +1214,8 @@ github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1Dd github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.16.0 h1:nbEYGJiAPGzT9U4oWgaaB0g+Rj8E59QuHKyA5LhwQN4= github.com/hashicorp/vault/api v1.16.0/go.mod h1:KhuUhzOD8lDSk29AtzNjgAu2kxRA9jL9NAbkFlqvkBA= -github.com/helmfile/chartify v0.20.8 h1:vRzQ6Mb8OEncoA3K5RYtup5JVzy5waUSK24MBXK3CTY= -github.com/helmfile/chartify v0.20.8/go.mod h1:mWN+sWWf+lnA225jZIqqgpwbGjiT3NAQHGCm5vdC0zw= +github.com/helmfile/chartify v0.20.9 h1:WWkxj+JRxDnE8FewvTPx6XH8UAy5iRw6+buSCFgrURE= +github.com/helmfile/chartify v0.20.9/go.mod h1:y9YsgunMZvZ0SgWUfG0FElpGMMf0D9qA65twwmPlcFg= github.com/helmfile/vals v0.39.2 h1:o8zTbaTSbyXGdENnUzK/Al6+s8XnP9romF1q8sS/mNk= github.com/helmfile/vals v0.39.2/go.mod h1:/xZJlCQD12OvD2vQovqKuVG6nmqpVDjMb8lrhtiubkA= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= From 156a7576b50095e4689634dcaa46d3417e476bb0 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 18 Feb 2025 22:30:02 -0600 Subject: [PATCH 135/177] feat: colorized DELETED (#1944) feat: colorize DELETED Signed-off-by: Eric Bailey --- go.mod | 2 +- pkg/app/run.go | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 577e17aa..42f5a792 100644 --- a/go.mod +++ b/go.mod @@ -52,7 +52,7 @@ require ( 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 - github.com/fatih/color v1.18.0 // indirect + github.com/fatih/color v1.18.0 github.com/fujiwara/tfstate-lookup v1.5.0 // indirect github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect diff --git a/pkg/app/run.go b/pkg/app/run.go index e29fce2a..57484de0 100644 --- a/pkg/app/run.go +++ b/pkg/app/run.go @@ -7,6 +7,8 @@ import ( "sort" "strings" + "github.com/fatih/color" + "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/state" ) @@ -216,7 +218,11 @@ func (r *Run) diff(triggerCleanupEvent bool, detailedExitCode bool, c DiffConfig names = append(names, fmt.Sprintf(" %s (%s) UPDATED", r.Name, r.Chart)) } for _, r := range releasesToBeDeleted { - names = append(names, fmt.Sprintf(" %s (%s) DELETED", r.Name, r.Chart)) + releaseToBeDeleted := fmt.Sprintf(" %s (%s) DELETED", r.Name, r.Chart) + if c.Color() { + releaseToBeDeleted = color.RedString(releaseToBeDeleted) + } + names = append(names, releaseToBeDeleted) } // Make the output deterministic for testing purpose sort.Strings(names) From 49c9d5d89c1050b4553725ad5c7c97fd839ba21e Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 24 Feb 2025 21:11:15 +0800 Subject: [PATCH 136/177] feat(docs): add proposal to remove charts and delete subcommands (#1936) Signed-off-by: yxxhero --- docs/proposals/towards-1.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/proposals/towards-1.0.md b/docs/proposals/towards-1.0.md index 31009f88..2c6e15de 100644 --- a/docs/proposals/towards-1.0.md +++ b/docs/proposals/towards-1.0.md @@ -28,6 +28,7 @@ We also provide the alternative way in the latest v0.x release before v1.0. That 4. [Remove `HELMFILE_SKIP_INSECURE_TEMPLATE_FUNCTIONS` in favor of `HELMFILE_DISABLE_INSECURE_FEATURES`](#remove-helmfile_skip_insecure_template_functions-in-favor-of-helmfile_disable_insecure_features) 5. [The long deprecated `charts.yaml` has been finally removed](#the-long-deprecated-chartsyaml-has-been-finally-removed) 6. [List experimental features](#list-experimental-features) +7. [Remove charts and delete sub-commands](#remove-charts-and-delete-subcommands) ### Forbid the use of `environments` and `releases` within a single helmfile.yaml.gotmpl part @@ -110,6 +111,9 @@ Why now? In Helmfile v0.x, all features considered experimental as we follow semver. However, we "ended up" preserving backward-compatibility within v0 and between v0 and v1 "by chance". This doesn't mean anything introduced in v0 is stable. For example, we might have some features implemented in a very later stage of v0 that are not stable yet. We should mark them as experimental, or we can't fix them in a backward-incompatible way in v1.x. That's why we need to list experimental features now. +### remove-charts-and-delete-subcommands +Now we remove `helmfile charts` and `helmfile delete` subcommands. you can use `helmfile destroy` and `helmfile sync` instead. + ## After 1.0 We won't add any backward-incompatible changes while in 1.x, as long as it's inevitable to fix unseen important bug(s). From f03b9b543af0228230a04b435eaf47eca9a38b3b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Feb 2025 07:47:46 +0800 Subject: [PATCH 137/177] build(deps): bump github.com/google/go-cmp from 0.6.0 to 0.7.0 (#1945) Bumps [github.com/google/go-cmp](https://github.com/google/go-cmp) from 0.6.0 to 0.7.0. - [Release notes](https://github.com/google/go-cmp/releases) - [Commits](https://github.com/google/go-cmp/compare/v0.6.0...v0.7.0) --- updated-dependencies: - dependency-name: github.com/google/go-cmp dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 42f5a792..37e80b10 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/go-test/deep v1.1.1 github.com/goccy/go-yaml v1.15.23 github.com/golang/mock v1.6.0 - github.com/google/go-cmp v0.6.0 + github.com/google/go-cmp v0.7.0 github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 diff --git a/go.sum b/go.sum index 2c1cae5d..e1841ffd 100644 --- a/go.sum +++ b/go.sum @@ -1089,8 +1089,9 @@ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/go-jsonnet v0.20.0 h1:WG4TTSARuV7bSm4PMB4ohjxe33IHT5WVTrJSU33uT4g= github.com/google/go-jsonnet v0.20.0/go.mod h1:VbgWF9JX7ztlv770x/TolZNGGFfiHEVx9G6ca2eUmeA= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= From 025b76f973e539229be600459b9b7b942581e886 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Feb 2025 08:06:36 +0800 Subject: [PATCH 138/177] build(deps): bump github.com/go-jose/go-jose/v4 from 4.0.4 to 4.0.5 (#1946) Bumps [github.com/go-jose/go-jose/v4](https://github.com/go-jose/go-jose) from 4.0.4 to 4.0.5. - [Release notes](https://github.com/go-jose/go-jose/releases) - [Changelog](https://github.com/go-jose/go-jose/blob/main/CHANGELOG.md) - [Commits](https://github.com/go-jose/go-jose/compare/v4.0.4...v4.0.5) --- updated-dependencies: - dependency-name: github.com/go-jose/go-jose/v4 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 37e80b10..8a18962d 100644 --- a/go.mod +++ b/go.mod @@ -204,7 +204,7 @@ require ( github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe // indirect github.com/getsops/sops/v3 v3.9.2 // indirect github.com/go-errors/errors v1.4.2 // indirect - github.com/go-jose/go-jose/v4 v4.0.4 // indirect + github.com/go-jose/go-jose/v4 v4.0.5 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/analysis v0.23.0 // indirect diff --git a/go.sum b/go.sum index e1841ffd..e7c20d70 100644 --- a/go.sum +++ b/go.sum @@ -966,8 +966,8 @@ github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmn github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-jose/go-jose/v4 v4.0.4 h1:VsjPI33J0SB9vQM6PLmNjoHqMQNGPiZ0rHL7Ni7Q6/E= -github.com/go-jose/go-jose/v4 v4.0.4/go.mod h1:NKb5HO1EZccyMpiZNbdUw/14tiXNyUJh188dfnMCAfc= +github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= +github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= From 489b6c9362c89437d3adb901463e4b0759e8c2e2 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Fri, 28 Feb 2025 12:10:16 +0800 Subject: [PATCH 139/177] build: update golang version to 1.24 and golangci-lint to v1.64.5 (#1949) * build: update golang version to 1.24 and golangci-lint to v1.64.5 Signed-off-by: yxxhero * build: update golang version to 1.24 in Dockerfiles Signed-off-by: yxxhero * fix more issues Signed-off-by: yxxhero --------- Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 2 +- Dockerfile | 2 +- Dockerfile.debian-stable-slim | 2 +- Dockerfile.ubuntu | 2 +- go.mod | 2 +- pkg/tmpl/context_funcs.go | 6 ++---- 6 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3b1b2669..4f3b4db5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,7 +20,7 @@ jobs: cache: false - uses: golangci/golangci-lint-action@v6 with: - version: v1.61.0 + version: v1.64.5 tests: runs-on: ubuntu-latest diff --git a/Dockerfile b/Dockerfile index 938a82d5..5c7c5711 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM golang:1.23-alpine AS builder +FROM --platform=$BUILDPLATFORM golang:1.24-alpine AS builder RUN apk add --no-cache make git WORKDIR /workspace/helmfile diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index 86b56dde..32c15a49 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM golang:1.23-alpine AS builder +FROM --platform=$BUILDPLATFORM golang:1.24-alpine AS builder RUN apk add --no-cache make git WORKDIR /workspace/helmfile diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index f2c01e0c..e8d94578 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM golang:1.23-alpine AS builder +FROM --platform=$BUILDPLATFORM golang:1.24-alpine AS builder RUN apk add --no-cache make git WORKDIR /workspace/helmfile diff --git a/go.mod b/go.mod index 8a18962d..2327b1e9 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/helmfile/helmfile -go 1.23.1 +go 1.24 require ( dario.cat/mergo v1.0.1 diff --git a/pkg/tmpl/context_funcs.go b/pkg/tmpl/context_funcs.go index 12888a91..3cc2119d 100644 --- a/pkg/tmpl/context_funcs.go +++ b/pkg/tmpl/context_funcs.go @@ -391,12 +391,10 @@ func RequiredEnv(name string) (string, error) { func Required(warn string, val any) (any, error) { if val == nil { - // nolint:govet,staticcheck - return nil, fmt.Errorf(warn) + return nil, fmt.Errorf("%s", warn) } else if _, ok := val.(string); ok { if val == "" { - // nolint:govet,staticcheck - return nil, fmt.Errorf(warn) + return nil, fmt.Errorf("%s", warn) } } From 0f6f938ae399b5207c455344bbf6f8d9d3da19f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Feb 2025 12:31:19 +0800 Subject: [PATCH 140/177] build(deps): bump github.com/helmfile/vals from 0.39.2 to 0.39.3 (#1951) Bumps [github.com/helmfile/vals](https://github.com/helmfile/vals) from 0.39.2 to 0.39.3. - [Release notes](https://github.com/helmfile/vals/releases) - [Changelog](https://github.com/helmfile/vals/blob/main/.goreleaser.yml) - [Commits](https://github.com/helmfile/vals/compare/v0.39.2...v0.39.3) --- updated-dependencies: - dependency-name: github.com/helmfile/vals dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 2327b1e9..232d6172 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.20.9 - github.com/helmfile/vals v0.39.2 + github.com/helmfile/vals v0.39.3 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 @@ -47,7 +47,7 @@ require ( github.com/Azure/go-autorest/logger v0.2.1 // indirect github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect - github.com/a8m/envsubst v1.4.2 // indirect + github.com/a8m/envsubst v1.4.3 // indirect github.com/aws/aws-sdk-go v1.55.6 github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/blang/semver v3.5.1+incompatible // indirect @@ -98,7 +98,7 @@ require ( go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.35.0 // indirect - golang.org/x/oauth2 v0.26.0 // indirect + golang.org/x/oauth2 v0.27.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/text v0.22.0 // indirect golang.org/x/time v0.8.0 // indirect @@ -235,7 +235,7 @@ require ( github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcp-sdk-go v0.136.0 // indirect + github.com/hashicorp/hcp-sdk-go v0.137.0 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect diff --git a/go.sum b/go.sum index e7c20d70..1c1c7981 100644 --- a/go.sum +++ b/go.sum @@ -718,8 +718,8 @@ github.com/ProtonMail/go-crypto v1.1.3 h1:nRBOetoydLeUb4nHajyO2bKqMLfWQ/ZPwkXqXx github.com/ProtonMail/go-crypto v1.1.3/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= -github.com/a8m/envsubst v1.4.2 h1:4yWIHXOLEJHQEFd4UjrWDrYeYlV7ncFWJOCBRLOZHQg= -github.com/a8m/envsubst v1.4.2/go.mod h1:MVUTQNGQ3tsjOOtKCNd+fl8RzhsXcDvvAEzkhGtlsbY= +github.com/a8m/envsubst v1.4.3 h1:kDF7paGK8QACWYaQo6KtyYBozY2jhQrTuNNuUxQkhJY= +github.com/a8m/envsubst v1.4.3/go.mod h1:4jjHWQlZoaXPoLQUb7H2qT4iLkZDdmEQiOUogdUmqVU= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= @@ -1209,16 +1209,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos= github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= -github.com/hashicorp/hcp-sdk-go v0.136.0 h1:NNtb/dYoj7YrVQVvWZ2T7PY2Pwn8vQ5YKIAgaqaKk6A= -github.com/hashicorp/hcp-sdk-go v0.136.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= +github.com/hashicorp/hcp-sdk-go v0.137.0 h1:sZRB7ggtKbZpckXkYq8w2Z9w1O/J+nG5ePnnXWJhChM= +github.com/hashicorp/hcp-sdk-go v0.137.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1DdPo= github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.16.0 h1:nbEYGJiAPGzT9U4oWgaaB0g+Rj8E59QuHKyA5LhwQN4= github.com/hashicorp/vault/api v1.16.0/go.mod h1:KhuUhzOD8lDSk29AtzNjgAu2kxRA9jL9NAbkFlqvkBA= github.com/helmfile/chartify v0.20.9 h1:WWkxj+JRxDnE8FewvTPx6XH8UAy5iRw6+buSCFgrURE= github.com/helmfile/chartify v0.20.9/go.mod h1:y9YsgunMZvZ0SgWUfG0FElpGMMf0D9qA65twwmPlcFg= -github.com/helmfile/vals v0.39.2 h1:o8zTbaTSbyXGdENnUzK/Al6+s8XnP9romF1q8sS/mNk= -github.com/helmfile/vals v0.39.2/go.mod h1:/xZJlCQD12OvD2vQovqKuVG6nmqpVDjMb8lrhtiubkA= +github.com/helmfile/vals v0.39.3 h1:pqL73hASvAQs8zax9B9U6I6rVgi0J4BBA+donmw5nrM= +github.com/helmfile/vals v0.39.3/go.mod h1:pbTnyGGC11t2mY2KlMCLkmHSrKdBPJ5cLkyPrwT+W8k= 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= @@ -1752,8 +1752,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE= -golang.org/x/oauth2 v0.26.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= +golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From cf2b36b0169d2530b44a67c24ecc19b15ac89d65 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Feb 2025 13:38:00 +0800 Subject: [PATCH 141/177] build(deps): bump github.com/helmfile/chartify from 0.20.9 to 0.21.0 (#1950) Bumps [github.com/helmfile/chartify](https://github.com/helmfile/chartify) from 0.20.9 to 0.21.0. - [Release notes](https://github.com/helmfile/chartify/releases) - [Commits](https://github.com/helmfile/chartify/compare/v0.20.9...v0.21.0) --- updated-dependencies: - dependency-name: github.com/helmfile/chartify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 232d6172..86190dd5 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 - github.com/helmfile/chartify v0.20.9 + github.com/helmfile/chartify v0.21.0 github.com/helmfile/vals v0.39.3 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 diff --git a/go.sum b/go.sum index 1c1c7981..c5c398c2 100644 --- a/go.sum +++ b/go.sum @@ -1215,8 +1215,8 @@ github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1Dd github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.16.0 h1:nbEYGJiAPGzT9U4oWgaaB0g+Rj8E59QuHKyA5LhwQN4= github.com/hashicorp/vault/api v1.16.0/go.mod h1:KhuUhzOD8lDSk29AtzNjgAu2kxRA9jL9NAbkFlqvkBA= -github.com/helmfile/chartify v0.20.9 h1:WWkxj+JRxDnE8FewvTPx6XH8UAy5iRw6+buSCFgrURE= -github.com/helmfile/chartify v0.20.9/go.mod h1:y9YsgunMZvZ0SgWUfG0FElpGMMf0D9qA65twwmPlcFg= +github.com/helmfile/chartify v0.21.0 h1:9t/Io07sbqcxEfsySe+phv5K95nolWZa9PQUwM43uM0= +github.com/helmfile/chartify v0.21.0/go.mod h1:JLbNKmwHS1uPX78+l0RAO5Y14385EwpstvcVLj42BLo= github.com/helmfile/vals v0.39.3 h1:pqL73hASvAQs8zax9B9U6I6rVgi0J4BBA+donmw5nrM= github.com/helmfile/vals v0.39.3/go.mod h1:pbTnyGGC11t2mY2KlMCLkmHSrKdBPJ5cLkyPrwT+W8k= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= From e16941b433f1cd75487bef81e539b882cf2f6a86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 07:02:13 +0800 Subject: [PATCH 142/177] build(deps): bump golang.org/x/sync from 0.11.0 to 0.12.0 (#1955) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 86190dd5..31f346fd 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/zclconf/go-cty-yaml v1.1.0 go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.11.0 + golang.org/x/sync v0.12.0 golang.org/x/term v0.29.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.17.1 diff --git a/go.sum b/go.sum index c5c398c2..bd9e1dcf 100644 --- a/go.sum +++ b/go.sum @@ -1774,8 +1774,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= -golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= +golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= 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= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= From d708c5753194ca8c48d969c9b128ad1c190ffd44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Mar 2025 23:20:16 +0000 Subject: [PATCH 143/177] build(deps): bump jinja2 from 3.1.5 to 3.1.6 in /docs (#1956) --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 956ceb14..6f1e984f 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -4,7 +4,7 @@ ghp-import==2.0.2 gitdb==4.0.9 GitPython==3.1.41 importlib-metadata==4.11.3 -Jinja2==3.1.5 +Jinja2==3.1.6 Markdown==3.6 MarkupSafe==2.1.1 mergedeep==1.3.4 From 410d84bba5eb3063f874b80ef4166f8641910164 Mon Sep 17 00:00:00 2001 From: jayme-github Date: Thu, 6 Mar 2025 15:52:26 +0100 Subject: [PATCH 144/177] Don't warn if this and the needed release set installed: false (#1958) When the evaluated release has installed: false it's perfectly fine that a needed release is installed: false as well. fixes #1464 Signed-off-by: jayme-github --- .../app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo | 1 - .../app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar | 1 - pkg/app/testdata/app_diff_test_1/smoke | 1 - .../app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo | 1 - .../app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar | 1 - pkg/app/testdata/app_diff_test_2/smoke | 1 - .../testapply/delete_foo_and_bar_when_bar_needs_foo/log | 1 - .../testapply/delete_foo_and_bar_when_foo_needs_bar/log | 1 - pkg/app/testdata/testapply/smoke/log | 1 - .../testdestroy/destroy_only_one_release_with_selector/log | 1 - pkg/app/testdata/testdestroy/smoke/log | 2 -- .../testdestroy_2/destroy_only_one_release_with_selector/log | 1 - pkg/app/testdata/testdestroy_2/smoke/log | 2 -- pkg/state/state.go | 2 +- 14 files changed, 1 insertion(+), 16 deletions(-) diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo index db62f332..c623786d 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo @@ -34,7 +34,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 10: merged environment: &{default map[] map[]} -WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml Affected releases are: diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar index 7268940e..08a2d361 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar @@ -34,7 +34,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 10: merged environment: &{default map[] map[]} -WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml Affected releases are: diff --git a/pkg/app/testdata/app_diff_test_1/smoke b/pkg/app/testdata/app_diff_test_1/smoke index 3cd9cd5a..37e7141b 100644 --- a/pkg/app/testdata/app_diff_test_1/smoke +++ b/pkg/app/testdata/app_diff_test_1/smoke @@ -122,7 +122,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 54: merged environment: &{default map[] map[]} -WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml processing 5 groups of releases in this order: diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo index db62f332..c623786d 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo @@ -34,7 +34,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 10: merged environment: &{default map[] map[]} -WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml Affected releases are: diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar index 7268940e..08a2d361 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar @@ -34,7 +34,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 10: merged environment: &{default map[] map[]} -WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml Affected releases are: diff --git a/pkg/app/testdata/app_diff_test_2/smoke b/pkg/app/testdata/app_diff_test_2/smoke index fcaf8164..736c9795 100644 --- a/pkg/app/testdata/app_diff_test_2/smoke +++ b/pkg/app/testdata/app_diff_test_2/smoke @@ -122,7 +122,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 54: merged environment: &{default map[] map[]} -WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml processing 5 groups of releases in this order: diff --git a/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log index f3377bd1..51419ddc 100644 --- a/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log @@ -34,7 +34,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 10: merged environment: &{default map[] map[]} -WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml Affected releases are: diff --git a/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log index e8850438..a71e2744 100644 --- a/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log @@ -34,7 +34,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 10: merged environment: &{default map[] map[]} -WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml Affected releases are: diff --git a/pkg/app/testdata/testapply/smoke/log b/pkg/app/testdata/testapply/smoke/log index 6ef2316c..3745034a 100644 --- a/pkg/app/testdata/testapply/smoke/log +++ b/pkg/app/testdata/testapply/smoke/log @@ -122,7 +122,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 54: merged environment: &{default map[] map[]} -WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml Affected releases are: diff --git a/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log b/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log index b3ea59f1..8e164254 100644 --- a/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log +++ b/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log @@ -122,7 +122,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 54: merged environment: &{default map[] map[]} -WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 1 release(s) matching name=logging found in helmfile.yaml processing 1 groups of releases in this order: diff --git a/pkg/app/testdata/testdestroy/smoke/log b/pkg/app/testdata/testdestroy/smoke/log index 13a80305..0c5d84fe 100644 --- a/pkg/app/testdata/testdestroy/smoke/log +++ b/pkg/app/testdata/testdestroy/smoke/log @@ -122,7 +122,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 54: merged environment: &{default map[] map[]} -WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml processing 5 groups of releases in this order: @@ -136,7 +135,6 @@ GROUP RELEASES processing releases in group 1/5: default//frontend-v3, default//frontend-v2, default//frontend-v1 release "frontend-v3" processed release "frontend-v2" processed -WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs release "frontend-v1" processed processing releases in group 2/5: default//backend-v2, default//backend-v1 release "backend-v2" processed diff --git a/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log b/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log index 917d5684..df88f3de 100644 --- a/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log +++ b/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log @@ -122,7 +122,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 54: merged environment: &{default map[] map[]} -WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 1 release(s) matching name=logging found in helmfile.yaml processing 1 groups of releases in this order: diff --git a/pkg/app/testdata/testdestroy_2/smoke/log b/pkg/app/testdata/testdestroy_2/smoke/log index d4fd6427..007a08ef 100644 --- a/pkg/app/testdata/testdestroy_2/smoke/log +++ b/pkg/app/testdata/testdestroy_2/smoke/log @@ -122,7 +122,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 54: merged environment: &{default map[] map[]} -WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 10 release(s) found in helmfile.yaml processing 5 groups of releases in this order: @@ -136,7 +135,6 @@ GROUP RELEASES processing releases in group 1/5: frontend-v3, frontend-v2, frontend-v1 release "frontend-v3" processed release "frontend-v2" processed -WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs release "frontend-v1" processed processing releases in group 2/5: backend-v2, backend-v1 release "backend-v2" processed diff --git a/pkg/state/state.go b/pkg/state/state.go index 22f619c3..223cee8c 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -502,7 +502,7 @@ func (st *HelmState) reformat(spec *ReleaseSpec) []string { components := strings.Split(n, "/") name = components[len(components)-1] - if !releaseInstalledInfo[name] { + if spec.Desired() && !releaseInstalledInfo[name] { st.logger.Warnf("WARNING: %s", fmt.Sprintf("release %s needs %s, but %s is not installed due to installed: false. Either mark %s as installed or remove %s from %s's needs", spec.Name, name, name, name, name, spec.Name)) } From 3f6d5f52ab82020f2899ab144cf3de8395fffcbc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Mar 2025 07:00:21 +0800 Subject: [PATCH 145/177] build(deps): bump golang.org/x/term from 0.29.0 to 0.30.0 (#1959) Bumps [golang.org/x/term](https://github.com/golang/term) from 0.29.0 to 0.30.0. - [Commits](https://github.com/golang/term/compare/v0.29.0...v0.30.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 31f346fd..020faaf1 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.12.0 - golang.org/x/term v0.29.0 + golang.org/x/term v0.30.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.17.1 k8s.io/apimachinery v0.32.2 @@ -99,7 +99,7 @@ require ( go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.35.0 // indirect golang.org/x/oauth2 v0.27.0 // indirect - golang.org/x/sys v0.30.0 // indirect + golang.org/x/sys v0.31.0 // indirect golang.org/x/text v0.22.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/api v0.215.0 // indirect diff --git a/go.sum b/go.sum index bd9e1dcf..f5874cf1 100644 --- a/go.sum +++ b/go.sum @@ -1865,8 +1865,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= -golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= +golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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= @@ -1882,8 +1882,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= -golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= -golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= +golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= +golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= 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= From 5d29f037829695879530f376ebfa8a69cdd23bbb Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Sat, 8 Mar 2025 21:43:21 +0800 Subject: [PATCH 146/177] Remove all v0.x references (#1919) * fix tests Signed-off-by: yxxhero * refactor(two_pass_renderer): remove unused imports and functions Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero * fix tests Signed-off-by: yxxhero --------- Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 13 -- .github/workflows/releaser.yaml | 1 - .goreleaser.yml | 4 - Makefile | 4 - cmd/apply.go | 7 - cmd/charts.go | 41 ---- cmd/delete.go | 44 ---- cmd/root.go | 8 - docs/index.md | 1 - pkg/app/app.go | 63 +---- pkg/app/app_apply_nokubectx_test.go | 80 +------ pkg/app/app_apply_test.go | 82 +------ pkg/app/app_list_test.go | 1 + pkg/app/app_sync_test.go | 14 +- pkg/app/app_test.go | 112 ++++----- pkg/app/config.go | 29 --- pkg/app/constants.go | 5 +- pkg/app/desired_state_file_loader.go | 24 +- pkg/app/diff_nokubectx_test.go | 181 +-------------- pkg/app/diff_test.go | 218 +----------------- pkg/app/run.go | 11 - pkg/app/testdata/app_diff_test/bad_selector | 101 -------- .../fail_on_unselected_need_by_default | 101 -------- pkg/app/testdata/app_diff_test/include-needs | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- .../app_diff_test/include-transitive-needs | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- pkg/app/testdata/app_diff_test/no-hooks | 101 -------- .../show_diff_on_changed_selected_release | 29 --- ...ff_on_already_uninstalled_selected_release | 31 --- pkg/app/testdata/app_diff_test/skip-needs | 101 -------- pkg/app/testdata/app_diff_test_1/bar | 33 --- .../delete_bar_when_bar_needs_foo | 31 --- .../delete_bar_when_foo_needs_bar | 31 --- ..._bar_when_foo_needs_bar_with_include-needs | 31 --- ...ete_bar_when_foo_needs_bar_with_skip-needs | 31 --- .../delete_foo_and_bar_when_bar_needs_foo | 33 --- .../delete_foo_and_bar_when_foo_needs_bar | 33 --- .../delete_foo_when_bar_needs_foo | 31 --- ..._foo_when_bar_needs_foo_with_include-needs | 31 --- ...ete_foo_when_bar_needs_foo_with_skip-needs | 31 --- .../delete_foo_when_foo_needs_bar | 31 --- .../helm3_upgrade_when_ns2_bar_needs_ns1_foo | 33 --- pkg/app/testdata/app_diff_test_1/install | 33 --- .../non-existent_release_in_needs | 8 + pkg/app/testdata/app_diff_test_1/noop | 31 --- pkg/app/testdata/app_diff_test_1/smoke | 121 ---------- .../unselected_release_in_needs | 7 + .../upgrade_when_bar_needs_foo | 29 --- ...grade_when_bar_needs_foo,_with_ns_override | 29 --- .../upgrade_when_foo_needs_bar | 29 --- ...grade_when_foo_needs_bar,_with_ns_override | 29 --- ...e_when_foo_needs_bar_with_context_override | 33 --- ...n_releaseb_needs_releasea_with_aws_context | 37 --- ...grade_when_tns1_ns1_foo_needs_tns2_ns2_bar | 33 --- .../upgrades_with_bad_selector | 33 +++ ...with_good_selector_with_--skip-needs=false | 34 +++ ..._with_good_selector_with_--skip-needs=true | 40 +--- pkg/app/testdata/app_diff_test_2/bar | 33 --- .../delete_bar_when_bar_needs_foo | 31 --- .../delete_bar_when_foo_needs_bar | 31 --- ..._bar_when_foo_needs_bar_with_include-needs | 31 --- ...ete_bar_when_foo_needs_bar_with_skip-needs | 31 --- .../delete_foo_and_bar_when_bar_needs_foo | 33 --- .../delete_foo_and_bar_when_foo_needs_bar | 33 --- .../delete_foo_when_bar_needs_foo | 31 --- .../delete_foo_when_foo_needs_bar | 31 --- pkg/app/testdata/app_diff_test_2/foo | 33 --- .../helm3_upgrade_when_ns2_bar_needs_ns1_foo | 33 --- pkg/app/testdata/app_diff_test_2/install | 33 --- .../non-existent_release_in_needs | 8 + pkg/app/testdata/app_diff_test_2/noop | 31 --- pkg/app/testdata/app_diff_test_2/smoke | 121 ---------- .../upgrade_when_bar_needs_foo | 29 --- ...grade_when_bar_needs_foo,_with_ns_override | 29 --- .../upgrade_when_foo_needs_bar | 29 --- ...grade_when_foo_needs_bar,_with_ns_override | 29 --- .../upgrades_with_bad_selector | 33 +++ ...with_good_selector_with_--skip-needs=false | 34 +++ ..._with_good_selector_with_--skip-needs=true | 40 +--- pkg/app/testdata/app_lint_test/bad_selector | 101 -------- .../fail_on_unselected_need_by_default | 101 -------- pkg/app/testdata/app_lint_test/include-needs | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- .../app_lint_test/include-transitive-needs | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- pkg/app/testdata/app_lint_test/skip-needs | 101 -------- .../default_environment_includes_all_releases | 205 ---------------- .../app_list_test/fail_on_unknown_environment | 61 ----- ...ses_for_environment_used_in_multiple_files | 205 ---------------- ...ases_for_environment_used_in_one_file_only | 106 --------- ...releases_matching_selector_and_environment | 160 ------------- .../testdata/app_template_test/bad_selector | 101 -------- .../fail_on_unselected_need_by_default | 101 -------- .../testdata/app_template_test/include-needs | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- ...ds_should_not_fail_on_disabled_direct_need | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- .../include-transitive-needs | 101 -------- ...hould_not_fail_on_disabled_transitive_need | 101 -------- pkg/app/testdata/app_template_test/no-hooks | 101 -------- pkg/app/testdata/app_template_test/show-only | 101 -------- pkg/app/testdata/app_template_test/skip-needs | 101 -------- .../dag_test/dag_lists_dependencies_in_order | 114 --------- .../delete_bar_when_bar_needs_foo/log | 31 --- .../delete_bar_when_foo_needs_bar/log | 31 --- .../delete_foo_and_bar_when_bar_needs_foo/log | 33 --- .../delete_foo_and_bar_when_foo_needs_bar/log | 33 --- .../delete_foo_when_bar_needs_foo/log | 31 --- .../delete_foo_when_foo_needs_bar/log | 31 --- .../testdata/testapply/duplicate_releases/log | 39 ---- .../log | 27 --- .../log | 39 ---- .../log | 39 ---- pkg/app/testdata/testapply/install/log | 33 --- .../non-existent_release_in_needs/log | 31 --- pkg/app/testdata/testapply/noop/log | 31 --- pkg/app/testdata/testapply/smoke/log | 121 ---------- .../testapply/unselected_release_in_needs/log | 31 --- .../log | 29 --- .../testapply/upgrade_when_bar_needs_foo/log | 29 --- .../log | 29 --- .../testapply/upgrade_when_foo_needs_bar/log | 29 --- .../upgrade_when_ns1/foo_needs_ns2/bar/log | 33 --- .../upgrade_when_ns2/bar_needs_ns1/foo/log | 33 --- .../testapply/upgrades_with_bad_selector/log | 40 +--- .../log | 40 +--- .../log | 40 +--- .../testdata/testapply_2/bad_--selector/log | 33 +++ .../testapply_2/deduplicate_by_--selector/log | 47 ---- .../include-transitive-needs=true/log | 36 +-- .../log | 39 ---- .../log | 51 ---- .../skip-needs=false_include-needs=true/log | 40 +--- .../log | 40 +--- .../log | 41 +--- .../log | 41 +--- .../testdata/testapply_2/skip-needs=true/log | 40 +--- .../log | 40 +--- .../testdata/testapply_3/bad_--selector/log | 33 +++ .../skip-needs=false_include-needs=true/log | 40 +--- .../log | 40 +--- .../log | 41 +--- .../log | 41 +--- .../testdata/testapply_3/skip-needs=true/log | 40 +--- .../log | 40 +--- pkg/app/testdata/testdeps/smoke/log | 7 + .../log | 31 --- .../log | 121 ---------- pkg/app/testdata/testdestroy/helm3/log | 31 --- pkg/app/testdata/testdestroy/smoke/log | 121 ---------- .../log | 31 --- .../log | 121 ---------- pkg/app/testdata/testdestroy_2/helm3/log | 31 --- pkg/app/testdata/testdestroy_2/smoke/log | 121 ---------- .../testreadfromyaml_rendertemplatelog/log | 10 + pkg/app/two_pass_renderer.go | 106 +-------- pkg/app/two_pass_renderer_test.go | 115 +-------- pkg/config/apply.go | 10 - pkg/config/charts.go | 46 ---- pkg/config/delete.go | 67 ------ pkg/envvar/const.go | 4 - pkg/policy/checker.go | 6 +- pkg/policy/checker_test.go | 27 +-- pkg/runtime/runtime.go | 25 +- pkg/state/create.go | 14 -- pkg/state/create_test.go | 20 -- pkg/state/state.go | 4 - pkg/state/state_test.go | 30 +-- pkg/tmpl/context_funcs.go | 16 +- pkg/tmpl/context_funcs_test.go | 24 -- test/e2e/template/helmfile/snapshot_test.go | 2 +- .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{no-envs.yaml => no-envs.yaml.gotmpl} | 0 .../{no-values.yaml => no-values.yaml.gotmpl} | 0 .../helmfiles/{prod.yaml => prod.yaml.gotmpl} | 0 .../helmfiles/{test.yaml => test.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 8 +- .../config.yaml | 5 - .../config.yaml | 5 + .../input.yaml.gotmpl} | 2 +- .../output.yaml | 1 - .../{input.yaml => input.yaml.gotmpl} | 0 .../hcl_mix/{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../output.yaml | 4 +- .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../pr_560/{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 .../{input.yaml => input.yaml.gotmpl} | 0 test/integration/test-cases/chart-needs.sh | 9 +- .../{helmfile.yaml => helmfile.yaml.gotmpl} | 0 ...y-jsonPatches-and-strategicMergePatches.sh | 9 +- .../{helmfile.yaml => helmfile.yaml.gotmpl} | 0 test/integration/test-cases/chartify.sh | 9 +- .../{helmfile.yaml => helmfile.yaml.gotmpl} | 0 .../cli-overwrite-environment-values.sh | 30 +-- .../input/input.yaml | 17 -- ...input_v1.yaml.gotmpl => input.yaml.gotmpl} | 0 .../output/output.yaml | 9 +- .../output/output_v1.yaml | 111 --------- test/integration/test-cases/happypath.sh | 9 +- .../{happypath.yaml => happypath.yaml.gotmpl} | 0 test/integration/test-cases/postrender.sh | 9 +- .../{helmfile.yaml => helmfile.yaml.gotmpl} | 0 test/integration/test-cases/regression.sh | 32 +-- ...issue.1682.yaml => issue.1682.yaml.gotmpl} | 0 ...issue.1857.yaml => issue.1857.yaml.gotmpl} | 0 ...issue.1867.yaml => issue.1867.yaml.gotmpl} | 0 ...issue.2118.yaml => issue.2118.yaml.gotmpl} | 0 test/integration/test-cases/secretssops.sh | 8 +- ...cretssops.yaml => secretssops.yaml.gotmpl} | 0 ...bhelmfile-multi-bases-with-array-values.sh | 35 +-- .../output/result-live | 25 ++ test/integration/test-cases/yaml-overwrite.sh | 30 ++- 229 files changed, 510 insertions(+), 9464 deletions(-) delete mode 100644 cmd/charts.go delete mode 100644 cmd/delete.go create mode 100644 pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs create mode 100644 pkg/app/testdata/app_diff_test_1/unselected_release_in_needs create mode 100644 pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector create mode 100644 pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false create mode 100644 pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs create mode 100644 pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector create mode 100644 pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false create mode 100644 pkg/app/testdata/testapply_2/bad_--selector/log create mode 100644 pkg/app/testdata/testapply_3/bad_--selector/log create mode 100644 pkg/app/testdata/testdeps/smoke/log create mode 100644 pkg/app/testdata/testreadfromyaml_rendertemplatelog/log delete mode 100644 pkg/config/charts.go delete mode 100644 pkg/config/delete.go rename test/e2e/template/helmfile/testdata/snapshot/chart_need/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{no-envs.yaml => no-envs.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{no-values.yaml => no-values.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{prod.yaml => prod.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/{test.yaml => test.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/{input.yaml => input.yaml.gotmpl} (58%) delete mode 100644 test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml create mode 100644 test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml rename test/e2e/template/helmfile/testdata/snapshot/{environments_releases_within_same_yaml_part/input.yaml => environments_releases_without_same_yaml_part/input.yaml.gotmpl} (97%) rename test/e2e/template/helmfile/testdata/snapshot/{environments_releases_within_same_yaml_part => environments_releases_without_same_yaml_part}/output.yaml (56%) rename test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/hcl_mix/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/oci_need/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/postrenderer/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/pr_560/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/{input.yaml => input.yaml.gotmpl} (100%) rename test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/{input.yaml => input.yaml.gotmpl} (100%) rename test/integration/test-cases/chart-needs/input/{helmfile.yaml => helmfile.yaml.gotmpl} (100%) rename test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/{helmfile.yaml => helmfile.yaml.gotmpl} (100%) rename test/integration/test-cases/chartify/input/{helmfile.yaml => helmfile.yaml.gotmpl} (100%) delete mode 100644 test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml rename test/integration/test-cases/cli-overwrite-environment-values/input/{input_v1.yaml.gotmpl => input.yaml.gotmpl} (100%) delete mode 100644 test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml rename test/integration/test-cases/happypath/input/{happypath.yaml => happypath.yaml.gotmpl} (100%) rename test/integration/test-cases/postrender/input/{helmfile.yaml => helmfile.yaml.gotmpl} (100%) rename test/integration/test-cases/regression/input/{issue.1682.yaml => issue.1682.yaml.gotmpl} (100%) rename test/integration/test-cases/regression/input/{issue.1857.yaml => issue.1857.yaml.gotmpl} (100%) rename test/integration/test-cases/regression/input/{issue.1867.yaml => issue.1867.yaml.gotmpl} (100%) rename test/integration/test-cases/regression/input/{issue.2118.yaml => issue.2118.yaml.gotmpl} (100%) rename test/integration/test-cases/secretssops/input/{secretssops.yaml => secretssops.yaml.gotmpl} (100%) create mode 100644 test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4f3b4db5..b7533c6c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -59,7 +59,6 @@ jobs: plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' - v1mode: '' - helm-version: v3.16.4 kustomize-version: v5.4.3 # We assume that the helm-secrets plugin is supposed to @@ -70,26 +69,16 @@ jobs: plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '' - v1mode: '' - helm-version: v3.17.1 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' - v1mode: '' - helm-version: v3.17.1 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '' - v1mode: '' - # Helmfile v1 - - helm-version: v3.17.1 - kustomize-version: v5.4.3 - plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.14 - 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.17.1 @@ -97,7 +86,6 @@ jobs: plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '--enable-live-output' - v1mode: '' steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 @@ -127,7 +115,6 @@ jobs: HELMFILE_HELM3: 1 TERM: xterm EXTRA_HELMFILE_FLAGS: ${{ matrix.extra-helmfile-flags }} - HELMFILE_V1MODE: ${{ matrix.v1mode }} e2e_tests: needs: tests diff --git a/.github/workflows/releaser.yaml b/.github/workflows/releaser.yaml index ee2f0dc9..fc98bd7c 100644 --- a/.github/workflows/releaser.yaml +++ b/.github/workflows/releaser.yaml @@ -16,7 +16,6 @@ permissions: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - HELMFILE_V1MODE: ${{ startsWith(github.ref, 'refs/tags/v1') }} SNAPSHOT: ${{ !startsWith(github.ref, 'refs/tags/v') && '--snapshot' || '' }} jobs: diff --git a/.goreleaser.yml b/.goreleaser.yml index 6d515513..aba37be9 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,8 +1,5 @@ version: 2 project_name: helmfile -env: - # We default to non-v1 mode (=helmfile v0.x behavior) when HELMFILE_V1MODE is not set - - HELMFILE_V1MODE={{ if index .Env "HELMFILE_V1MODE" }}{{ .Env.HELMFILE_V1MODE }}{{ else }}false{{ end }} builds: - id: helmfile main: . @@ -15,7 +12,6 @@ builds: - -X go.szostok.io/version.commit={{.FullCommit}} - -X go.szostok.io/version.commitDate={{.CommitDate}} - -X go.szostok.io/version.dirtyBuild=false - - -X github.com/helmfile/helmfile/pkg/runtime.v1Mode={{.Env.HELMFILE_V1MODE}} goos: - darwin - linux diff --git a/Makefile b/Makefile index 0500bd33..5e009ca0 100644 --- a/Makefile +++ b/Makefile @@ -25,10 +25,6 @@ build: go build -ldflags="$(GO_BUILD_VERSION_LDFLAGS)" ${TARGETS} .PHONY: build -build-v1: - go build -ldflags="$(GO_BUILD_VERSION_LDFLAGS) -X github.com/helmfile/helmfile/pkg/runtime.v1Mode=true" ${TARGETS} -.PHONY: build-v1 - generate: go generate ${PKGS} .PHONY: generate diff --git a/cmd/apply.go b/cmd/apply.go index 9e6cfa47..8cbe4ad9 100644 --- a/cmd/apply.go +++ b/cmd/apply.go @@ -5,7 +5,6 @@ import ( "github.com/helmfile/helmfile/pkg/app" "github.com/helmfile/helmfile/pkg/config" - "github.com/helmfile/helmfile/pkg/runtime" ) // NewApplyCmd returns apply subcmd @@ -44,12 +43,6 @@ func NewApplyCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.StringVar(&applyOptions.DiffArgs, "diff-args", "", `pass args to helm helm-diff`) f.StringVar(&applyOptions.SyncArgs, "sync-args", "", `pass args to helm upgrade`) f.StringVar(&globalCfg.GlobalOptions.Args, "args", "", "pass args to helm exec") - if !runtime.V1Mode { - // TODO: Remove this function once Helmfile v0.x - f.BoolVar(&applyOptions.RetainValuesFiles, "retain-values-files", false, "DEPRECATED: Use skip-cleanup instead") - _ = f.MarkDeprecated("retain-values-files", "Use skip-cleanup instead") - } - f.BoolVar(&applyOptions.SkipCleanup, "skip-cleanup", false, "Stop cleaning up temporary values generated by helmfile and helm-secrets. Useful for debugging. Don't use in production for security") f.BoolVar(&applyOptions.SkipCRDs, "skip-crds", false, "if set, no CRDs will be installed on sync. By default, CRDs are installed if not already present") f.BoolVar(&applyOptions.SkipNeeds, "skip-needs", true, `do not automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when --selector/-l flag is not provided. Defaults to true when --include-needs or --include-transitive-needs is not provided`) diff --git a/cmd/charts.go b/cmd/charts.go deleted file mode 100644 index cae9d168..00000000 --- a/cmd/charts.go +++ /dev/null @@ -1,41 +0,0 @@ -// TODO: Remove this function once Helmfile v0.x -package cmd - -import ( - "github.com/spf13/cobra" - - "github.com/helmfile/helmfile/pkg/app" - "github.com/helmfile/helmfile/pkg/config" -) - -// NewChartsCmd returns charts subcmd -func NewChartsCmd(globalCfg *config.GlobalImpl) *cobra.Command { - chartsOptions := config.NewChartsOptions() - - cmd := &cobra.Command{ - Use: "charts", - Short: "DEPRECATED: sync releases from state file (helm upgrade --install)", - RunE: func(cmd *cobra.Command, args []string) error { - chartsImpl := config.NewChartsImpl(globalCfg, chartsOptions) - err := config.NewCLIConfigImpl(chartsImpl.GlobalImpl) - if err != nil { - return err - } - - if err := chartsImpl.ValidateConfig(); err != nil { - return err - } - - a := app.New(chartsImpl) - return toCLIError(chartsImpl.GlobalImpl, a.DeprecatedSyncCharts(chartsImpl)) - }, - } - - f := cmd.Flags() - f.StringVar(&globalCfg.GlobalOptions.Args, "args", "", "pass args to helm exec") - f.StringArrayVar(&chartsOptions.Set, "set", nil, "additional values to be merged into the helm command --set flag") - f.StringArrayVar(&chartsOptions.Values, "values", nil, "additional value files to be merged into the helm command --values flag") - f.IntVar(&chartsOptions.Concurrency, "concurrency", 0, "maximum number of concurrent helm processes to run, 0 is unlimited") - - return cmd -} diff --git a/cmd/delete.go b/cmd/delete.go deleted file mode 100644 index 1c89c147..00000000 --- a/cmd/delete.go +++ /dev/null @@ -1,44 +0,0 @@ -// TODO: Remove this function once Helmfile v0.x -package cmd - -import ( - "github.com/spf13/cobra" - - "github.com/helmfile/helmfile/pkg/app" - "github.com/helmfile/helmfile/pkg/config" -) - -// NewDeleteCmd returns delete subcmd -func NewDeleteCmd(globalCfg *config.GlobalImpl) *cobra.Command { - deleteOptions := config.NewDeleteOptions() - - cmd := &cobra.Command{ - Use: "delete", - Short: "DEPRECATED: delete releases from state file (helm delete)", - RunE: func(cmd *cobra.Command, args []string) error { - deleteImpl := config.NewDeleteImpl(globalCfg, deleteOptions) - err := config.NewCLIConfigImpl(deleteImpl.GlobalImpl) - if err != nil { - return err - } - - if err := deleteImpl.ValidateConfig(); err != nil { - return err - } - - a := app.New(deleteImpl) - return toCLIError(deleteImpl.GlobalImpl, a.Delete(deleteImpl)) - }, - } - - f := cmd.Flags() - f.StringVar(&globalCfg.GlobalOptions.Args, "args", "", "pass args to helm exec") - f.StringVar(&deleteOptions.Cascade, "cascade", "", "pass cascade to helm exec, default: background") - f.IntVar(&deleteOptions.Concurrency, "concurrency", 0, "maximum number of concurrent helm processes to run, 0 is unlimited") - f.BoolVar(&deleteOptions.Purge, "purge", false, "purge releases i.e. free release names and histories") - f.BoolVar(&deleteOptions.SkipCharts, "skip-charts", false, "don't prepare charts when deleting releases") - f.BoolVar(&deleteOptions.DeleteWait, "deleteWait", false, `override helmDefaults.wait setting "helm uninstall --wait"`) - f.IntVar(&deleteOptions.DeleteTimeout, "deleteTimeout", 300, `time in seconds to wait for helm uninstall, default: 300`) - - return cmd -} diff --git a/cmd/root.go b/cmd/root.go index f94cd9be..ed629d12 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -109,14 +109,6 @@ func NewRootCmd(globalConfig *config.GlobalOptions) (*cobra.Command, error) { ), ) - // TODO: Remove this function once Helmfile v0.x - if !runtime.V1Mode { - cmd.AddCommand( - NewChartsCmd(globalImpl), - NewDeleteCmd(globalImpl), - ) - } - return cmd, nil } diff --git a/docs/index.md b/docs/index.md index 5af7f7c0..46d574d7 100644 --- a/docs/index.md +++ b/docs/index.md @@ -564,7 +564,6 @@ Helmfile uses some OS environment variables to override default behaviour: * `HELMFILE_ENVIRONMENT` - specify [Helmfile environment](https://helmfile.readthedocs.io/en/latest/#environment), it has lower priority than CLI argument `--environment` * `HELMFILE_TEMPDIR` - specify directory to store temporary files * `HELMFILE_UPGRADE_NOTICE_DISABLED` - expecting any non-empty value to skip the check for the latest version of Helmfile in [helmfile version](https://helmfile.readthedocs.io/en/latest/#version) -* `HELMFILE_V1MODE` - Helmfile v0.x behaves like v1.x with `true`, Helmfile v1.x behaves like v0.x with `false` as value * `HELMFILE_GOCCY_GOYAML` - use *goccy/go-yaml* instead of *gopkg.in/yaml.v2*. It's `false` by default in Helmfile v0.x and `true` by default for Helmfile v1.x. * `HELMFILE_CACHE_HOME` - specify directory to store cached files for remote operations * `HELMFILE_FILE_PATH` - specify the path to the helmfile.yaml file diff --git a/pkg/app/app.go b/pkg/app/app.go index 61e3224e..d5db95fb 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -20,7 +20,6 @@ import ( "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/plugins" "github.com/helmfile/helmfile/pkg/remote" - "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" ) @@ -139,25 +138,6 @@ func (a *App) Repos(c ReposConfigProvider) error { }, c.IncludeTransitiveNeeds(), SetFilter(true)) } -// TODO: Remove this function once Helmfile v0.x -func (a *App) DeprecatedSyncCharts(c DeprecatedChartsConfigProvider) error { - return a.ForEachState(func(run *Run) (_ bool, errs []error) { - err := run.withPreparedCharts("charts", state.ChartPrepareOptions{ - SkipRepos: true, - SkipDeps: true, - Concurrency: 2, - }, func() { - errs = run.DeprecatedSyncCharts(c) - }) - - if err != nil { - errs = append(errs, err) - } - - return - }, c.IncludeTransitiveNeeds(), SetFilter(true)) -} - func (a *App) Diff(c DiffConfigProvider) error { var allDiffDetectedErrs []error @@ -410,7 +390,7 @@ func (a *App) Apply(c ApplyConfigProvider) error { var opts []LoadOption - opts = append(opts, SetRetainValuesFiles(c.RetainValuesFiles() || c.SkipCleanup())) + opts = append(opts, SetRetainValuesFiles(c.SkipCleanup())) err := a.ForEachState(func(run *Run) (ok bool, errs []error) { includeCRDs := !c.SkipCRDs() @@ -423,7 +403,7 @@ func (a *App) Apply(c ApplyConfigProvider) error { WaitRetries: c.WaitRetries(), WaitForJobs: c.WaitForJobs(), IncludeCRDs: &includeCRDs, - SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), + SkipCleanup: c.SkipCleanup(), Validate: c.Validate(), Concurrency: c.Concurrency(), IncludeTransitiveNeeds: c.IncludeNeeds(), @@ -475,31 +455,6 @@ func (a *App) Status(c StatusesConfigProvider) error { }, false, SetFilter(true)) } -// TODO: Remove this function once Helmfile v0.x -func (a *App) Delete(c DeleteConfigProvider) error { - return a.ForEachState(func(run *Run) (ok bool, errs []error) { - if !c.SkipCharts() { - err := run.withPreparedCharts("delete", state.ChartPrepareOptions{ - SkipRepos: c.SkipRefresh() || c.SkipDeps(), - SkipRefresh: c.SkipRefresh(), - SkipDeps: c.SkipDeps(), - Concurrency: c.Concurrency(), - DeleteWait: c.DeleteWait(), - DeleteTimeout: c.DeleteTimeout(), - }, func() { - ok, errs = a.delete(run, c.Purge(), c) - }) - - if err != nil { - errs = append(errs, err) - } - } else { - ok, errs = a.delete(run, c.Purge(), c) - } - return - }, false, SetReverse(true)) -} - func (a *App) Destroy(c DestroyConfigProvider) error { return a.ForEachState(func(run *Run) (ok bool, errs []error) { if !c.SkipCharts() { @@ -1260,16 +1215,6 @@ func (a *App) findDesiredStateFiles(specifiedPath string, opts LoadOpts) ([]stri case a.fs.FileExistsAt(DefaultGotmplHelmfile): defaultFile = DefaultGotmplHelmfile - - // TODO: Remove this block when we remove v0 code - case !runtime.V1Mode && a.fs.FileExistsAt(DeprecatedHelmfile): - a.Logger.Warnf( - "warn: %s is being loaded: %s is deprecated in favor of %s. See https://github.com/roboll/helmfile/issues/25 for more information", - DeprecatedHelmfile, - DeprecatedHelmfile, - DefaultHelmfile, - ) - defaultFile = DeprecatedHelmfile } switch { @@ -1432,7 +1377,7 @@ func (a *App) apply(r *Run, c ApplyConfigProvider) (bool, bool, []error) { Context: c.Context(), Output: c.DiffOutput(), Set: c.Set(), - SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), + SkipCleanup: c.SkipCleanup(), SkipDiffOnInstall: c.SkipDiffOnInstall(), ReuseValues: c.ReuseValues(), ResetValues: c.ResetValues(), @@ -1544,7 +1489,7 @@ Do you really want to apply? syncOpts := &state.SyncOpts{ Set: c.Set(), - SkipCleanup: c.RetainValuesFiles() || c.SkipCleanup(), + SkipCleanup: c.SkipCleanup(), SkipCRDs: c.SkipCRDs(), Wait: c.Wait(), WaitRetries: c.WaitRetries(), diff --git a/pkg/app/app_apply_nokubectx_test.go b/pkg/app/app_apply_nokubectx_test.go index 437a467c..c5ca3bbe 100644 --- a/pkg/app/app_apply_nokubectx_test.go +++ b/pkg/app/app_apply_nokubectx_test.go @@ -146,7 +146,7 @@ func TestApply_3(t *testing.T) { skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -199,7 +199,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -250,7 +250,7 @@ releases: }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -306,7 +306,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -359,7 +359,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -415,7 +415,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -464,7 +464,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def t.Run("bad --selector", func(t *testing.T) { check(t, testcase{ files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -494,72 +494,6 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml - -changing working directory back to "/path/to" -`, }) }) } diff --git a/pkg/app/app_apply_test.go b/pkg/app/app_apply_test.go index 057cd683..06caf828 100644 --- a/pkg/app/app_apply_test.go +++ b/pkg/app/app_apply_test.go @@ -146,7 +146,7 @@ func TestApply_2(t *testing.T) { skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -199,7 +199,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -250,7 +250,7 @@ releases: }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -306,7 +306,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -359,7 +359,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -415,7 +415,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -470,7 +470,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -517,7 +517,7 @@ serviceC 4 Fri Nov 1 08:40:07 2019 DEPLOYED chart-3.1.0 3.1.0 def t.Run("bad --selector", func(t *testing.T) { check(t, testcase{ files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -547,72 +547,6 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml - -changing working directory back to "/path/to" -`, }) }) diff --git a/pkg/app/app_list_test.go b/pkg/app/app_list_test.go index 4cd535ed..69bbc754 100644 --- a/pkg/app/app_list_test.go +++ b/pkg/app/app_list_test.go @@ -240,6 +240,7 @@ environments: values: - myrelease2: enabled: false +--- releases: - name: myrelease1 chart: mychart1 diff --git a/pkg/app/app_sync_test.go b/pkg/app/app_sync_test.go index b138f2fb..5115db1c 100644 --- a/pkg/app/app_sync_test.go +++ b/pkg/app/app_sync_test.go @@ -142,7 +142,7 @@ func TestSync(t *testing.T) { skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -191,7 +191,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -249,7 +249,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -300,7 +300,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -348,7 +348,7 @@ serviceA 4 Fri Nov 1 08:40:07 2019 DEPLOYED chart-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -401,7 +401,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def }, error: ``, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -447,7 +447,7 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def t.Run("bad --selector", func(t *testing.T) { check(t, testcase{ files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index 90c3f1ce..66eb8829 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -135,6 +135,7 @@ environments: default: values: - env.*.yaml +--- releases: - name: zipkin chart: stable/zipkin @@ -170,7 +171,7 @@ BAZ: 4 t.Errorf("unexpected error: %v", err) } - expectedOrder := []string{"helmfile.yaml", "/path/to/env.1.yaml", "/path/to/env.2.yaml", "/path/to/env.1.yaml", "/path/to/env.2.yaml"} + expectedOrder := []string{"helmfile.yaml", "/path/to/env.1.yaml", "/path/to/env.2.yaml"} actualOrder := fs.SuccessfulReads() if !reflect.DeepEqual(actualOrder, expectedOrder) { t.Errorf("unexpected order of processed state files: expected=%v, actual=%v", expectedOrder, actualOrder) @@ -184,6 +185,7 @@ environments: default: values: - env.*.yaml +--- releases: - name: zipkin chart: stable/zipkin @@ -230,6 +232,7 @@ bases: - base.yaml environments: test: +--- releases: - name: zipkin chart: stable/zipkin @@ -281,6 +284,7 @@ environments: missingFileHandler: %s values: - %s +--- releases: - name: zipkin chart: stable/zipkin @@ -393,7 +397,7 @@ helmfiles: "/path/to/helmfile.d/a1.yaml": ` environments: prod: - +--- releases: - name: zipkin chart: stable/zipkin @@ -799,41 +803,44 @@ func runFilterSubHelmFilesTests(testcases []struct { func TestVisitDesiredStatesWithReleasesFiltered_EmbeddedNestedStateAdditionalEnvValues(t *testing.T) { files := map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` helmfiles: -- path: helmfile.d/a*.yaml +- path: helmfile.d/a*.yaml.gotmpl values: - env.values.yaml -- helmfile.d/b*.yaml -- path: helmfile.d/c*.yaml +- helmfile.d/b*.yaml.gotmpl +- path: helmfile.d/c*.yaml.gotmpl values: - env.values.yaml `, - "/path/to/helmfile.d/a1.yaml": ` + "/path/to/helmfile.d/a1.yaml.gotmpl": ` environments: default: values: - ns: INLINE_NS +--- releases: - name: foo chart: stable/zipkin namespace: {{ .Environment.Values.ns }} `, - "/path/to/helmfile.d/b.yaml": ` + "/path/to/helmfile.d/b.yaml.gotmpl": ` environments: default: values: - ns: INLINE_NS +--- releases: - name: bar chart: stable/grafana namespace: {{ .Environment.Values.ns }} `, - "/path/to/helmfile.d/c.yaml": ` + "/path/to/helmfile.d/c.yaml.gotmpl": ` environments: default: values: - ns: INLINE_NS +--- releases: - name: baz chart: stable/envoy @@ -851,7 +858,7 @@ ns: INLINE_NS Namespace: "", Selectors: []string{}, Env: "default", - FileOrDir: "/path/to/helmfile.yaml", + FileOrDir: "/path/to/helmfile.yaml.gotmpl", }, files) expectNoCallsToHelm(app) @@ -977,7 +984,7 @@ releases: func TestVisitDesiredStatesWithReleasesFiltered_EnvironmentValueOverrides(t *testing.T) { files := map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` environments: default: values: @@ -1021,7 +1028,7 @@ bar: "bar1" Env: "default", ValuesFiles: []string{"overrides.yaml"}, Set: map[string]any{"bar": "bar2", "baz": "baz1"}, - FileOrDir: "helmfile.yaml", + FileOrDir: "helmfile.yaml.gotmpl", }, files) expectNoCallsToHelm(app) @@ -1075,7 +1082,7 @@ func TestVisitDesiredStatesWithReleasesFiltered_StateValueOverrides(t *testing.T testcase := testcases[i] t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) { files := map[string]string{ - "/path/to/helmfile.yaml": fmt.Sprintf(` + "/path/to/helmfile.yaml.gotmpl": fmt.Sprintf(` # The top-level "values" are "base" values has inherited to state values with the lowest priority. # The lowest priority results in environment-specific values to override values defined in the base. values: @@ -1142,7 +1149,7 @@ x: Env: testcase.env, ValuesFiles: []string{"overrides.yaml"}, Set: map[string]any{"x": map[string]any{"hoge": "hoge_set", "fuga": "fuga_set"}}, - FileOrDir: "helmfile.yaml", + FileOrDir: "helmfile.yaml.gotmpl", }, files) expectNoCallsToHelm(app) @@ -1442,7 +1449,7 @@ func TestLoadDesiredStateFromYaml_DuplicateReleaseName(t *testing.T) { } func TestLoadDesiredStateFromYaml_Bases(t *testing.T) { - yamlFile := "/path/to/yaml/file" + yamlFile := "/path/to/yaml/file.gotmpl" yamlContent := `bases: - ../base.yaml - ../base.gotmpl @@ -1513,7 +1520,7 @@ helmDefaults: } func TestLoadDesiredStateFromYaml_MultiPartTemplate(t *testing.T) { - yamlFile := "/path/to/yaml/file" + yamlFile := "/path/to/yaml/file.gotmpl" yamlContent := `bases: - ../base.yaml --- @@ -1719,7 +1726,7 @@ foo: FOO } func TestLoadDesiredStateFromYaml_MultiPartTemplate_WithNonDefaultEnv(t *testing.T) { - yamlFile := "/path/to/yaml/file" + yamlFile := "/path/to/yaml/file.gotmpl" yamlContent := `bases: - ../base.yaml --- @@ -1810,7 +1817,7 @@ helmDefaults: } func TestLoadDesiredStateFromYaml_MultiPartTemplate_WithReverse(t *testing.T) { - yamlFile := "/path/to/yaml/file" + yamlFile := "/path/to/yaml/file.gotmpl" yamlContent := ` {{ readFile "templates.yaml" }} @@ -1868,7 +1875,7 @@ releases: // See https://github.com/roboll/helmfile/issues/615 func TestLoadDesiredStateFromYaml_MultiPartTemplate_NoMergeArrayInEnvVal(t *testing.T) { - statePath := "/path/to/helmfile.yaml" + statePath := "/path/to/helmfile.yaml.gotmpl" stateContent := ` environments: default: @@ -1933,7 +1940,7 @@ func TestLoadDesiredStateFromYaml_MultiPartTemplate_MergeMapsVariousKeys(t *test } for i := range testcases { tc := testcases[i] - statePath := "/path/to/helmfile.yaml" + statePath := "/path/to/helmfile.yaml.gotmpl" stateContent := ` environments: default: @@ -2050,7 +2057,7 @@ releases: } for i := range testcases { tc := testcases[i] - statePath := "/path/to/helmfile.yaml" + statePath := "/path/to/helmfile.yaml.gotmpl" stateContent := fmt.Sprintf(tc.state, tc.expr) testFs := testhelper.NewTestFs(map[string]string{ statePath: stateContent, @@ -2213,9 +2220,6 @@ type applyConfig struct { cascade string values []string - // TODO: Remove this function once Helmfile v0.x - retainValuesFiles bool - set []string validate bool skipCleanup bool @@ -2381,11 +2385,6 @@ func (a applyConfig) Logger() *zap.SugaredLogger { return a.logger } -// TODO: Remove this function once Helmfile v0.x -func (a applyConfig) RetainValuesFiles() bool { - return a.retainValuesFiles -} - func (a applyConfig) SkipDiffOnInstall() bool { return a.skipDiffOnInstall } @@ -3434,7 +3433,7 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau skipNeeds: true, }, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -3487,9 +3486,9 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def skipNeeds: false, includeNeeds: true, }, - error: `in ./helmfile.yaml: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, + error: `in ./helmfile.yaml.gotmpl: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -3528,7 +3527,7 @@ releases: name: "upgrades with bad selector", loc: location(), files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -3779,41 +3778,6 @@ releases: `, "/path/to/charts/example/Chart.yaml": `foo: FOO`, }, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: repositories: - 2: - name: bitnami - 3: url: https://charts.bitnami.com/bitnami/ - 4: releases: - 5: - name: example - 6: chart: /path/to/charts/example - 7: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: repositories: - 2: - name: bitnami - 3: url: https://charts.bitnami.com/bitnami/ - 4: releases: - 5: - name: example - 6: chart: /path/to/charts/example - 7: - -merged environment: &{default map[] map[]} -There are no repositories defined in your helmfile.yaml. -This means helmfile cannot update your dependencies or create a lock file. -See https://github.com/roboll/helmfile/issues/878 for more information. -changing working directory back to "/path/to" -`, charts: []string{"/path/to/charts/example"}, }, } @@ -3861,8 +3825,9 @@ changing working directory back to "/path/to" if tc.log != "" { actual := bs.String() - assert.Equal(t, tc.log, actual) + } else { + assertLogEqualsToSnapshot(t, bs.String()) } }) } @@ -3967,6 +3932,7 @@ environments: values: - myrelease2: enabled: false +--- releases: - name: myrelease1 chart: mychart1 @@ -4030,7 +3996,7 @@ func testSetStringValuesTemplate(t *testing.T, goccyGoYaml bool) { }) files := map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` releases: - name: zipkin chart: stable/zipkin @@ -4054,7 +4020,7 @@ releases: OverrideKubeContext: "default", Logger: newAppTestLogger(), Env: "default", - FileOrDir: "helmfile.yaml", + FileOrDir: "helmfile.yaml.gotmpl", }, files) expectNoCallsToHelm(app) @@ -4098,7 +4064,7 @@ func testSetValuesTemplate(t *testing.T, goccyGoYaml bool) { }) files := map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` releases: - name: zipkin chart: stable/zipkin @@ -4126,7 +4092,7 @@ releases: OverrideKubeContext: "default", Logger: newAppTestLogger(), Env: "default", - FileOrDir: "helmfile.yaml", + FileOrDir: "helmfile.yaml.gotmpl", }, files) expectNoCallsToHelm(app) diff --git a/pkg/app/config.go b/pkg/app/config.go index 08bb39cd..9cacaffb 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -25,15 +25,6 @@ type ConfigProvider interface { loggingConfig } -// TODO: Remove this function once Helmfile v0.x -type DeprecatedChartsConfigProvider interface { - Values() []string - - concurrencyConfig - loggingConfig - IncludeTransitiveNeeds() bool -} - type DepsConfigProvider interface { Args() string SkipRepos() bool @@ -82,9 +73,6 @@ type ApplyConfigProvider interface { Context() int DiffOutput() string - // TODO: Remove this function once Helmfile v0.x - RetainValuesFiles() bool - Validate() bool SkipCleanup() bool SkipDiffOnInstall() bool @@ -169,23 +157,6 @@ type DiffConfigProvider interface { valuesControlMode } -// TODO: Remove this function once Helmfile v0.x -type DeleteConfigProvider interface { - Args() string - Cascade() string - - Purge() bool - SkipDeps() bool - SkipRefresh() bool - SkipCharts() bool - DeleteWait() bool - DeleteTimeout() int - - interactive - loggingConfig - concurrencyConfig -} - type DestroyConfigProvider interface { Args() string Cascade() string diff --git a/pkg/app/constants.go b/pkg/app/constants.go index 63fd3af7..38d06ce0 100644 --- a/pkg/app/constants.go +++ b/pkg/app/constants.go @@ -8,10 +8,7 @@ import ( ) const ( - DefaultHelmfile = "helmfile.yaml" - // TODO: Remove this function once Helmfile v0.x - DeprecatedHelmfile = "charts.yaml" - + DefaultHelmfile = "helmfile.yaml" DefaultHelmfileDirectory = "helmfile.d" ExperimentalSelectorExplicit = "explicit-selector-inheritance" // value to remove default selector inheritance to sub-helmfiles and use the explicit one ) diff --git a/pkg/app/desired_state_file_loader.go b/pkg/app/desired_state_file_loader.go index 76fa81f5..90986023 100644 --- a/pkg/app/desired_state_file_loader.go +++ b/pkg/app/desired_state_file_loader.go @@ -15,7 +15,6 @@ import ( "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/policy" "github.com/helmfile/helmfile/pkg/remote" - "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" ) @@ -162,21 +161,14 @@ func (a *desiredStateLoader) underlying() *state.StateCreator { func (a *desiredStateLoader) rawLoad(yaml []byte, baseDir, file string, evaluateBases bool, env, overrodeEnv *environment.Environment) (*state.HelmState, error) { var st *state.HelmState var err error - if runtime.V1Mode { - st, err = a.underlying().ParseAndLoad(yaml, baseDir, file, a.env, false, evaluateBases, env, overrodeEnv) - if err != nil { - return nil, err - } - } else { - merged, err := env.Merge(overrodeEnv) - if err != nil { - return nil, err - } + merged, err := env.Merge(overrodeEnv) + if err != nil { + return nil, err + } - st, err = a.underlying().ParseAndLoad(yaml, baseDir, file, a.env, false, evaluateBases, merged, nil) - if err != nil { - return nil, err - } + st, err = a.underlying().ParseAndLoad(yaml, baseDir, file, a.env, false, evaluateBases, merged, nil) + if err != nil { + return nil, err } helmfiles, err := st.ExpandedHelmfiles() if err != nil { @@ -207,7 +199,7 @@ func (ld *desiredStateLoader) load(env, overrodeEnv *environment.Environment, ba var rawContent []byte - if filepath.Ext(filename) == ".gotmpl" || !runtime.V1Mode { + if filepath.Ext(filename) == ".gotmpl" { var yamlBuf *bytes.Buffer var err error diff --git a/pkg/app/diff_nokubectx_test.go b/pkg/app/diff_nokubectx_test.go index cd0239ad..9b2d36c8 100644 --- a/pkg/app/diff_nokubectx_test.go +++ b/pkg/app/diff_nokubectx_test.go @@ -636,7 +636,7 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau loc: location(), flags: flags{skipNeeds: true}, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -677,7 +677,7 @@ releases: loc: location(), flags: flags{skipNeeds: false}, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -711,81 +711,14 @@ releases: upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - error: `in ./helmfile.yaml: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -err: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies -changing working directory back to "/path/to" -`, + error: `in ./helmfile.yaml.gotmpl: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, }, { // see https://github.com/roboll/helmfile/issues/919#issuecomment-549831747 name: "upgrades with bad selector", loc: location(), files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -817,72 +750,6 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml - -changing working directory back to "/path/to" -`, }, // // error cases @@ -912,46 +779,6 @@ releases: deleted: []exectest.Release{}, concurrency: 1, error: `in ./helmfile.yaml: release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"?`, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -merged environment: &{default map[] map[]} -WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs -2 release(s) found in helmfile.yaml - -err: release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? -changing working directory back to "/path/to" -`, }, } diff --git a/pkg/app/diff_test.go b/pkg/app/diff_test.go index f1987143..372badff 100644 --- a/pkg/app/diff_test.go +++ b/pkg/app/diff_test.go @@ -931,7 +931,7 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau loc: location(), flags: flags{skipNeeds: true}, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -972,7 +972,7 @@ releases: loc: location(), flags: flags{skipNeeds: false}, files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -1006,81 +1006,14 @@ releases: upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - error: `in ./helmfile.yaml: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml - -err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies -changing working directory back to "/path/to" -`, + error: `in ./helmfile.yaml.gotmpl: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, }, { // see https://github.com/roboll/helmfile/issues/919#issuecomment-549831747 name: "upgrades with bad selector", loc: location(), files: map[string]string{ - "/path/to/helmfile.yaml": ` + "/path/to/helmfile.yaml.gotmpl": ` {{ $mark := "a" }} releases: @@ -1112,72 +1045,6 @@ releases: error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml - -changing working directory back to "/path/to" -`, }, // // error cases @@ -1208,43 +1075,6 @@ releases: deleted: []exectest.Release{}, concurrency: 1, error: `in ./helmfile.yaml: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -merged environment: &{default map[] map[]} -1 release(s) matching name=foo found in helmfile.yaml - -err: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies -changing working directory back to "/path/to" -`, }, { name: "non-existent release in needs", @@ -1271,46 +1101,6 @@ releases: deleted: []exectest.Release{}, concurrency: 1, error: `in ./helmfile.yaml: release(s) "default//foo" depend(s) on an undefined release "default//bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"?`, - log: `processing file "helmfile.yaml" in directory "." -changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -merged environment: &{default map[] map[]} -WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs -2 release(s) found in helmfile.yaml - -err: release(s) "default//foo" depend(s) on an undefined release "default//bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? -changing working directory back to "/path/to" -`, }, } diff --git a/pkg/app/run.go b/pkg/app/run.go index 57484de0..2beab11a 100644 --- a/pkg/app/run.go +++ b/pkg/app/run.go @@ -137,17 +137,6 @@ func (r *Run) Repos(c ReposConfigProvider) error { return r.ctx.SyncReposOnce(r.state, r.helm) } -// TODO: Remove this function once Helmfile v0.x -func (r *Run) DeprecatedSyncCharts(c DeprecatedChartsConfigProvider) []error { - st := r.state - helm := r.helm - - affectedReleases := state.AffectedReleases{} - errs := st.SyncReleases(&affectedReleases, helm, c.Values(), c.Concurrency()) - affectedReleases.DisplayAffectedReleases(c.Logger()) - return errs -} - func (r *Run) diff(triggerCleanupEvent bool, detailedExitCode bool, c DiffConfigProvider, diffOpts *state.DiffOpts) (*string, map[string]state.ReleaseSpec, map[string]state.ReleaseSpec, []error) { st := r.state helm := r.helm diff --git a/pkg/app/testdata/app_diff_test/bad_selector b/pkg/app/testdata/app_diff_test/bad_selector index 9a3ab785..7d03a1f4 100644 --- a/pkg/app/testdata/app_diff_test/bad_selector +++ b/pkg/app/testdata/app_diff_test/bad_selector @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 0 release(s) matching app=test_non_existent found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default b/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default index a0113f65..ab53c3ad 100644 --- a/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default +++ b/pkg/app/testdata/app_diff_test/fail_on_unselected_need_by_default @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs b/pkg/app/testdata/app_diff_test/include-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_diff_test/include-needs +++ b/pkg/app/testdata/app_diff_test/include-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need index 9154b011..368cb842 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need index 84a81703..0396ca0d 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_diff_test/include-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need index 9154b011..368cb842 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need index 84a81703..0396ca0d 100644 --- a/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_diff_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-transitive-needs b/pkg/app/testdata/app_diff_test/include-transitive-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_diff_test/include-transitive-needs +++ b/pkg/app/testdata/app_diff_test/include-transitive-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need index 84a81703..0396ca0d 100644 --- a/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_diff_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/no-hooks b/pkg/app/testdata/app_diff_test/no-hooks index 67ee2936..ceb99f63 100644 --- a/pkg/app/testdata/app_diff_test/no-hooks +++ b/pkg/app/testdata/app_diff_test/no-hooks @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release b/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release index a695f222..66b419fa 100644 --- a/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release +++ b/pkg/app/testdata/app_diff_test/show_diff_on_changed_selected_release @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: a - 3: chart: incubator/raw - 4: namespace: default - 5: - name: b - 6: chart: incubator/raw - 7: namespace: default - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: a - 3: chart: incubator/raw - 4: namespace: default - 5: - name: b - 6: chart: incubator/raw - 7: namespace: default - 8: - merged environment: &{default map[] map[]} 1 release(s) matching name=a found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release b/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release index a0a45f09..58d51e49 100644 --- a/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release +++ b/pkg/app/testdata/app_diff_test/shows_no_diff_on_already_uninstalled_selected_release @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: a - 3: chart: incubator/raw - 4: installed: false - 5: namespace: default - 6: - name: b - 7: chart: incubator/raw - 8: namespace: default - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: a - 3: chart: incubator/raw - 4: installed: false - 5: namespace: default - 6: - name: b - 7: chart: incubator/raw - 8: namespace: default - 9: - merged environment: &{default map[] map[]} 1 release(s) matching name=a found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test/skip-needs b/pkg/app/testdata/app_diff_test/skip-needs index 67ee2936..ceb99f63 100644 --- a/pkg/app/testdata/app_diff_test/skip-needs +++ b/pkg/app/testdata/app_diff_test/skip-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/bar b/pkg/app/testdata/app_diff_test_1/bar index cf0a0bb0..26cad101 100644 --- a/pkg/app/testdata/app_diff_test_1/bar +++ b/pkg/app/testdata/app_diff_test_1/bar @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo index 993d71e8..96453206 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_bar_needs_foo @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar index febbbebd..9afd557d 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs index 1ac8c2d3..820af517 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_include-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs index 2cae2be4..b79babf5 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_bar_when_foo_needs_bar_with_skip-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo index c623786d..126b04b4 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_bar_needs_foo @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: mychart1 - 9: installed: false -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: mychart1 - 9: installed: false -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar index 08a2d361..126b04b4 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_and_bar_when_foo_needs_bar @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo index b10dd133..fb673733 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs index c34f7b46..3456f070 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_include-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs index 60002d0c..13f06734 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_bar_needs_foo_with_skip-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar index f2e49270..cb7b8fc7 100644 --- a/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/delete_foo_when_foo_needs_bar @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo b/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo index 2c4a2fef..bb76a70e 100644 --- a/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo +++ b/pkg/app/testdata/app_diff_test_1/helm3_upgrade_when_ns2_bar_needs_ns1_foo @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/install b/pkg/app/testdata/app_diff_test_1/install index bc8c2830..ba4ef00f 100644 --- a/pkg/app/testdata/app_diff_test_1/install +++ b/pkg/app/testdata/app_diff_test_1/install @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: mychart2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: mychart2 -10: - merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs b/pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs new file mode 100644 index 00000000..60dead90 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_1/non-existent_release_in_needs @@ -0,0 +1,8 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs +2 release(s) found in helmfile.yaml + +err: release(s) "default//foo" depend(s) on an undefined release "default//bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/noop b/pkg/app/testdata/app_diff_test_1/noop index 5c2c5753..beea0d82 100644 --- a/pkg/app/testdata/app_diff_test_1/noop +++ b/pkg/app/testdata/app_diff_test_1/noop @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/smoke b/pkg/app/testdata/app_diff_test_1/smoke index 37e7141b..bf85c9e5 100644 --- a/pkg/app/testdata/app_diff_test_1/smoke +++ b/pkg/app/testdata/app_diff_test_1/smoke @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/unselected_release_in_needs b/pkg/app/testdata/app_diff_test_1/unselected_release_in_needs new file mode 100644 index 00000000..d82f9d50 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_1/unselected_release_in_needs @@ -0,0 +1,7 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +1 release(s) matching name=foo found in helmfile.yaml + +err: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo index 20aae345..e1ade01c 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override index f78c15ac..37ac4517 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_bar_needs_foo,_with_ns_override @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar index b87bccce..4add017f 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override index e0d964ad..f54ab275 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar,_with_ns_override @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override index bbdfc3d1..358aaaf6 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_foo_needs_bar_with_context_override @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: helmDefaults: - 2: kubeContext: hello/world - 3: releases: - 4: - name: bar - 5: chart: mychart2 - 6: - name: foo - 7: chart: mychart1 - 8: needs: - 9: - bar -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: helmDefaults: - 2: kubeContext: hello/world - 3: releases: - 4: - name: bar - 5: chart: mychart2 - 6: - name: foo - 7: chart: mychart1 - 8: needs: - 9: - bar -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context b/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context index e6383a6a..1ca95228 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_releaseb_needs_releasea_with_aws_context @@ -1,42 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: releaseA - 3: chart: mychart1 - 4: namespace: namespaceA - 5: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster - 6: - name: releaseB - 7: chart: mychart2 - 8: namespace: namespaceA - 9: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster -10: needs: -11: - arn:aws:eks:us-east-1:1234567890:cluster/myekscluster/namespaceA/releaseA -12: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: releaseA - 3: chart: mychart1 - 4: namespace: namespaceA - 5: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster - 6: - name: releaseB - 7: chart: mychart2 - 8: namespace: namespaceA - 9: kubeContext: arn:aws:eks:us-east-1:1234567890:cluster/myekscluster -10: needs: -11: - arn:aws:eks:us-east-1:1234567890:cluster/myekscluster/namespaceA/releaseA -12: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar b/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar index cf0a0bb0..26cad101 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar +++ b/pkg/app/testdata/app_diff_test_1/upgrade_when_tns1_ns1_foo_needs_tns2_ns2_bar @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector b/pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector new file mode 100644 index 00000000..8e3e99cf --- /dev/null +++ b/pkg/app/testdata/app_diff_test_1/upgrades_with_bad_selector @@ -0,0 +1,33 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false b/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false new file mode 100644 index 00000000..f29aa140 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=false @@ -0,0 +1,34 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml.gotmpl + +err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true b/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true index 427f901f..6e264062 100644 --- a/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true +++ b/pkg/app/testdata/app_diff_test_1/upgrades_with_good_selector_with_--skip-needs=true @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl processing 2 groups of releases in this order: GROUP RELEASES diff --git a/pkg/app/testdata/app_diff_test_2/bar b/pkg/app/testdata/app_diff_test_2/bar index 91ee7d7e..f5cea33b 100644 --- a/pkg/app/testdata/app_diff_test_2/bar +++ b/pkg/app/testdata/app_diff_test_2/bar @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: mychart2 - 9: namespace: ns2 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo index 4e540849..7867ad46 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_bar_needs_foo @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar index f3a1cd0f..e0bc8dea 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs index 451d5aba..f08db1b7 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_include-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs index a54fce36..03791661 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs +++ b/pkg/app/testdata/app_diff_test_2/delete_bar_when_foo_needs_bar_with_skip-needs @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo index c623786d..126b04b4 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_bar_needs_foo @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: mychart1 - 9: installed: false -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: mychart1 - 9: installed: false -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar index 08a2d361..126b04b4 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_and_bar_when_foo_needs_bar @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: installed: false - 5: - name: foo - 6: chart: mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo index f4cc93bd..52e9c63e 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_when_bar_needs_foo @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: installed: false - 5: - name: bar - 6: chart: mychart2 - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar index 8c2fb60c..b897150f 100644 --- a/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/delete_foo_when_foo_needs_bar @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/foo b/pkg/app/testdata/app_diff_test_2/foo index 7cdf3a2e..2638d8ff 100644 --- a/pkg/app/testdata/app_diff_test_2/foo +++ b/pkg/app/testdata/app_diff_test_2/foo @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo b/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo index 7cdf3a2e..2638d8ff 100644 --- a/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo +++ b/pkg/app/testdata/app_diff_test_2/helm3_upgrade_when_ns2_bar_needs_ns1_foo @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: mychart1 - 9: namespace: ns1 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/install b/pkg/app/testdata/app_diff_test_2/install index 95591b3a..55f951fc 100644 --- a/pkg/app/testdata/app_diff_test_2/install +++ b/pkg/app/testdata/app_diff_test_2/install @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: mychart2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: mychart3 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: mychart2 -10: - merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs b/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs new file mode 100644 index 00000000..34aaed69 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_2/non-existent_release_in_needs @@ -0,0 +1,8 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs +2 release(s) found in helmfile.yaml + +err: release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"? +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_2/noop b/pkg/app/testdata/app_diff_test_2/noop index 4bb79c7f..3f843e50 100644 --- a/pkg/app/testdata/app_diff_test_2/noop +++ b/pkg/app/testdata/app_diff_test_2/noop @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/smoke b/pkg/app/testdata/app_diff_test_2/smoke index 736c9795..d77b29ed 100644 --- a/pkg/app/testdata/app_diff_test_2/smoke +++ b/pkg/app/testdata/app_diff_test_2/smoke @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo index 6b69bd73..2239c0c5 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override index 87892d12..0841c62e 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_bar_needs_foo,_with_ns_override @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: mychart1 - 4: - name: bar - 5: chart: mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar index 7ea553a7..0a5c6018 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override index 49bb72fe..686dabf1 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override +++ b/pkg/app/testdata/app_diff_test_2/upgrade_when_foo_needs_bar,_with_ns_override @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: mychart2 - 4: - name: foo - 5: chart: mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector b/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector new file mode 100644 index 00000000..8e3e99cf --- /dev/null +++ b/pkg/app/testdata/app_diff_test_2/upgrades_with_bad_selector @@ -0,0 +1,33 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false new file mode 100644 index 00000000..3be41c57 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=false @@ -0,0 +1,34 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +2 release(s) matching app=test found in helmfile.yaml.gotmpl + +err: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true index 926e26fd..e61b33e8 100644 --- a/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true +++ b/pkg/app/testdata/app_diff_test_2/upgrades_with_good_selector_with_--skip-needs=true @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl processing 2 groups of releases in this order: GROUP RELEASES diff --git a/pkg/app/testdata/app_lint_test/bad_selector b/pkg/app/testdata/app_lint_test/bad_selector index 9a3ab785..7d03a1f4 100644 --- a/pkg/app/testdata/app_lint_test/bad_selector +++ b/pkg/app/testdata/app_lint_test/bad_selector @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 0 release(s) matching app=test_non_existent found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default b/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default index a0113f65..ab53c3ad 100644 --- a/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default +++ b/pkg/app/testdata/app_lint_test/fail_on_unselected_need_by_default @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs b/pkg/app/testdata/app_lint_test/include-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_lint_test/include-needs +++ b/pkg/app/testdata/app_lint_test/include-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need index ad93dd62..54c6135e 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need index c51d74d8..f2ad0c8f 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_lint_test/include-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need index ad93dd62..54c6135e 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need index c51d74d8..f2ad0c8f 100644 --- a/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_lint_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-transitive-needs b/pkg/app/testdata/app_lint_test/include-transitive-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_lint_test/include-transitive-needs +++ b/pkg/app/testdata/app_lint_test/include-transitive-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need index c51d74d8..f2ad0c8f 100644 --- a/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_lint_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_lint_test/skip-needs b/pkg/app/testdata/app_lint_test/skip-needs index 67ee2936..ceb99f63 100644 --- a/pkg/app/testdata/app_lint_test/skip-needs +++ b/pkg/app/testdata/app_lint_test/skip-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_list_test/default_environment_includes_all_releases b/pkg/app/testdata/app_list_test/default_environment_includes_all_releases index 5dd4bb4a..75efff96 100644 --- a/pkg/app/testdata/app_list_test/default_environment_includes_all_releases +++ b/pkg/app/testdata/app_list_test/default_environment_includes_all_releases @@ -1,221 +1,16 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{default map[] map[]} -first-pass rendering starting for "helmfile_1.yaml.part.1": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.1": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - merged environment: &{default map[] map[]} -first-pass rendering starting for "helmfile_2.yaml.part.1": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.1": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - merged environment: &{default map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile_3.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - merged environment: &{default map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/fail_on_unknown_environment b/pkg/app/testdata/app_list_test/fail_on_unknown_environment index 040b2ebe..9eccd0c3 100644 --- a/pkg/app/testdata/app_list_test/fail_on_unknown_environment +++ b/pkg/app/testdata/app_list_test/fail_on_unknown_environment @@ -1,74 +1,13 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{staging map[] map[]}, overrode= -first-pass uses: &{staging map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{staging map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.0": {staging map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{staging map[] map[]} changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{staging map[] map[]}, overrode= -first-pass uses: &{staging map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - -first-pass produced: &{staging map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.0": {staging map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - merged environment: &{staging map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{staging map[] map[]}, overrode= -first-pass uses: &{staging map[] map[]} -first-pass rendering output of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - -first-pass produced: &{staging map[] map[]} -first-pass rendering result of "helmfile_3.yaml.part.0": {staging map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - merged environment: &{staging map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files index 8350e3c8..b161220b 100644 --- a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files +++ b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_multiple_files @@ -1,221 +1,16 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{shared map[] map[]}, overrode= -first-pass uses: &{shared map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{shared map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.0": {shared map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{shared map[] map[]} -first-pass rendering starting for "helmfile_1.yaml.part.1": inherited=&{shared map[] map[]}, overrode= -first-pass uses: &{shared map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - -first-pass produced: &{shared map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.1": {shared map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - merged environment: &{shared map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{shared map[] map[]}, overrode= -first-pass uses: &{shared map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - -first-pass produced: &{shared map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.0": {shared map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - merged environment: &{shared map[] map[]} -first-pass rendering starting for "helmfile_2.yaml.part.1": inherited=&{shared map[] map[]}, overrode= -first-pass uses: &{shared map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - -first-pass produced: &{shared map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.1": {shared map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - merged environment: &{shared map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{shared map[] map[]}, overrode= -first-pass uses: &{shared map[] map[]} -first-pass rendering output of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - -first-pass produced: &{shared map[] map[]} -first-pass rendering result of "helmfile_3.yaml.part.0": {shared map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - merged environment: &{shared map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only index 927ee649..a214f41f 100644 --- a/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only +++ b/pkg/app/testdata/app_list_test/filters_releases_for_environment_used_in_one_file_only @@ -1,120 +1,14 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{test map[] map[]}, overrode= -first-pass uses: &{test map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{test map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.0": {test map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{test map[] map[]} changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{test map[] map[]}, overrode= -first-pass uses: &{test map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - -first-pass produced: &{test map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.0": {test map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - merged environment: &{test map[] map[]} -first-pass rendering starting for "helmfile_2.yaml.part.1": inherited=&{test map[] map[]}, overrode= -first-pass uses: &{test map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - -first-pass produced: &{test map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.1": {test map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.1": - 0: repositories: - 1: - name: bitnami - 2: url: https://charts.bitnami.com/bitnami - 3: - 4: releases: - 5: - name: cache - 6: namespace: my-app - 7: chart: bitnami/redis - 8: version: 17.0.7 - 9: labels: -10: app: test -11: -12: - name: database -13: namespace: my-app -14: chart: bitnami/postgres -15: version: 11.6.22 -16: - merged environment: &{test map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{test map[] map[]}, overrode= -first-pass uses: &{test map[] map[]} -first-pass rendering output of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - -first-pass produced: &{test map[] map[]} -first-pass rendering result of "helmfile_3.yaml.part.0": {test map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - merged environment: &{test map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment b/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment index 4d332f10..41a5321e 100644 --- a/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment +++ b/pkg/app/testdata/app_list_test/list_releases_matching_selector_and_environment @@ -1,175 +1,15 @@ found 3 helmfile state files in helmfile.d: /path/to/helmfile.d/helmfile_1.yaml, /path/to/helmfile.d/helmfile_2.yaml, /path/to/helmfile.d/helmfile_3.yaml processing file "helmfile_1.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_1.yaml.part.0": inherited=&{development map[] map[]}, overrode= -first-pass uses: &{development map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{development map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.0": {development map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{development map[] map[]} -first-pass rendering starting for "helmfile_1.yaml.part.1": inherited=&{development map[] map[]}, overrode= -first-pass uses: &{development map[] map[]} -first-pass rendering output of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - -first-pass produced: &{development map[] map[]} -first-pass rendering result of "helmfile_1.yaml.part.1": {development map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_1.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - 5: - name: kubernetes-external-secrets - 6: chart: incubator/raw - 7: namespace: kube-system - 8: needs: - 9: - kube-system/logging -10: -11: - name: external-secrets -12: chart: incubator/raw -13: namespace: default -14: labels: -15: app: test -16: needs: -17: - kube-system/kubernetes-external-secrets -18: -19: - name: my-release -20: chart: incubator/raw -21: namespace: default -22: labels: -23: app: test -24: needs: -25: - default/external-secrets -26: -27: -28: # Disabled releases are treated as missing -29: - name: disabled -30: chart: incubator/raw -31: namespace: kube-system -32: installed: false -33: -34: - name: test2 -35: chart: incubator/raw -36: needs: -37: - kube-system/disabled -38: -39: - name: test3 -40: chart: incubator/raw -41: needs: -42: - test2 -43: - merged environment: &{development map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" processing file "helmfile_2.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_2.yaml.part.0": inherited=&{development map[] map[]}, overrode= -first-pass uses: &{development map[] map[]} -first-pass rendering output of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - -first-pass produced: &{development map[] map[]} -first-pass rendering result of "helmfile_2.yaml.part.0": {development map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_2.yaml.part.0": - 0: - 1: environments: - 2: test: {} - 3: shared: {} - merged environment: &{development map[] map[]} changing working directory back to "/path/to" processing file "helmfile_3.yaml" in directory "/path/to/helmfile.d" changing working directory to "/path/to/helmfile.d" -first-pass rendering starting for "helmfile_3.yaml.part.0": inherited=&{development map[] map[]}, overrode= -first-pass uses: &{development map[] map[]} -first-pass rendering output of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - -first-pass produced: &{development map[] map[]} -first-pass rendering result of "helmfile_3.yaml.part.0": {development map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile_3.yaml.part.0": - 0: - 1: releases: - 2: - name: global - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - merged environment: &{development map[] map[]} changing working directory back to "/path/to" diff --git a/pkg/app/testdata/app_template_test/bad_selector b/pkg/app/testdata/app_template_test/bad_selector index 9a3ab785..7d03a1f4 100644 --- a/pkg/app/testdata/app_template_test/bad_selector +++ b/pkg/app/testdata/app_template_test/bad_selector @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 0 release(s) matching app=test_non_existent found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default b/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default index a0113f65..ab53c3ad 100644 --- a/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default +++ b/pkg/app/testdata/app_template_test/fail_on_unselected_need_by_default @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs b/pkg/app/testdata/app_template_test/include-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_template_test/include-needs +++ b/pkg/app/testdata/app_template_test/include-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need index 5b8e896d..ebd01666 100644 --- a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need index 47172c7e..29ad4ef5 100644 --- a/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_template_test/include-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need index 5b8e896d..ebd01666 100644 --- a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need +++ b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_direct_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test2 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need index 47172c7e..29ad4ef5 100644 --- a/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_template_test/include-needs_with_include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-transitive-needs b/pkg/app/testdata/app_template_test/include-transitive-needs index 892b6ea0..58fa9cab 100644 --- a/pkg/app/testdata/app_template_test/include-transitive-needs +++ b/pkg/app/testdata/app_template_test/include-transitive-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need b/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need index 47172c7e..29ad4ef5 100644 --- a/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need +++ b/pkg/app/testdata/app_template_test/include-transitive-needs_should_not_fail_on_disabled_transitive_need @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=test3 found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/no-hooks b/pkg/app/testdata/app_template_test/no-hooks index 67ee2936..ceb99f63 100644 --- a/pkg/app/testdata/app_template_test/no-hooks +++ b/pkg/app/testdata/app_template_test/no-hooks @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/show-only b/pkg/app/testdata/app_template_test/show-only index 16806eb9..e528ba50 100644 --- a/pkg/app/testdata/app_template_test/show-only +++ b/pkg/app/testdata/app_template_test/show-only @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 1 release(s) matching name=logging found in helmfile.yaml diff --git a/pkg/app/testdata/app_template_test/skip-needs b/pkg/app/testdata/app_template_test/skip-needs index 67ee2936..ceb99f63 100644 --- a/pkg/app/testdata/app_template_test/skip-needs +++ b/pkg/app/testdata/app_template_test/skip-needs @@ -1,106 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: logging - 3: chart: incubator/raw - 4: namespace: kube-system - 5: - 6: - name: kubernetes-external-secrets - 7: chart: incubator/raw - 8: namespace: kube-system - 9: needs: -10: - kube-system/logging -11: -12: - name: external-secrets -13: chart: incubator/raw -14: namespace: default -15: labels: -16: app: test -17: needs: -18: - kube-system/kubernetes-external-secrets -19: -20: - name: my-release -21: chart: incubator/raw -22: namespace: default -23: labels: -24: app: test -25: needs: -26: - default/external-secrets -27: -28: -29: # Disabled releases are treated as missing -30: - name: disabled -31: chart: incubator/raw -32: namespace: kube-system -33: installed: false -34: -35: - name: test2 -36: chart: incubator/raw -37: needs: -38: - kube-system/disabled -39: -40: - name: test3 -41: chart: incubator/raw -42: needs: -43: - test2 -44: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs 2 release(s) matching app=test found in helmfile.yaml diff --git a/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order b/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order index c64a76f9..6b1135ae 100644 --- a/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order +++ b/pkg/app/testdata/dag_test/dag_lists_dependencies_in_order @@ -1,120 +1,6 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: environments: - 2: development: {} - 3: shared: {} - merged environment: &{default map[] map[]} -first-pass rendering starting for "helmfile.yaml.part.1": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: needs: - 8: - kube-system/logging - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: # Disabled releases are treated as missing -24: - name: disabled -25: chart: incubator/raw -26: namespace: kube-system -27: installed: false -28: - name: test2 -29: chart: incubator/raw -30: needs: -31: - kube-system/disabled -32: - name: test3 -33: chart: incubator/raw -34: needs: -35: - test2 -36: - name: test4 -37: chart: incubator/raw -38: needs: -39: - test2 -40: - test3 -41: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.1": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.1": - 0: releases: - 1: - name: logging - 2: chart: incubator/raw - 3: namespace: kube-system - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: needs: - 8: - kube-system/logging - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: # Disabled releases are treated as missing -24: - name: disabled -25: chart: incubator/raw -26: namespace: kube-system -27: installed: false -28: - name: test2 -29: chart: incubator/raw -30: needs: -31: - kube-system/disabled -32: - name: test3 -33: chart: incubator/raw -34: needs: -35: - test2 -36: - name: test4 -37: chart: incubator/raw -38: needs: -39: - test2 -40: - test3 -41: - merged environment: &{default map[] map[]} WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log index 3ee09b86..7999740f 100644 --- a/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_bar_when_bar_needs_foo/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: installed: false - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log index 02d852b3..63e24849 100644 --- a/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_bar_when_foo_needs_bar/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: - name: foo - 6: chart: stable/mychart1 - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: - name: foo - 6: chart: stable/mychart1 - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log index 51419ddc..11813de1 100644 --- a/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_foo_and_bar_when_bar_needs_foo/log @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: stable/mychart1 - 9: installed: false -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: needs: - 6: - foo - 7: - name: foo - 8: chart: stable/mychart1 - 9: installed: false -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log index a71e2744..abbb3ddf 100644 --- a/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_foo_and_bar_when_foo_needs_bar/log @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: - name: foo - 6: chart: stable/mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: installed: false - 5: - name: foo - 6: chart: stable/mychart1 - 7: installed: false - 8: needs: - 9: - bar -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log b/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log index 25bb1eef..1dc037b0 100644 --- a/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/delete_foo_when_bar_needs_foo/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: installed: false - 5: - name: bar - 6: chart: stable/mychart2 - 7: needs: - 8: - foo - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: installed: false - 5: - name: bar - 6: chart: stable/mychart2 - 7: needs: - 8: - foo - 9: - merged environment: &{default map[] map[]} WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log b/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log index 38541ce3..3f58a191 100644 --- a/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/delete_foo_when_foo_needs_bar/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/duplicate_releases/log b/pkg/app/testdata/testapply/duplicate_releases/log index 5a14f57e..ccdf69e2 100644 --- a/pkg/app/testdata/testapply/duplicate_releases/log +++ b/pkg/app/testdata/testapply/duplicate_releases/log @@ -1,44 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart2 - 7: needs: - 8: - ns1/bar - 9: - name: foo -10: chart: mychart1 -11: needs: -12: - ns1/bar -13: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart2 - 7: needs: - 8: - ns1/bar - 9: - name: foo -10: chart: mychart1 -11: needs: -12: - ns1/bar -13: - merged environment: &{default map[] map[]} err: found 2 duplicate releases with ID "default//foo" changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log b/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log index 223b67ad..3dd5b87b 100644 --- a/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log +++ b/pkg/app/testdata/testapply/helm-status-check-to-release-existence/log @@ -1,32 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo_notFound - 5: chart: stable/mychart1 - 6: installed: false - 7: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo_notFound - 5: chart: stable/mychart1 - 6: installed: false - 7: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log b/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log index e309756f..c5e811d4 100644 --- a/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log +++ b/pkg/app/testdata/testapply/install-with-upgrade-with-skip-diff-on-install/log @@ -1,44 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log b/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log index e309756f..c5e811d4 100644 --- a/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log +++ b/pkg/app/testdata/testapply/install-with-upgrade-with-validation-control/log @@ -1,44 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: disableValidationOnInstall: true - 5: - name: foo - 6: chart: stable/mychart1 - 7: disableValidationOnInstall: true - 8: needs: - 9: - bar -10: - name: bar -11: chart: stable/mychart2 -12: disableValidation: true -13: - merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/install/log b/pkg/app/testdata/testapply/install/log index 288e71a2..b6766a38 100644 --- a/pkg/app/testdata/testapply/install/log +++ b/pkg/app/testdata/testapply/install/log @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: stable/mychart2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: chart: stable/mychart3 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - name: bar - 9: chart: stable/mychart2 -10: - merged environment: &{default map[] map[]} 3 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/non-existent_release_in_needs/log b/pkg/app/testdata/testapply/non-existent_release_in_needs/log index b13e2b15..714f59fa 100644 --- a/pkg/app/testdata/testapply/non-existent_release_in_needs/log +++ b/pkg/app/testdata/testapply/non-existent_release_in_needs/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - ns1/bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: baz - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - ns1/bar - 9: - merged environment: &{default map[] map[]} WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/noop/log b/pkg/app/testdata/testapply/noop/log index 89669abf..b9eb3b39 100644 --- a/pkg/app/testdata/testapply/noop/log +++ b/pkg/app/testdata/testapply/noop/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: installed: false - 7: needs: - 8: - bar - 9: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/smoke/log b/pkg/app/testdata/testapply/smoke/log index 3745034a..f94cd7c1 100644 --- a/pkg/app/testdata/testapply/smoke/log +++ b/pkg/app/testdata/testapply/smoke/log @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/unselected_release_in_needs/log b/pkg/app/testdata/testapply/unselected_release_in_needs/log index fd4dca83..9f34aacd 100644 --- a/pkg/app/testdata/testapply/unselected_release_in_needs/log +++ b/pkg/app/testdata/testapply/unselected_release_in_needs/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - ns1/bar - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: namespace: ns1 - 4: chart: mychart3 - 5: - name: foo - 6: chart: mychart1 - 7: needs: - 8: - ns1/bar - 9: - merged environment: &{default map[] map[]} 1 release(s) matching name=foo found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log index 75c0b4ce..c216b8ee 100644 --- a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log +++ b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo,_with_ns_override/log @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log index 0854f6f9..06004eba 100644 --- a/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log +++ b/pkg/app/testdata/testapply/upgrade_when_bar_needs_foo/log @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: needs: - 7: - foo - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: - name: bar - 5: chart: stable/mychart2 - 6: needs: - 7: - foo - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log index 18819452..f590244f 100644 --- a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log +++ b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar,_with_ns_override/log @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log index 38252743..53a2991c 100644 --- a/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log +++ b/pkg/app/testdata/testapply/upgrade_when_foo_needs_bar/log @@ -1,34 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: - name: foo - 5: chart: stable/mychart1 - 6: needs: - 7: - bar - 8: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log b/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log index 6f129537..13ca7ee3 100644 --- a/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log +++ b/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns2/bar/log @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: stable/mychart2 - 9: namespace: ns2 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: stable/mychart1 - 4: namespace: ns1 - 5: needs: - 6: - ns2/bar - 7: - name: bar - 8: chart: stable/mychart2 - 9: namespace: ns2 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log b/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log index 76015ef1..5e96b8fd 100644 --- a/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log +++ b/pkg/app/testdata/testapply/upgrade_when_ns2/bar_needs_ns1/foo/log @@ -1,38 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: stable/mychart1 - 9: namespace: ns1 -10: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: bar - 3: chart: stable/mychart2 - 4: namespace: ns2 - 5: needs: - 6: - ns1/foo - 7: - name: foo - 8: chart: stable/mychart1 - 9: namespace: ns1 -10: - merged environment: &{default map[] map[]} 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testapply/upgrades_with_bad_selector/log b/pkg/app/testdata/testapply/upgrades_with_bad_selector/log index 37de515c..8e3e99cf 100644 --- a/pkg/app/testdata/testapply/upgrades_with_bad_selector/log +++ b/pkg/app/testdata/testapply/upgrades_with_bad_selector/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,6 +28,6 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -0 release(s) matching app=test_non_existent found in helmfile.yaml +0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log index b286816b..f29aa140 100644 --- a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log +++ b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=false_--include-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log index d1a55a90..65c32bd4 100644 --- a/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log +++ b/pkg/app/testdata/testapply/upgrades_with_good_selector_with_--skip-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/bad_--selector/log b/pkg/app/testdata/testapply_2/bad_--selector/log new file mode 100644 index 00000000..8e3e99cf --- /dev/null +++ b/pkg/app/testdata/testapply_2/bad_--selector/log @@ -0,0 +1,33 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log b/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log index dfde4bdd..6e400919 100644 --- a/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log +++ b/pkg/app/testdata/testapply_2/deduplicate_by_--selector/log @@ -1,52 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: component: raw - 8: index: '1' - 9: -10: - name: foo -11: chart: incubator/raw -12: namespace: default -13: labels: -14: app: test -15: component: raw -16: index: '2' -17: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: component: raw - 8: index: '1' - 9: -10: - name: foo -11: chart: incubator/raw -12: namespace: default -13: labels: -14: app: test -15: component: raw -16: index: '2' -17: - merged environment: &{default map[] map[]} 1 release(s) matching index=1 found in helmfile.yaml diff --git a/pkg/app/testdata/testapply_2/include-transitive-needs=true/log b/pkg/app/testdata/testapply_2/include-transitive-needs=true/log index 80fe6952..c4fd365e 100644 --- a/pkg/app/testdata/testapply_2/include-transitive-needs=true/log +++ b/pkg/app/testdata/testapply_2/include-transitive-needs=true/log @@ -1,35 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: serviceA - 5: chart: my/chart - 6: needs: - 7: - serviceB - 8: - 9: - name: serviceB -10: chart: my/chart -11: needs: -12: - serviceC -13: -14: - name: serviceC -15: chart: my/chart -16: -17: - name: serviceD -18: chart: my/chart -19: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -52,7 +24,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 19: merged environment: &{default map[] map[]} -3 release(s) matching name=serviceA found in helmfile.yaml +3 release(s) matching name=serviceA found in helmfile.yaml.gotmpl Affected releases are: serviceA (my/chart) UPDATED diff --git a/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log b/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log index ed58f794..2c735ba9 100644 --- a/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log +++ b/pkg/app/testdata/testapply_2/select_non_existent_release_with_--allow-no-matching-release/log @@ -1,44 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: - 8: - name: bar - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: - 8: - name: bar - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: - merged environment: &{default map[] map[]} 0 release(s) matching app=foo found in helmfile.yaml diff --git a/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log b/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log index 5aad40b2..07be1f75 100644 --- a/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log +++ b/pkg/app/testdata/testapply_2/select_single_release_from_helmfile_with_two_duplicates/log @@ -1,56 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: - 8: - name: bar - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: build -13: -14: - name: bar -15: chart: incubator/raw -16: namespace: default -17: labels: -18: app: test -19: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: foo - 3: chart: incubator/raw - 4: namespace: default - 5: labels: - 6: app: test - 7: - 8: - name: bar - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: build -13: -14: - name: bar -15: chart: incubator/raw -16: namespace: default -17: labels: -18: app: test -19: - merged environment: &{default map[] map[]} 1 release(s) matching name=foo found in helmfile.yaml diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log index 0350fb56..fad7bdc6 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log index 2f1fa1f1..370e8e8e 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log index c6a51f3c..9998300d 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log @@ -1,40 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -63,7 +30,7 @@ second-pass rendering result of "helmfile.yaml.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log index 13ca54dd..6bf96b12 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log @@ -1,40 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -63,7 +30,7 @@ second-pass rendering result of "helmfile.yaml.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_2/skip-needs=true/log b/pkg/app/testdata/testapply_2/skip-needs=true/log index d1a55a90..65c32bd4 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=true/log +++ b/pkg/app/testdata/testapply_2/skip-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log b/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log index 26968c1e..1f4c6d72 100644 --- a/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log +++ b/pkg/app/testdata/testapply_2/skip-needs=true_with_no_diff_on_a_release/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/bad_--selector/log b/pkg/app/testdata/testapply_3/bad_--selector/log new file mode 100644 index 00000000..8e3e99cf --- /dev/null +++ b/pkg/app/testdata/testapply_3/bad_--selector/log @@ -0,0 +1,33 @@ +processing file "helmfile.yaml.gotmpl" in directory "." +changing working directory to "/path/to" +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": + 0: + 1: + 2: + 3: releases: + 4: - name: kubernetes-external-secrets + 5: chart: incubator/raw + 6: namespace: kube-system + 7: + 8: - name: external-secrets + 9: chart: incubator/raw +10: namespace: default +11: labels: +12: app: test +13: needs: +14: - kube-system/kubernetes-external-secrets +15: +16: - name: my-release +17: chart: incubator/raw +18: namespace: default +19: labels: +20: app: test +21: needs: +22: - default/external-secrets +23: + +merged environment: &{default map[] map[]} +0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log index 4193cc54..4245010a 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log index 1b585c5b..653c58c2 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_but_no_diff_on_needed_release/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log index 84e5b96e..0996c8a0 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_installed_but_disabled_release/log @@ -1,40 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -63,7 +30,7 @@ second-pass rendering result of "helmfile.yaml.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log index 3018fdfa..222191de 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=false_include-needs=true_with_not_installed_and_disabled_release/log @@ -1,40 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: installed: false - 8: - 9: - name: external-secrets -10: chart: incubator/raw -11: namespace: default -12: labels: -13: app: test -14: needs: -15: - kube-system/kubernetes-external-secrets -16: -17: - name: my-release -18: chart: incubator/raw -19: namespace: default -20: labels: -21: app: test -22: needs: -23: - default/external-secrets -24: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -63,7 +30,7 @@ second-pass rendering result of "helmfile.yaml.part.0": merged environment: &{default map[] map[]} WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl WARNING: release external-secrets needs kubernetes-external-secrets, but kubernetes-external-secrets is not installed due to installed: false. Either mark kubernetes-external-secrets as installed or remove kubernetes-external-secrets from external-secrets's needs Affected releases are: diff --git a/pkg/app/testdata/testapply_3/skip-needs=true/log b/pkg/app/testdata/testapply_3/skip-needs=true/log index e7200b58..3a82d6bc 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=true/log +++ b/pkg/app/testdata/testapply_3/skip-needs=true/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log b/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log index 0bb7dd4b..3c4dc215 100644 --- a/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log +++ b/pkg/app/testdata/testapply_3/skip-needs=true_with_no_diff_on_a_release/log @@ -1,39 +1,7 @@ -processing file "helmfile.yaml" in directory "." +processing file "helmfile.yaml.gotmpl" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: - 2: - 3: releases: - 4: - name: kubernetes-external-secrets - 5: chart: incubator/raw - 6: namespace: kube-system - 7: - 8: - name: external-secrets - 9: chart: incubator/raw -10: namespace: default -11: labels: -12: app: test -13: needs: -14: - kube-system/kubernetes-external-secrets -15: -16: - name: my-release -17: chart: incubator/raw -18: namespace: default -19: labels: -20: app: test -21: needs: -22: - default/external-secrets -23: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": +rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[]}, overrode= +rendering result of "helmfile.yaml.gotmpl.part.0": 0: 1: 2: @@ -60,7 +28,7 @@ second-pass rendering result of "helmfile.yaml.part.0": 23: merged environment: &{default map[] map[]} -2 release(s) matching app=test found in helmfile.yaml +2 release(s) matching app=test found in helmfile.yaml.gotmpl Affected releases are: external-secrets (incubator/raw) UPDATED diff --git a/pkg/app/testdata/testdeps/smoke/log b/pkg/app/testdata/testdeps/smoke/log new file mode 100644 index 00000000..52b88928 --- /dev/null +++ b/pkg/app/testdata/testdeps/smoke/log @@ -0,0 +1,7 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +There are no repositories defined in your helmfile.yaml. +This means helmfile cannot update your dependencies or create a lock file. +See https://github.com/roboll/helmfile/issues/878 for more information. +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log b/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log index e7d3352d..a7eea328 100644 --- a/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log +++ b/pkg/app/testdata/testdestroy/destroy_installed_but_disabled_release/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log b/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log index 8e164254..c8731536 100644 --- a/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log +++ b/pkg/app/testdata/testdestroy/destroy_only_one_release_with_selector/log @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} 1 release(s) matching name=logging found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy/helm3/log b/pkg/app/testdata/testdestroy/helm3/log index e7d3352d..a7eea328 100644 --- a/pkg/app/testdata/testdestroy/helm3/log +++ b/pkg/app/testdata/testdestroy/helm3/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy/smoke/log b/pkg/app/testdata/testdestroy/smoke/log index 0c5d84fe..3a28bfe7 100644 --- a/pkg/app/testdata/testdestroy/smoke/log +++ b/pkg/app/testdata/testdestroy/smoke/log @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log b/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log index 04b1ccfd..eebb5cdb 100644 --- a/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log +++ b/pkg/app/testdata/testdestroy_2/destroy_installed_but_disabled_release/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log b/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log index df88f3de..253339d8 100644 --- a/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log +++ b/pkg/app/testdata/testdestroy_2/destroy_only_one_release_with_selector/log @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} 1 release(s) matching name=logging found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/helm3/log b/pkg/app/testdata/testdestroy_2/helm3/log index 04b1ccfd..eebb5cdb 100644 --- a/pkg/app/testdata/testdestroy_2/helm3/log +++ b/pkg/app/testdata/testdestroy_2/helm3/log @@ -1,36 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: backend-v1 - 3: chart: charts/backend - 4: installed: false - 5: - name: frontend-v1 - 6: chart: charts/frontend - 7: needs: - 8: - backend-v1 - 9: - merged environment: &{default map[] map[]} WARNING: release frontend-v1 needs backend-v1, but backend-v1 is not installed due to installed: false. Either mark backend-v1 as installed or remove backend-v1 from frontend-v1's needs 2 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testdestroy_2/smoke/log b/pkg/app/testdata/testdestroy_2/smoke/log index 007a08ef..e8987816 100644 --- a/pkg/app/testdata/testdestroy_2/smoke/log +++ b/pkg/app/testdata/testdestroy_2/smoke/log @@ -1,126 +1,5 @@ processing file "helmfile.yaml" in directory "." changing working directory to "/path/to" -first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode= -first-pass uses: &{default map[] map[]} -first-pass rendering output of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - -first-pass produced: &{default map[] map[]} -first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]} -vals: -map[] -defaultVals:[] -second-pass rendering result of "helmfile.yaml.part.0": - 0: - 1: releases: - 2: - name: database - 3: chart: charts/mysql - 4: needs: - 5: - logging - 6: - name: frontend-v1 - 7: chart: charts/frontend - 8: installed: false - 9: needs: -10: - servicemesh -11: - logging -12: - backend-v1 -13: - name: frontend-v2 -14: chart: charts/frontend -15: needs: -16: - servicemesh -17: - logging -18: - backend-v2 -19: - name: frontend-v3 -20: chart: charts/frontend -21: needs: -22: - servicemesh -23: - logging -24: - backend-v2 -25: - name: backend-v1 -26: chart: charts/backend -27: installed: false -28: needs: -29: - servicemesh -30: - logging -31: - database -32: - anotherbackend -33: - name: backend-v2 -34: chart: charts/backend -35: needs: -36: - servicemesh -37: - logging -38: - database -39: - anotherbackend -40: - name: anotherbackend -41: chart: charts/anotherbackend -42: needs: -43: - servicemesh -44: - logging -45: - database -46: - name: servicemesh -47: chart: charts/istio -48: needs: -49: - logging -50: - name: logging -51: chart: charts/fluent-bit -52: - name: front-proxy -53: chart: stable/envoy -54: - merged environment: &{default map[] map[]} 10 release(s) found in helmfile.yaml diff --git a/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log b/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log new file mode 100644 index 00000000..db8157f1 --- /dev/null +++ b/pkg/app/testdata/testreadfromyaml_rendertemplatelog/log @@ -0,0 +1,10 @@ +rendering starting for "": inherited=&{default map[] map[]}, overrode= +rendering result of "": + 0: + 1: releases: + 2: - name: foo + 3: chart: mychart1 + 4: - name: bar + 5: + 6: + diff --git a/pkg/app/two_pass_renderer.go b/pkg/app/two_pass_renderer.go index 221af0c2..fddfa307 100644 --- a/pkg/app/two_pass_renderer.go +++ b/pkg/app/two_pass_renderer.go @@ -5,10 +5,7 @@ import ( "fmt" "strings" - "github.com/google/go-cmp/cmp" - "github.com/helmfile/helmfile/pkg/environment" - "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" "github.com/helmfile/helmfile/pkg/tmpl" ) @@ -22,52 +19,6 @@ func prependLineNumbers(text string) string { return buf.String() } -func (r *desiredStateLoader) renderPrestate(firstPassEnv, overrode *environment.Environment, baseDir, filename string, content []byte) (*environment.Environment, *state.HelmState) { - initEnv, err := firstPassEnv.Merge(overrode) - if err != nil { - return firstPassEnv, nil - } - tmplData := state.NewEnvironmentTemplateData(*initEnv, r.namespace, map[string]any{}) - firstPassRenderer := tmpl.NewFirstPassRenderer(baseDir, tmplData) - - // parse as much as we can, tolerate errors, this is a preparse - yamlBuf, err := firstPassRenderer.RenderTemplateContentToBuffer(content) - if err != nil { - r.logger.Debugf("first-pass rendering input of \"%s\":\n%s", filename, prependLineNumbers(string(content))) - r.logger.Debugf("template syntax error: %v", err) - if yamlBuf == nil { // we have a template syntax error, let the second parse report - return firstPassEnv, nil - } - } - yamlData := yamlBuf.String() - r.logger.Debugf("first-pass rendering output of \"%s\":\n%s", filename, prependLineNumbers(yamlData)) - - // Work-around for https://github.com/golang/go/issues/24963 - sanitized := strings.ReplaceAll(yamlData, "", "") - - if len(yamlData) != len(sanitized) { - msg := "replaced s to workaround https://github.com/golang/go/issues/24963 to address https://github.com/roboll/helmfile/issues/553:\n%s" - r.logger.Debugf(msg, cmp.Diff(yamlData, sanitized)) - } - - c := r.underlying() - c.Strict = false - // create preliminary state, as we may have an environment. Tolerate errors. - prestate, err := c.ParseAndLoad([]byte(sanitized), baseDir, filename, r.env, true, false, firstPassEnv, overrode) - if err != nil { - if _, ok := err.(*state.StateLoadError); ok { - r.logger.Debugf("could not deduce `environment:` block, configuring only .Environment.Name. error: %v", err) - } - r.logger.Debugf("error in first-pass rendering: result of \"%s\":\n%s", filename, prependLineNumbers(yamlBuf.String())) - } - - if prestate != nil { - firstPassEnv = &prestate.Env - } - - return firstPassEnv, prestate -} - type RenderOpts struct { } @@ -82,11 +33,7 @@ func (r *desiredStateLoader) renderTemplatesToYamlWithEnv(baseDir, filename stri } func (r *desiredStateLoader) twoPassRenderTemplateToYaml(inherited, overrode *environment.Environment, baseDir, filename string, content []byte) (*bytes.Buffer, error) { - // try a first pass render. This will always succeed, but can produce a limited env var phase string - if !runtime.V1Mode { - phase = "first-pass " - } r.logger.Debugf("%srendering starting for \"%s\": inherited=%v, overrode=%v", phase, filename, inherited, overrode) initEnv, err := inherited.Merge(nil) @@ -100,53 +47,14 @@ func (r *desiredStateLoader) twoPassRenderTemplateToYaml(inherited, overrode *en vals map[string]any ) - if runtime.V1Mode { - var err error + finalEnv, err = initEnv.Merge(overrode) + if err != nil { + return nil, err + } - finalEnv, err = initEnv.Merge(overrode) - if err != nil { - return nil, err - } - - vals, err = finalEnv.GetMergedValues() - if err != nil { - return nil, err - } - } else { - r.logger.Debugf("first-pass uses: %v", initEnv) - firstPassEnv, err := initEnv.Merge(nil) - if err != nil { - return nil, err - } - renderedEnv, prestate := r.renderPrestate(firstPassEnv, overrode, baseDir, filename, content) - - r.logger.Debugf("first-pass produced: %v", renderedEnv) - - mergedEnv, err := inherited.Merge(renderedEnv) - if err != nil { - return nil, err - } - - mergedEnv, err = mergedEnv.Merge(overrode) - if err != nil { - return nil, err - } - - r.logger.Debugf("first-pass rendering result of \"%s\": %v", filename, *mergedEnv) - - renderingPhase = "second-pass " - - finalEnv = mergedEnv - - vals, err = finalEnv.GetMergedValues() - if err != nil { - return nil, err - } - - if prestate != nil { - prestate.Env = *mergedEnv - r.logger.Debugf("vals:\n%v\ndefaultVals:%v", vals, prestate.DefaultValues) - } + vals, err = finalEnv.GetMergedValues() + if err != nil { + return nil, err } tmplData := state.NewEnvironmentTemplateData(*finalEnv, r.namespace, vals) diff --git a/pkg/app/two_pass_renderer_test.go b/pkg/app/two_pass_renderer_test.go index fde1630f..5190f9f6 100644 --- a/pkg/app/two_pass_renderer_test.go +++ b/pkg/app/two_pass_renderer_test.go @@ -7,7 +7,6 @@ import ( "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/remote" - "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/state" "github.com/helmfile/helmfile/pkg/testhelper" "github.com/helmfile/helmfile/pkg/yaml" @@ -68,60 +67,6 @@ releases: } } -func TestReadFromYaml_RenderTemplate(t *testing.T) { - defaultValuesYaml := ` -releaseName: "hello" -conditionalReleaseTag: "yes" -` - - yamlContent := []byte(` -environments: - staging: - values: - - default/values.yaml - production: - -releases: -- name: {{ .Environment.Values.releaseName }} - chart: mychart1 - -{{ if (eq .Environment.Values.conditionalReleaseTag "yes") }} -- name: conditionalRelease -{{ end }} - -`) - - files := map[string]string{ - "/path/to/default/values.yaml": defaultValuesYaml, - } - - r, _, _ := makeLoader(files, "staging") - // test the double rendering - yamlBuf, err := r.renderTemplatesToYaml("", "", yamlContent) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - - var state state.HelmState - err = yaml.Unmarshal(yamlBuf.Bytes(), &state) - - if err != nil { - t.Errorf("unexpected error: %v", err) - } - - if len(state.Releases) != 2 { - t.Fatal("there should be 2 releases") - } - - if state.Releases[0].Name != "hello" { - t.Errorf("release name should be hello") - } - - if state.Releases[1].Name != "conditionalRelease" { - t.Error("conditional release should have been present") - } -} - func testReadFromYaml_RenderTemplateLog(t *testing.T) { t.Helper() @@ -165,20 +110,7 @@ releases: } func TestReadFromYaml_RenderTemplateLog(t *testing.T) { - v := runtime.V1Mode - t.Cleanup(func() { - runtime.V1Mode = v - }) - - t.Run("v0mode", func(t *testing.T) { - runtime.V1Mode = false - testReadFromYaml_RenderTemplateLog(t) - }) - - t.Run("v1mode", func(t *testing.T) { - runtime.V1Mode = true - testReadFromYaml_RenderTemplateLog(t) - }) + testReadFromYaml_RenderTemplateLog(t) } func TestReadFromYaml_RenderTemplateWithValuesReferenceError(t *testing.T) { @@ -211,51 +143,6 @@ releases: } } -// This test shows that a gotmpl reference will get rendered correctly -// even if the pre-render disables the readFile and exec functions. -// This does not apply to .gotmpl files, which is a nice side-effect. -func TestReadFromYaml_RenderTemplateWithGotmpl(t *testing.T) { - defaultValuesYamlGotmpl := ` -releaseName: {{ readFile "nonIgnoredFile" }} -` - - yamlContent := []byte(` -environments: - staging: - values: - - values.yaml.gotmpl - production: - -{{ if (eq .Environment.Values.releaseName "release-a") }} # line 8 -releases: -- name: a - chart: mychart1 -{{ end }} -`) - - files := map[string]string{ - "/path/to/nonIgnoredFile": `release-a`, - "/path/to/values.yaml.gotmpl": defaultValuesYamlGotmpl, - } - - r, _, _ := makeLoader(files, "staging") - rendered, _ := r.renderTemplatesToYaml("", "", yamlContent) - - var state state.HelmState - err := yaml.Unmarshal(rendered.Bytes(), &state) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - - if len(state.Releases) != 1 { - t.Fatal("there should be 1 release") - } - - if state.Releases[0].Name != "a" { - t.Fatal("release should have been declared") - } -} - func TestReadFromYaml_RenderTemplateWithNamespace(t *testing.T) { yamlContent := []byte(`releases: - name: {{ .Namespace }}-myrelease diff --git a/pkg/config/apply.go b/pkg/config/apply.go index e77592b5..d6f670a7 100644 --- a/pkg/config/apply.go +++ b/pkg/config/apply.go @@ -18,10 +18,6 @@ type ApplyOptions struct { DetailedExitcode bool // StripTrailingCR is true if trailing carriage returns should be stripped during diffing StripTrailingCR bool - // TODO: Remove this function once Helmfile v0.x - // DEPRECATED: Use skip-cleanup instead - RetainValuesFiles bool - // SkipCleanup is true if the cleanup of temporary values files should be skipped SkipCleanup bool // SkipCRDs is true if the CRDs should be skipped @@ -141,12 +137,6 @@ func (a *ApplyImpl) IncludeTransitiveNeeds() bool { return a.ApplyOptions.IncludeTransitiveNeeds } -// TODO: Remove this function once Helmfile v0.x -// RetainValuesFiles returns the retain values files. -func (a *ApplyImpl) RetainValuesFiles() bool { - return a.ApplyOptions.RetainValuesFiles -} - // ShowSecrets returns the show secrets. func (a *ApplyImpl) ShowSecrets() bool { return a.ApplyOptions.ShowSecrets diff --git a/pkg/config/charts.go b/pkg/config/charts.go deleted file mode 100644 index 859894bc..00000000 --- a/pkg/config/charts.go +++ /dev/null @@ -1,46 +0,0 @@ -// TODO: Remove this function once Helmfile v0.x -package config - -// ChartsOptions is the options for the build command -type ChartsOptions struct { - // Set is the additional values to be merged into the helm command --set flag - Set []string - // Values is the additional value files to be merged into the helm command --values flag - Values []string - // Concurrency is the maximum number of concurrent helm processes to run, 0 is unlimited - Concurrency int -} - -// NewChartsOptions creates a new Apply -func NewChartsOptions() *ChartsOptions { - return &ChartsOptions{} -} - -// ChartsImpl is impl for applyOptions -type ChartsImpl struct { - *GlobalImpl - *ChartsOptions -} - -// NewChartsImpl creates a new ChartsImpl -func NewChartsImpl(g *GlobalImpl, b *ChartsOptions) *ChartsImpl { - return &ChartsImpl{ - GlobalImpl: g, - ChartsOptions: b, - } -} - -// Concurrency returns the concurrency -func (c *ChartsImpl) Concurrency() int { - return c.ChartsOptions.Concurrency -} - -// IncludeTransitiveNeeds returns the includeTransitiveNeeds -func (c *ChartsImpl) IncludeTransitiveNeeds() bool { - return false -} - -// Values returns the values -func (c *ChartsImpl) Values() []string { - return c.ChartsOptions.Values -} diff --git a/pkg/config/delete.go b/pkg/config/delete.go deleted file mode 100644 index f688e94f..00000000 --- a/pkg/config/delete.go +++ /dev/null @@ -1,67 +0,0 @@ -// TODO: Remove this function once Helmfile v0.x -package config - -// DeleteOptions is the options for the build command -type DeleteOptions struct { - // Concurrency is the maximum number of concurrent helm processes to run, 0 is unlimited - Concurrency int - // Purge is the purge flag - Purge bool - // SkipCharts makes Delete skip `withPreparedCharts` - SkipCharts bool - // Cascade '--cascade' to helmv3 delete, available values: background, foreground, or orphan, default: background - Cascade string - // Wait '--wait' if set, will wait until all the resources are deleted before returning. It will wait for as long as --timeout - DeleteWait bool - // Timeout '--timeout', to wait for helm delete operation (default 5m0s) - DeleteTimeout int -} - -// NewDeleteOptions creates a new Apply -func NewDeleteOptions() *DeleteOptions { - return &DeleteOptions{} -} - -// DeleteImpl is impl for applyOptions -type DeleteImpl struct { - *GlobalImpl - *DeleteOptions -} - -// NewDeleteImpl creates a new DeleteImpl -func NewDeleteImpl(g *GlobalImpl, b *DeleteOptions) *DeleteImpl { - return &DeleteImpl{ - GlobalImpl: g, - DeleteOptions: b, - } -} - -// Concurrency returns the concurrency -func (c *DeleteImpl) Concurrency() int { - return c.DeleteOptions.Concurrency -} - -// Purge returns the purge -func (c *DeleteImpl) Purge() bool { - return c.DeleteOptions.Purge -} - -// SkipCharts returns skipCharts flag -func (c *DeleteImpl) SkipCharts() bool { - return c.DeleteOptions.SkipCharts -} - -// Cascade returns cascade flag -func (c *DeleteImpl) Cascade() string { - return c.DeleteOptions.Cascade -} - -// DeleteWait returns the wait flag -func (c *DeleteImpl) DeleteWait() bool { - return c.DeleteOptions.DeleteWait -} - -// DeleteTimeout returns the timeout flag -func (c *DeleteImpl) DeleteTimeout() int { - return c.DeleteOptions.DeleteTimeout -} diff --git a/pkg/envvar/const.go b/pkg/envvar/const.go index 94df7381..0235af17 100644 --- a/pkg/envvar/const.go +++ b/pkg/envvar/const.go @@ -6,16 +6,12 @@ const ( // use helm status to check if a release exists before installing it UseHelmStatusToCheckReleaseExistence = "HELMFILE_USE_HELM_STATUS_TO_CHECK_RELEASE_EXISTENCE" - // TODO: Remove this function once Helmfile v0.x - SkipInsecureTemplateFunctions = "HELMFILE_SKIP_INSECURE_TEMPLATE_FUNCTIONS" - DisableRunnerUniqueID = "HELMFILE_DISABLE_RUNNER_UNIQUE_ID" 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" GoccyGoYaml = "HELMFILE_GOCCY_GOYAML" CacheHome = "HELMFILE_CACHE_HOME" Interactive = "HELMFILE_INTERACTIVE" diff --git a/pkg/policy/checker.go b/pkg/policy/checker.go index b493d513..28db5d70 100644 --- a/pkg/policy/checker.go +++ b/pkg/policy/checker.go @@ -9,8 +9,6 @@ import ( "slices" "strings" "unicode" - - "github.com/helmfile/helmfile/pkg/runtime" ) var ( @@ -51,7 +49,7 @@ func forbidEnvironmentsWithReleases(filePath string, content []byte) (bool, erro } for i := 0; i < len(result)-1; i++ { if result[i] != "---" && result[i+1] != "---" { - return runtime.V1Mode, EnvironmentsAndReleasesWithinSameYamlPartErr + return true, EnvironmentsAndReleasesWithinSameYamlPartErr } } return false, nil @@ -123,7 +121,7 @@ func TopConfigKeysVerifier(filePath string, helmfileContent []byte) (bool, error 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", currentKey, preKey, filePath) + return true, fmt.Errorf("top-level config key %s must be defined before %s in %s", currentKey, preKey, filePath) } } return false, nil diff --git a/pkg/policy/checker_test.go b/pkg/policy/checker_test.go index 7c28555c..0b64081a 100644 --- a/pkg/policy/checker_test.go +++ b/pkg/policy/checker_test.go @@ -4,15 +4,12 @@ import ( "testing" "github.com/stretchr/testify/require" - - "github.com/helmfile/helmfile/pkg/runtime" ) func TestForbidEnvironmentsWithReleases(t *testing.T) { testCases := []struct { name string filePath string - v1mode bool content []byte expectedErr bool isStrict bool @@ -21,7 +18,6 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when only releases", filePath: "helmfile.yaml", content: []byte("releases:\n"), - v1mode: false, expectedErr: false, isStrict: false, }, @@ -29,7 +25,6 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when only environments", filePath: "helmfile.yaml", content: []byte("environments:\n"), - v1mode: false, expectedErr: false, isStrict: false, }, @@ -37,7 +32,6 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when has --- between releases and environments", filePath: "helmfile.yaml", content: []byte("environments:\n---\nreleases:\n"), - v1mode: false, expectedErr: false, isStrict: false, }, @@ -45,7 +39,6 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "no error when has --- between releases and environments, and --- on top of helmfile.yaml.gotmpl", filePath: "helmfile.yaml", content: []byte("---\nenvironments:\n---\nreleases:\n"), - v1mode: false, expectedErr: false, isStrict: false, }, @@ -53,28 +46,13 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { name: "error when both releases and environments", filePath: "helmfile.yaml", content: []byte("environments:\nreleases:\n"), - v1mode: false, - expectedErr: true, - isStrict: false, - }, - { - name: "error when both releases and environments for plain yaml on v1", - filePath: "helmfile.yaml", - content: []byte("environments:\nreleases:\n"), - v1mode: true, expectedErr: true, isStrict: true, }, } - v1mode := runtime.V1Mode - t.Cleanup(func() { - runtime.V1Mode = v1mode - }) - for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - runtime.V1Mode = tc.v1mode isStrict, err := forbidEnvironmentsWithReleases(tc.filePath, tc.content) require.Equal(t, tc.isStrict, isStrict, "expected isStrict=%v, got=%v", tc.isStrict, isStrict) if tc.expectedErr { @@ -153,26 +131,31 @@ func TestTopConfigKeysVerifier(t *testing.T) { name: "error when not correct order 00", helmfileContent: []byte("releases:\nbases:\n"), wantErr: true, + wantStrict: true, }, { name: "error when not correct order 01", helmfileContent: []byte("releases:\nhelmDefaults:\nbases:\n"), wantErr: true, + wantStrict: true, }, { name: "error when not correct order 02", helmfileContent: []byte("helmDefaults:\nreleases:\nbases:\n"), wantErr: true, + wantStrict: true, }, { name: "error when not correct order 03", helmfileContent: []byte("releases:\nva:\nve:\nbases:\n"), wantErr: true, + wantStrict: true, }, { name: "error when not correct order 04", helmfileContent: []byte("bases:\nreleases:\nenvironments:\n"), wantErr: true, + wantStrict: true, }, { name: "no error when only has bases", diff --git a/pkg/runtime/runtime.go b/pkg/runtime/runtime.go index e2e407b5..7c1e1d14 100644 --- a/pkg/runtime/runtime.go +++ b/pkg/runtime/runtime.go @@ -3,24 +3,15 @@ package runtime import ( "fmt" "os" - "strconv" "github.com/helmfile/helmfile/pkg/envvar" ) -// V1Mode is false by default for Helmfile v0.x and -// true by default for Helmfile v1.x var ( - V1Mode bool - // GoccyGoYaml is set to true in order to let Helmfile use // goccy/go-yaml instead of gopkg.in/yaml.v2. // It's false by default in Helmfile v0.x and true by default for Helmfile v1.x. GoccyGoYaml bool - - // We set this via ldflags at build-time so that we can use the - // value specified at the build time as the runtime default. - v1Mode string ) func Info() string { @@ -29,22 +20,10 @@ func Info() string { yamlLib = "goccy/go-yaml" } - return fmt.Sprintf("V1 mode = %v\nYAML library = %v", V1Mode, yamlLib) + return fmt.Sprintf("YAML library = %v", yamlLib) } func init() { - // You can toggle the V1 mode at runtime via an envvar: - // - Helmfile v1.x behaves like v0.x by running it with HELMFILE_V1MODE=false - // - Helmfile v0.x behaves like v1.x by with HELMFILE_V1MODE=true - switch os.Getenv(envvar.V1Mode) { - case "true": - V1Mode = true - case "false": - V1Mode = false - default: - V1Mode, _ = strconv.ParseBool(v1Mode) - } - // You can switch the YAML library at runtime via an envvar: switch os.Getenv(envvar.GoccyGoYaml) { case "true": @@ -52,6 +31,6 @@ func init() { case "false": GoccyGoYaml = false default: - GoccyGoYaml = V1Mode + GoccyGoYaml = true } } diff --git a/pkg/state/create.go b/pkg/state/create.go index ab2fa6b2..9ca5d2e1 100644 --- a/pkg/state/create.go +++ b/pkg/state/create.go @@ -117,20 +117,6 @@ func (c *StateCreator) Parse(content []byte, baseDir, file string) (*HelmState, } } - // TODO: Remove this function once Helmfile v0.x - if len(state.DeprecatedReleases) > 0 { - if len(state.Releases) > 0 { - return nil, fmt.Errorf("failed to parse %s: you can't specify both `charts` and `releases` sections", file) - } - state.Releases = state.DeprecatedReleases - state.DeprecatedReleases = []ReleaseSpec{} - } - - // TODO: Remove this function once Helmfile v0.x - if state.DeprecatedContext != "" && state.HelmDefaults.KubeContext == "" { - state.HelmDefaults.KubeContext = state.DeprecatedContext - } - if c.overrideHelmBinary != "" && c.overrideHelmBinary != DefaultHelmBinary { state.DefaultHelmBinary = c.overrideHelmBinary } else if state.DefaultHelmBinary == "" { diff --git a/pkg/state/create_test.go b/pkg/state/create_test.go index 46b1e072..4cc282be 100644 --- a/pkg/state/create_test.go +++ b/pkg/state/create_test.go @@ -280,26 +280,6 @@ func TestReadFromYaml_StrictUnmarshalling(t *testing.T) { } } -// TODO: Remove this function once Helmfile v0.x -func TestReadFromYaml_DeprecatedReleaseReferences(t *testing.T) { - yamlFile := "example/path/to/yaml/file" - yamlContent := []byte(`charts: -- name: myrelease - chart: mychart -`) - state, err := createFromYaml(yamlContent, yamlFile, DefaultEnv, logger) - if err != nil { - t.Errorf("unxpected error: %v", err) - } - - if state.Releases[0].Name != "myrelease" { - t.Errorf("unexpected release name: expected=myrelease actual=%s", state.Releases[0].Name) - } - if state.Releases[0].Chart != "mychart" { - t.Errorf("unexpected chart name: expected=mychart actual=%s", state.Releases[0].Chart) - } -} - func TestReadFromYaml_ConflictingReleasesConfig(t *testing.T) { yamlFile := "example/path/to/yaml/file" yamlContent := []byte(`charts: diff --git a/pkg/state/state.go b/pkg/state/state.go index 223cee8c..fc6ce5a2 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -60,10 +60,6 @@ type ReleaseSetSpec struct { HelmDefaults HelmSpec `yaml:"helmDefaults,omitempty"` Helmfiles []SubHelmfileSpec `yaml:"helmfiles,omitempty"` - // TODO: Remove this function once Helmfile v0.x - DeprecatedContext string `yaml:"context,omitempty"` - DeprecatedReleases []ReleaseSpec `yaml:"charts,omitempty"` - OverrideKubeContext string `yaml:"kubeContext,omitempty"` OverrideNamespace string `yaml:"namespace,omitempty"` OverrideChart string `yaml:"chart,omitempty"` diff --git a/pkg/state/state_test.go b/pkg/state/state_test.go index 9072ea56..59210312 100644 --- a/pkg/state/state_test.go +++ b/pkg/state/state_test.go @@ -58,13 +58,9 @@ func TestHelmState_applyDefaultsTo(t *testing.T) { type fields struct { BaseChartPath string Context string - - // TODO: Remove this function once Helmfile v0.x - DeprecatedReleases []ReleaseSpec - - Namespace string - Repositories []RepositorySpec - Releases []ReleaseSpec + Namespace string + Repositories []RepositorySpec + Releases []ReleaseSpec } type args struct { spec ReleaseSpec @@ -89,12 +85,8 @@ func TestHelmState_applyDefaultsTo(t *testing.T) { fieldsWithNamespace := fields{ BaseChartPath: ".", Context: "test_context", - - // TODO: Remove this function once Helmfile v0.x - DeprecatedReleases: nil, - - Namespace: specWithNamespaceFromFields.Namespace, - Repositories: nil, + Namespace: specWithNamespaceFromFields.Namespace, + Repositories: nil, Releases: []ReleaseSpec{ specWithNamespace, }, @@ -148,10 +140,6 @@ func TestHelmState_applyDefaultsTo(t *testing.T) { state := &HelmState{ basePath: tt.fields.BaseChartPath, ReleaseSetSpec: ReleaseSetSpec{ - // TODO: Remove this function once Helmfile v0.x - DeprecatedContext: tt.fields.Context, - DeprecatedReleases: tt.fields.DeprecatedReleases, - OverrideNamespace: tt.fields.Namespace, Repositories: tt.fields.Repositories, Releases: tt.fields.Releases, @@ -740,9 +728,6 @@ func TestHelmState_flagsForUpgrade(t *testing.T) { state := &HelmState{ basePath: "./", ReleaseSetSpec: ReleaseSetSpec{ - // TODO: Remove this function once Helmfile v0.x - DeprecatedContext: "default", - Releases: []ReleaseSpec{*tt.release}, HelmDefaults: tt.defaults, }, @@ -904,9 +889,8 @@ func TestHelmState_flagsForTemplate(t *testing.T) { state := &HelmState{ basePath: "./", ReleaseSetSpec: ReleaseSetSpec{ - DeprecatedContext: "default", - Releases: []ReleaseSpec{*tt.release}, - HelmDefaults: tt.defaults, + Releases: []ReleaseSpec{*tt.release}, + HelmDefaults: tt.defaults, }, valsRuntime: valsRuntime, } diff --git a/pkg/tmpl/context_funcs.go b/pkg/tmpl/context_funcs.go index 3cc2119d..e16fd9ef 100644 --- a/pkg/tmpl/context_funcs.go +++ b/pkg/tmpl/context_funcs.go @@ -19,7 +19,6 @@ import ( "github.com/helmfile/helmfile/pkg/envvar" "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/maputil" - "github.com/helmfile/helmfile/pkg/runtime" "github.com/helmfile/helmfile/pkg/yaml" ) @@ -37,23 +36,10 @@ func (e DisableInsecureFeaturesError) Error() string { var ( disableInsecureFeatures bool - - // TODO: Remove this function once Helmfile v0.x - skipInsecureTemplateFunctions bool ) func init() { disableInsecureFeatures, _ = strconv.ParseBool(os.Getenv(envvar.DisableInsecureFeatures)) - - // TODO: Remove this function once Helmfile v0.x - skipInsecureTemplateFunctions, _ = strconv.ParseBool(os.Getenv(envvar.SkipInsecureTemplateFunctions)) - skipInsecureTemplateFunctions = func() bool { - if runtime.V1Mode { - return false - } - b, _ := strconv.ParseBool(os.Getenv(envvar.SkipInsecureTemplateFunctions)) - return b - }() } func (c *Context) createFuncMap() template.FuncMap { @@ -76,7 +62,7 @@ func (c *Context) createFuncMap() template.FuncMap { "fetchSecretValue": fetchSecretValue, "expandSecretRefs": fetchSecretValues, } - if c.preRender || skipInsecureTemplateFunctions { + if c.preRender { // disable potential side-effect template calls funcMap["exec"] = func(string, []any, ...string) (string, error) { return "", nil diff --git a/pkg/tmpl/context_funcs_test.go b/pkg/tmpl/context_funcs_test.go index e9e67e04..d1141d8e 100644 --- a/pkg/tmpl/context_funcs_test.go +++ b/pkg/tmpl/context_funcs_test.go @@ -46,30 +46,6 @@ func TestCreateFuncMap_DisabledInsecureFeatures(t *testing.T) { disableInsecureFeatures = currentVal } -// TODO: Remove this function once Helmfile v0.x -func TestCreateFuncMap_SkipInsecureTemplateFunctions(t *testing.T) { - if runtime.V1Mode { - t.Logf("SkipInsecureTemplateFunctions is not supported in V1 mode") - return - } - currentVal := skipInsecureTemplateFunctions - - { - skipInsecureTemplateFunctions = true - ctx := &Context{basePath: "."} - funcMaps := ctx.createFuncMap() - args := make([]any, 0) - actual1, err1 := funcMaps["exec"].(func(command string, args []any, inputs ...string) (string, error))("ls", args) - require.Equal(t, "", actual1) - require.ErrorIs(t, err1, nil) - actual2, err2 := funcMaps["readFile"].(func(filename string) (string, error))("context_funcs_test.go") - require.Equal(t, "", actual2) - require.ErrorIs(t, err2, nil) - } - - skipInsecureTemplateFunctions = currentVal -} - func newFSExpecting(expectedFilename string, expected string) *filesystem.FileSystem { return filesystem.FromFileSystem(filesystem.FileSystem{ ReadFile: func(filename string) ([]byte, error) { diff --git a/test/e2e/template/helmfile/snapshot_test.go b/test/e2e/template/helmfile/snapshot_test.go index 672598f1..68f62be5 100644 --- a/test/e2e/template/helmfile/snapshot_test.go +++ b/test/e2e/template/helmfile/snapshot_test.go @@ -223,7 +223,7 @@ func testHelmfileTemplateWithBuildCommand(t *testing.T, goccyGoYaml bool) { helmConfigHome := filepath.Join(tmpDir, "helm_config") t.Logf("Using HELM_CACHE_HOME=%s, HELMFILE_CACHE_HOME=%s, HELM_CONFIG_HOME=%s", helmCacheHome, helmfileCacheHome, helmConfigHome) - inputFile := filepath.Join(testdataDir, name, "input.yaml") + inputFile := filepath.Join(testdataDir, name, "input.yaml.gotmpl") outputFile := filepath.Join(testdataDir, name, "output.yaml") ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) diff --git a/test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/chart_need/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/chart_need_enable_live_output/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-envs.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/no-values.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/prod.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/helmfiles/test.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml.gotmpl similarity index 58% rename from test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml.gotmpl index 6b312364..05b9688c 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/environment_missing_in_subhelmfile/input.yaml.gotmpl @@ -4,13 +4,13 @@ environments: - test.yaml.gotmpl --- helmfiles: -- path: helmfiles/test.yaml +- path: helmfiles/test.yaml.gotmpl values: - envName: {{ .Values.envName }} -- path: helmfiles/prod.yaml +- path: helmfiles/prod.yaml.gotmpl values: - envName: {{ .Values.envName }} -- path: helmfiles/no-envs.yaml +- path: helmfiles/no-envs.yaml.gotmpl values: - envName: {{ .Values.envName }} -- path: helmfiles/no-values.yaml \ No newline at end of file +- path: helmfiles/no-values.yaml.gotmpl \ No newline at end of file diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml deleted file mode 100644 index 71fee0cb..00000000 --- a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/config.yaml +++ /dev/null @@ -1,5 +0,0 @@ -chartifyTempDir: envs_releases_within_same_yaml_part -helmfileArgs: -- --environment -- prod -- template diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml new file mode 100644 index 00000000..690947ac --- /dev/null +++ b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/config.yaml @@ -0,0 +1,5 @@ +chartifyTempDir: envs_releases_without_same_yaml_part +helmfileArgs: +- --environment +- prod +- template diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/input.yaml.gotmpl similarity index 97% rename from test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/input.yaml.gotmpl index 276a4d93..4fc99ecb 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/input.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/input.yaml.gotmpl @@ -1,7 +1,7 @@ environments: prod: staging: - +--- releases: - name: raw chart: ../../charts/raw-0.0.1 diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/output.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/output.yaml similarity index 56% rename from test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/output.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/output.yaml index 2e9471ac..7f723eaa 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/environments_releases_within_same_yaml_part/output.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/environments_releases_without_same_yaml_part/output.yaml @@ -1,4 +1,3 @@ -WARNING: environments and releases cannot be defined within the same YAML part. Use --- to extract the environments into a dedicated part Building dependency release=raw, chart=../../charts/raw-0.0.1 Templating release=raw, chart=../../charts/raw-0.0.1 --- diff --git a/test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/environments_values_gotmpl_with_environment_name/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/hcl_mix/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/issue_1229_template_strategic_merge_with_lockfile/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml index 9e3dec93..fb2d2b51 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml @@ -1,7 +1,7 @@ --- -# Source: __workingdir__/testdata/snapshot/issue_2098_release_template_needs/input.yaml +# Source: __workingdir__/testdata/snapshot/issue_2098_release_template_needs/input.yaml.gotmpl -filepath: input.yaml +filepath: input.yaml.gotmpl helmBinary: helm kustomizeBinary: kustomize environments: diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/issue_473_oci_chart_url_fetch/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/issue_498_template_go_getter_with_selector/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/oci_chart_pull/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/oci_need/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/postrenderer/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/pr_560/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/release_template_inheritance/input.yaml.gotmpl diff --git a/test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml b/test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml.gotmpl similarity index 100% rename from test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml rename to test/e2e/template/helmfile/testdata/snapshot/templated_lockfile/input.yaml.gotmpl diff --git a/test/integration/test-cases/chart-needs.sh b/test/integration/test-cases/chart-needs.sh index 76cc3814..2ce8e63d 100644 --- a/test/integration/test-cases/chart-needs.sh +++ b/test/integration/test-cases/chart-needs.sh @@ -1,14 +1,7 @@ chart_need_case_input_dir="${cases_dir}/chart-needs/input" chart_need_case_output_dir="${cases_dir}/chart-needs/output" -config_file="helmfile.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${chart_need_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi - +config_file="helmfile.yaml.gotmpl" chart_needs_tmp=$(mktemp -d) chart_needs_template_reverse=${chart_needs_tmp}/chart.needs.template.log chart_needs_lint_reverse=${chart_needs_tmp}/chart.needs.lint.log diff --git a/test/integration/test-cases/chart-needs/input/helmfile.yaml b/test/integration/test-cases/chart-needs/input/helmfile.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/chart-needs/input/helmfile.yaml rename to test/integration/test-cases/chart-needs/input/helmfile.yaml.gotmpl diff --git a/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh b/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh index 2fd4e5d3..ea5d4a22 100644 --- a/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh +++ b/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches.sh @@ -1,14 +1,7 @@ chartify_jsonPatches_and_strategicMergePatches_case_input_dir="${cases_dir}/chartify-jsonPatches-and-strategicMergePatches/input" chartify_jsonPatches_and_strategicMergePatches_case_output_dir="${cases_dir}/chartify-jsonPatches-and-strategicMergePatches/output" -config_file="helmfile.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${chartify_jsonPatches_and_strategicMergePatches_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi - +config_file="helmfile.yaml.gotmpl" chartify_jsonPatches_and_strategicMergePatches_tmp=$(mktemp -d) chartify_jsonPatches_and_strategicMergePatches_template_reverse=${chartify_jsonPatches_and_strategicMergePatches_tmp}/chartify_jsonPatches_and_strategicMergePatches.template.log diff --git a/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml b/test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml rename to test/integration/test-cases/chartify-jsonPatches-and-strategicMergePatches/input/helmfile.yaml.gotmpl diff --git a/test/integration/test-cases/chartify.sh b/test/integration/test-cases/chartify.sh index 963fbbd6..8c6e2d3a 100644 --- a/test/integration/test-cases/chartify.sh +++ b/test/integration/test-cases/chartify.sh @@ -1,14 +1,7 @@ chartify_case_input_dir="${cases_dir}/chartify/input" chartify_case_output_dir="${cases_dir}/chartify/output" -config_file="helmfile.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${chartify_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi - +config_file="helmfile.yaml.gotmpl" chartify_tmp=$(mktemp -d) chartify_template_reverse=${chartify_tmp}/chartify.template.log diff --git a/test/integration/test-cases/chartify/input/helmfile.yaml b/test/integration/test-cases/chartify/input/helmfile.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/chartify/input/helmfile.yaml rename to test/integration/test-cases/chartify/input/helmfile.yaml.gotmpl diff --git a/test/integration/test-cases/cli-overwrite-environment-values.sh b/test/integration/test-cases/cli-overwrite-environment-values.sh index 48d9f2de..8e51e159 100644 --- a/test/integration/test-cases/cli-overwrite-environment-values.sh +++ b/test/integration/test-cases/cli-overwrite-environment-values.sh @@ -6,24 +6,12 @@ cli_overwrite_environment_values_reverse=${cli_overwrite_environment_values_tmp} case_title="cli overwrite environment values" -if [[ ${HELMFILE_V1MODE} = true ]]; then - test_start "$case_title for v1" - info "Comparing ${case_title} for v1 output ${cli_overwrite_environment_values_reverse} with ${cli_overwrite_environment_values_output_dir}/overwritten.yaml" - for i in $(seq 10); do - info "Comparing build/cli-overwrite-environment-values #$i" - ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input_v1.yaml.gotmpl template --state-values-set ns=test3 --state-values-set-string imageTag=1.23.3,zone="zone1,zone2" > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" - diff -u ${cli_overwrite_environment_values_output_dir}/output_v1.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" - echo code=$? - done - test_pass "cli overwrite environment values for v1" -else - test_start "${case_title}" - info "Comparing ${case_title} output ${cli_overwrite_environment_values_reverse} with ${cli_overwrite_environment_values_output_dir}/overwritten.yaml" - for i in $(seq 10); do - info "Comparing build/cli-overwrite-environment-values #$i" - ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input_v1.yaml.gotmpl template --state-values-set ns=test3 --state-values-set-string imageTag=1.23.3,zone="zone1,zone2" > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" - diff -u ${cli_overwrite_environment_values_output_dir}/output_v1.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" - echo code=$? - done - test_pass "${case_title}" -fi +test_start "$case_title" +info "Comparing ${case_title} for output ${cli_overwrite_environment_values_reverse} with ${cli_overwrite_environment_values_output_dir}/overwritten.yaml" +for i in $(seq 10); do + info "Comparing build/cli-overwrite-environment-values #$i" + ${helmfile} -f ${cli_overwrite_environment_values_input_dir}/input.yaml.gotmpl template --state-values-set ns=test3 --state-values-set-string imageTag=1.23.3,zone="zone1,zone2" > ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" shouldn't fail" + diff -u ${cli_overwrite_environment_values_output_dir}/output.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" + echo code=$? +done +test_pass "cli overwrite environment values for v1" \ No newline at end of file diff --git a/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml b/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml deleted file mode 100644 index 28706d92..00000000 --- a/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml +++ /dev/null @@ -1,17 +0,0 @@ -environments: - default: - values: - - base.yaml - - override.yaml - -repositories: - - name: bitnami - url: https://charts.bitnami.com/bitnami - -releases: - - name: test - chart: bitnami/nginx - namespace: {{ .Values.ns }} - version: 13.2.27 - values: - - values.yaml.gotmpl diff --git a/test/integration/test-cases/cli-overwrite-environment-values/input/input_v1.yaml.gotmpl b/test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/cli-overwrite-environment-values/input/input_v1.yaml.gotmpl rename to test/integration/test-cases/cli-overwrite-environment-values/input/input.yaml.gotmpl diff --git a/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml b/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml index ae8f779c..ba0f5cd7 100644 --- a/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml +++ b/test/integration/test-cases/cli-overwrite-environment-values/output/output.yaml @@ -1,9 +1,3 @@ -Warning: environments and releases cannot be defined within the same YAML part. Use --- to extract the environments into a dedicated part -Warning: environments and releases cannot be defined within the same YAML part. Use --- to extract the environments into a dedicated part -Adding repo bitnami https://charts.bitnami.com/bitnami -"bitnami" has been added to your repositories - -Templating release=test, chart=bitnami/nginx --- # Source: nginx/templates/svc.yaml apiVersion: v1 @@ -57,6 +51,7 @@ spec: app.kubernetes.io/instance: test app.kubernetes.io/managed-by: Helm annotations: + zone: "zone1,zone2" spec: automountServiceAccountToken: false @@ -81,7 +76,7 @@ spec: initContainers: containers: - name: nginx - image: docker.io/bitnami/nginx:test3 + image: docker.io/bitnami/nginx:1.23.3 imagePullPolicy: "IfNotPresent" env: - name: BITNAMI_DEBUG diff --git a/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml b/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml deleted file mode 100644 index ba0f5cd7..00000000 --- a/test/integration/test-cases/cli-overwrite-environment-values/output/output_v1.yaml +++ /dev/null @@ -1,111 +0,0 @@ ---- -# Source: nginx/templates/svc.yaml -apiVersion: v1 -kind: Service -metadata: - name: test-nginx - namespace: "test3" - labels: - app.kubernetes.io/name: nginx - helm.sh/chart: nginx-13.2.27 - app.kubernetes.io/instance: test - app.kubernetes.io/managed-by: Helm - annotations: -spec: - type: LoadBalancer - sessionAffinity: None - externalTrafficPolicy: "Cluster" - ports: - - name: http - port: 80 - targetPort: http - selector: - app.kubernetes.io/name: nginx - app.kubernetes.io/instance: test ---- -# Source: nginx/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: test-nginx - namespace: "test3" - labels: - app.kubernetes.io/name: nginx - helm.sh/chart: nginx-13.2.27 - app.kubernetes.io/instance: test - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - strategy: - rollingUpdate: {} - type: RollingUpdate - selector: - matchLabels: - app.kubernetes.io/name: nginx - app.kubernetes.io/instance: test - template: - metadata: - labels: - app.kubernetes.io/name: nginx - helm.sh/chart: nginx-13.2.27 - app.kubernetes.io/instance: test - app.kubernetes.io/managed-by: Helm - annotations: - zone: "zone1,zone2" - spec: - - automountServiceAccountToken: false - shareProcessNamespace: false - serviceAccountName: default - affinity: - podAffinity: - - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/name: nginx - app.kubernetes.io/instance: test - topologyKey: kubernetes.io/hostname - weight: 1 - nodeAffinity: - - hostNetwork: false - hostIPC: false - initContainers: - containers: - - name: nginx - image: docker.io/bitnami/nginx:1.23.3 - imagePullPolicy: "IfNotPresent" - env: - - name: BITNAMI_DEBUG - value: "false" - - name: NGINX_HTTP_PORT_NUMBER - value: "8080" - envFrom: - ports: - - name: http - containerPort: 8080 - livenessProbe: - failureThreshold: 6 - initialDelaySeconds: 30 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - tcpSocket: - port: http - readinessProbe: - failureThreshold: 3 - initialDelaySeconds: 5 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 3 - tcpSocket: - port: http - resources: - limits: {} - requests: {} - volumeMounts: - volumes: - diff --git a/test/integration/test-cases/happypath.sh b/test/integration/test-cases/happypath.sh index a9778a1d..2968a554 100644 --- a/test/integration/test-cases/happypath.sh +++ b/test/integration/test-cases/happypath.sh @@ -2,14 +2,7 @@ test_start "happypath - simple rollout of httpbin chart" happypath_case_input_dir="${cases_dir}/happypath/input" happypath_case_output_dir="${cases_dir}/happypath/output" -config_file="happypath.yaml" - -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${happypath_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="happypath.yaml.gotmpl" info "Diffing ${happypath_case_input_dir}/${config_file}" bash -c "${helmfile} -f ${happypath_case_input_dir}/${config_file} diff --detailed-exitcode; code="'$?'"; [ "'${code}'" -eq 2 ]" || fail "unexpected exit code returned by helmfile diff" diff --git a/test/integration/test-cases/happypath/input/happypath.yaml b/test/integration/test-cases/happypath/input/happypath.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/happypath/input/happypath.yaml rename to test/integration/test-cases/happypath/input/happypath.yaml.gotmpl diff --git a/test/integration/test-cases/postrender.sh b/test/integration/test-cases/postrender.sh index 5a1a2aee..dfeab508 100644 --- a/test/integration/test-cases/postrender.sh +++ b/test/integration/test-cases/postrender.sh @@ -1,14 +1,7 @@ postrender_case_input_dir="${cases_dir}/postrender/input" postrender_case_output_dir="${cases_dir}/postrender/output" -config_file="helmfile.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${postrender_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi - +config_file="helmfile.yaml.gotmpl" postrender_diff_out_file=${postrender_case_output_dir}/diff-result if [[ $EXTRA_HELMFILE_FLAGS == *--enable-live-output* ]]; then postrender_diff_out_file=${postrender_case_output_dir}/diff-result-live diff --git a/test/integration/test-cases/postrender/input/helmfile.yaml b/test/integration/test-cases/postrender/input/helmfile.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/postrender/input/helmfile.yaml rename to test/integration/test-cases/postrender/input/helmfile.yaml.gotmpl diff --git a/test/integration/test-cases/regression.sh b/test/integration/test-cases/regression.sh index 8a68d491..bc2ea412 100644 --- a/test/integration/test-cases/regression.sh +++ b/test/integration/test-cases/regression.sh @@ -4,44 +4,20 @@ test_start "regression tests" regression_case_input_dir="${cases_dir}/regression/input" info "https://github.com/roboll/helmfile/issues/1857" -config_file="issue.1857.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${regression_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="issue.1857.yaml.gotmpl" (${helmfile} -f ${regression_case_input_dir}/${config_file} --state-values-set grafanaEnabled=true template | grep grafana 1>/dev/null) || fail "\"helmfile template\" shouldn't include grafana" ! (${helmfile} -f ${regression_case_input_dir}/${config_file} --state-values-set grafanaEnabled=false template | grep grafana) || fail "\"helmfile template\" shouldn't include grafana" info "https://github.com/roboll/helmfile/issues/1867" -config_file="issue.1867.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${regression_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="issue.1867.yaml.gotmpl" (${helmfile} -f ${regression_case_input_dir}/${config_file} template 1>/dev/null) || fail "\"helmfile template\" shouldn't fail" info "https://github.com/roboll/helmfile/issues/2118" -config_file="issue.2118.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${regression_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="issue.2118.yaml.gotmpl" (${helmfile} -f ${regression_case_input_dir}/${config_file} template 1>/dev/null) || fail "\"helmfile template\" shouldn't fail" info "https://github.com/helmfile/helmfile/issues/1682" -config_file="issue.1682.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${regression_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="issue.1682.yaml.gotmpl" (${helmfile} -f ${regression_case_input_dir}/${config_file} deps 1>/dev/null) || fail "\"helmfile deps\" shouldn't fail" test_pass "regression tests" \ No newline at end of file diff --git a/test/integration/test-cases/regression/input/issue.1682.yaml b/test/integration/test-cases/regression/input/issue.1682.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/regression/input/issue.1682.yaml rename to test/integration/test-cases/regression/input/issue.1682.yaml.gotmpl diff --git a/test/integration/test-cases/regression/input/issue.1857.yaml b/test/integration/test-cases/regression/input/issue.1857.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/regression/input/issue.1857.yaml rename to test/integration/test-cases/regression/input/issue.1857.yaml.gotmpl diff --git a/test/integration/test-cases/regression/input/issue.1867.yaml b/test/integration/test-cases/regression/input/issue.1867.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/regression/input/issue.1867.yaml rename to test/integration/test-cases/regression/input/issue.1867.yaml.gotmpl diff --git a/test/integration/test-cases/regression/input/issue.2118.yaml b/test/integration/test-cases/regression/input/issue.2118.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/regression/input/issue.2118.yaml rename to test/integration/test-cases/regression/input/issue.2118.yaml.gotmpl diff --git a/test/integration/test-cases/secretssops.sh b/test/integration/test-cases/secretssops.sh index b4c53f79..b5085275 100644 --- a/test/integration/test-cases/secretssops.sh +++ b/test/integration/test-cases/secretssops.sh @@ -4,13 +4,7 @@ sops="sops --hc-vault-transit $VAULT_ADDR/v1/sops/keys/key" secretssops_case_input_dir="${cases_dir}/secretssops/input" secretssops_case_output_dir="${cases_dir}/secretssops/output" -config_file="secretssops.yaml" -if [[ ${HELMFILE_V1MODE} = true ]]; then - pushd "${secretssops_case_input_dir}" - mv "${config_file}" "${config_file}.gotmpl" - config_file="${config_file}.gotmpl" - popd -fi +config_file="secretssops.yaml.gotmpl" mkdir -p ${secretssops_case_input_dir}/tmp diff --git a/test/integration/test-cases/secretssops/input/secretssops.yaml b/test/integration/test-cases/secretssops/input/secretssops.yaml.gotmpl similarity index 100% rename from test/integration/test-cases/secretssops/input/secretssops.yaml rename to test/integration/test-cases/secretssops/input/secretssops.yaml.gotmpl diff --git a/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh b/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh index a234fb19..113f45fa 100644 --- a/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh +++ b/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh @@ -1,19 +1,20 @@ -if [[ ${HELMFILE_V1MODE} = true ]]; then - v1_subhelmfile_multi_bases_with_array_values_input_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/input" - v1_subhelmfile_multi_bases_with_array_values_output_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/output" +v1_subhelmfile_multi_bases_with_array_values_input_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/input" +v1_subhelmfile_multi_bases_with_array_values_output_dir="${cases_dir}/v1-subhelmfile-multi-bases-with-array-values/output" - yaml_overwrite_tmp=$(mktemp -d) - yaml_overwrite_reverse=${yaml_overwrite_tmp}/helmfile_template_result +yaml_overwrite_tmp=$(mktemp -d) +yaml_overwrite_reverse=${yaml_overwrite_tmp}/helmfile_template_result - test_start "v1 subhelmfile multi bases with array values" - info "Comparing v1 subhelmfile multi bases with array values output ${yaml_overwrite_reverse} with ${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result" - for i in $(seq 10); do - info "Comparing build/v1-subhelmfile-multi-bases-with-array-values #$i" - ${helmfile} -f ${v1_subhelmfile_multi_bases_with_array_values_input_dir}/helmfile.yaml.gotmpl template -e dev &> ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" - diff -u ${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" - echo code=$? - done - test_pass "v1 subhelmfile multi bases with array values" -else - test_pass "[skipped] v1 subhelmfile multi bases with array values" -fi \ No newline at end of file +v1_subhelmfile_multi_bases_with_array_values_output_file=${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result +if [[ $EXTRA_HELMFILE_FLAGS == *--enable-live-output* ]]; then + v1_subhelmfile_multi_bases_with_array_values_output_file=${v1_subhelmfile_multi_bases_with_array_values_output_dir}/result-live +fi + +test_start "v1 subhelmfile multi bases with array values" +info "Comparing v1 subhelmfile multi bases with array values output ${yaml_overwrite_reverse} with ${v1_subhelmfile_multi_bases_with_array_values_output_file}" +for i in $(seq 10); do + info "Comparing build/v1-subhelmfile-multi-bases-with-array-values #$i" + ${helmfile} -f ${v1_subhelmfile_multi_bases_with_array_values_input_dir}/helmfile.yaml.gotmpl template -e dev &> ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" + diff -u ${v1_subhelmfile_multi_bases_with_array_values_output_file} ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" + echo code=$? +done +test_pass "v1 subhelmfile multi bases with array values" \ No newline at end of file diff --git a/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live b/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live new file mode 100644 index 00000000..ba42d6c6 --- /dev/null +++ b/test/integration/test-cases/v1-subhelmfile-multi-bases-with-array-values/output/result-live @@ -0,0 +1,25 @@ +Live output is enabled +Adding repo incubator https://charts.helm.sh/incubator/ +"incubator" has been added to your repositories + +Templating release=helmfile-test, chart=incubator/raw +--- +# Source: raw/templates/resources.yaml +apiVersion: v1 +kind: Pod +metadata: + labels: + app: raw + chart: raw-0.1.0 + heritage: Helm + release: helmfile-test + name: test +spec: + containers: + - command: + - /bin/sh + - -c + - env + image: registry.k8s.io/busybox + name: test-container + diff --git a/test/integration/test-cases/yaml-overwrite.sh b/test/integration/test-cases/yaml-overwrite.sh index a4a45825..617d8f97 100644 --- a/test/integration/test-cases/yaml-overwrite.sh +++ b/test/integration/test-cases/yaml-overwrite.sh @@ -1,19 +1,15 @@ -if [[ ${HELMFILE_V1MODE} = true ]]; then - yaml_overwrite_case_input_dir="${cases_dir}/yaml-overwrite/input" - yaml_overwrite_case_output_dir="${cases_dir}/yaml-overwrite/output" +yaml_overwrite_case_input_dir="${cases_dir}/yaml-overwrite/input" +yaml_overwrite_case_output_dir="${cases_dir}/yaml-overwrite/output" - yaml_overwrite_tmp=$(mktemp -d) - yaml_overwrite_reverse=${yaml_overwrite_tmp}/yaml.override.build.yaml +yaml_overwrite_tmp=$(mktemp -d) +yaml_overwrite_reverse=${yaml_overwrite_tmp}/yaml.override.build.yaml - test_start "yaml overwrite feature" - info "Comparing yaml overwrite feature output ${yaml_overwrite_reverse} with ${yaml_overwrite_case_output_dir}/overwritten.yaml" - for i in $(seq 10); do - info "Comparing build/yaml-overwrite #$i" - ${helmfile} -f ${yaml_overwrite_case_input_dir}/issue.657.yaml.gotmpl template --skip-deps > ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" - ./dyff between -bs ${yaml_overwrite_case_output_dir}/overwritten.yaml ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" - echo code=$? - done - test_pass "yaml overwrite feature" -else - test_pass "[skipped] yaml overwrite feature" -fi \ No newline at end of file +test_start "yaml overwrite feature" +info "Comparing yaml overwrite feature output ${yaml_overwrite_reverse} with ${yaml_overwrite_case_output_dir}/overwritten.yaml" +for i in $(seq 10); do + info "Comparing build/yaml-overwrite #$i" + ${helmfile} -f ${yaml_overwrite_case_input_dir}/issue.657.yaml.gotmpl template --skip-deps > ${yaml_overwrite_reverse} || fail "\"helmfile template\" shouldn't fail" + ./dyff between -bs ${yaml_overwrite_case_output_dir}/overwritten.yaml ${yaml_overwrite_reverse} || fail "\"helmfile template\" should be consistent" + echo code=$? +done +test_pass "yaml overwrite feature" \ No newline at end of file From 2b929a15fefce8fa292b607510d56e16d54dfbc0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Mar 2025 14:43:02 +0800 Subject: [PATCH 147/177] build(deps): bump k8s.io/apimachinery from 0.32.2 to 0.32.3 (#1960) Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.32.2 to 0.32.3. - [Commits](https://github.com/kubernetes/apimachinery/compare/v0.32.2...v0.32.3) --- updated-dependencies: - dependency-name: k8s.io/apimachinery dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 020faaf1..5864154d 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( golang.org/x/term v0.30.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.17.1 - k8s.io/apimachinery v0.32.2 + k8s.io/apimachinery v0.32.3 ) replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 diff --git a/go.sum b/go.sum index f5874cf1..1a0e99bd 100644 --- a/go.sum +++ b/go.sum @@ -2304,8 +2304,8 @@ k8s.io/api v0.32.2 h1:bZrMLEkgizC24G9eViHGOPbW+aRo9duEISRIJKfdJuw= k8s.io/api v0.32.2/go.mod h1:hKlhk4x1sJyYnHENsrdCWw31FEmCijNGPJO5WzHiJ6Y= k8s.io/apiextensions-apiserver v0.32.1 h1:hjkALhRUeCariC8DiVmb5jj0VjIc1N0DREP32+6UXZw= k8s.io/apiextensions-apiserver v0.32.1/go.mod h1:sxWIGuGiYov7Io1fAS2X06NjMIk5CbRHc2StSmbaQto= -k8s.io/apimachinery v0.32.2 h1:yoQBR9ZGkA6Rgmhbp/yuT9/g+4lxtsGYwW6dR6BDPLQ= -k8s.io/apimachinery v0.32.2/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U= +k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= k8s.io/cli-runtime v0.32.1 h1:19nwZPlYGJPUDbhAxDIS2/oydCikvKMHsxroKNGA2mM= k8s.io/cli-runtime v0.32.1/go.mod h1:NJPbeadVFnV2E7B7vF+FvU09mpwYlZCu8PqjzfuOnkY= k8s.io/client-go v0.32.2 h1:4dYCD4Nz+9RApM2b/3BtVvBHw54QjMFUl1OLcJG5yOA= From 9cd999828f87f2ed7e5d7609e31b5218c0b10995 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Mar 2025 17:17:19 +0800 Subject: [PATCH 148/177] build(deps): bump golang.org/x/net from 0.35.0 to 0.36.0 (#1961) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.35.0 to 0.36.0. - [Commits](https://github.com/golang/net/compare/v0.35.0...v0.36.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 5864154d..9081dc9d 100644 --- a/go.mod +++ b/go.mod @@ -97,7 +97,7 @@ require ( 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.35.0 // indirect + golang.org/x/net v0.36.0 // indirect golang.org/x/oauth2 v0.27.0 // indirect golang.org/x/sys v0.31.0 // indirect golang.org/x/text v0.22.0 // indirect @@ -296,7 +296,7 @@ require ( go.opentelemetry.io/otel/trace v1.30.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.33.0 // indirect + golang.org/x/crypto v0.35.0 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/tools v0.26.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect diff --git a/go.sum b/go.sum index 1a0e99bd..9f134cf3 100644 --- a/go.sum +++ b/go.sum @@ -1592,8 +1592,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= -golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= +golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= +golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1721,8 +1721,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= -golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= +golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= +golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= 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= From b921fa6475c43d36777811618dfa416dc05b7b84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Mar 2025 12:54:47 +0000 Subject: [PATCH 149/177] build(deps): bump github.com/helmfile/vals from 0.39.3 to 0.39.4 (#1962) --- go.mod | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 9081dc9d..ce538af4 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.21.0 - github.com/helmfile/vals v0.39.3 + github.com/helmfile/vals v0.39.4 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 @@ -98,7 +98,7 @@ require ( go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.36.0 // indirect - golang.org/x/oauth2 v0.27.0 // indirect + golang.org/x/oauth2 v0.28.0 // indirect golang.org/x/sys v0.31.0 // indirect golang.org/x/text v0.22.0 // indirect golang.org/x/time v0.8.0 // indirect @@ -122,7 +122,7 @@ require ( cloud.google.com/go/monitoring v1.21.2 // indirect cloud.google.com/go/secretmanager v1.14.3 // indirect github.com/1Password/connect-sdk-go v1.5.3 // indirect - github.com/1password/onepassword-sdk-go v0.1.7 // indirect + github.com/1password/onepassword-sdk-go v0.2.0 // indirect github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/AlecAivazis/survey/v2 v2.3.6 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 // indirect @@ -235,7 +235,7 @@ require ( github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcp-sdk-go v0.137.0 // indirect + github.com/hashicorp/hcp-sdk-go v0.138.0 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect @@ -306,10 +306,10 @@ require ( 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.32.2 // indirect + k8s.io/api v0.32.3 // indirect k8s.io/apiextensions-apiserver v0.32.1 // indirect k8s.io/cli-runtime v0.32.1 // indirect - k8s.io/client-go v0.32.2 // indirect + k8s.io/client-go v0.32.3 // indirect k8s.io/component-base v0.32.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect diff --git a/go.sum b/go.sum index 9f134cf3..cc43ec00 100644 --- a/go.sum +++ b/go.sum @@ -631,8 +631,8 @@ gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zum git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/1Password/connect-sdk-go v1.5.3 h1:KyjJ+kCKj6BwB2Y8tPM1Ixg5uIS6HsB0uWA8U38p/Uk= github.com/1Password/connect-sdk-go v1.5.3/go.mod h1:5rSymY4oIYtS4G3t0oMkGAXBeoYiukV3vkqlnEjIDJs= -github.com/1password/onepassword-sdk-go v0.1.7 h1:KGvK3nL5+jfDstcAVG5DZVQdAAJqZi1bhzPlPMI3jQs= -github.com/1password/onepassword-sdk-go v0.1.7/go.mod h1:tCgAKPZA64sVLmwizpOtFVc+OtXYHCwSp/+2Y+7CxyY= +github.com/1password/onepassword-sdk-go v0.2.0 h1:yfibWFlWg1XhJu09vXBNHQsSkrdw2dLX05dp7q5qzqk= +github.com/1password/onepassword-sdk-go v0.2.0/go.mod h1:tCgAKPZA64sVLmwizpOtFVc+OtXYHCwSp/+2Y+7CxyY= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AlecAivazis/survey/v2 v2.3.6 h1:NvTuVHISgTHEHeBFqt6BHOe4Ny/NwGZr7w+F8S9ziyw= @@ -1209,16 +1209,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos= github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= -github.com/hashicorp/hcp-sdk-go v0.137.0 h1:sZRB7ggtKbZpckXkYq8w2Z9w1O/J+nG5ePnnXWJhChM= -github.com/hashicorp/hcp-sdk-go v0.137.0/go.mod h1:vQ4fzdL1AmhIAbCw+4zmFe5Hbpajj3NvRWkJoVuxmAk= +github.com/hashicorp/hcp-sdk-go v0.138.0 h1:AYK2N28zJjHlqzkYVAamwtikTpIMNdl+5ZyBBuuQGDY= +github.com/hashicorp/hcp-sdk-go v0.138.0/go.mod h1:1HCJgX11KAIccfyKxwqFOMNbCRMaSvCB68EkOnOTRUM= github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1DdPo= github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.16.0 h1:nbEYGJiAPGzT9U4oWgaaB0g+Rj8E59QuHKyA5LhwQN4= github.com/hashicorp/vault/api v1.16.0/go.mod h1:KhuUhzOD8lDSk29AtzNjgAu2kxRA9jL9NAbkFlqvkBA= github.com/helmfile/chartify v0.21.0 h1:9t/Io07sbqcxEfsySe+phv5K95nolWZa9PQUwM43uM0= github.com/helmfile/chartify v0.21.0/go.mod h1:JLbNKmwHS1uPX78+l0RAO5Y14385EwpstvcVLj42BLo= -github.com/helmfile/vals v0.39.3 h1:pqL73hASvAQs8zax9B9U6I6rVgi0J4BBA+donmw5nrM= -github.com/helmfile/vals v0.39.3/go.mod h1:pbTnyGGC11t2mY2KlMCLkmHSrKdBPJ5cLkyPrwT+W8k= +github.com/helmfile/vals v0.39.4 h1:BtKOCbhzy0q4IeTG5x5C3V/9EkQyawxej9CeBH47XsA= +github.com/helmfile/vals v0.39.4/go.mod h1:Tvx1p86njqghmw1a3Yylmth/QWsK6wuXrCh6cvFUCAE= 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= @@ -1752,8 +1752,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= -golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc= +golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -2300,16 +2300,16 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -k8s.io/api v0.32.2 h1:bZrMLEkgizC24G9eViHGOPbW+aRo9duEISRIJKfdJuw= -k8s.io/api v0.32.2/go.mod h1:hKlhk4x1sJyYnHENsrdCWw31FEmCijNGPJO5WzHiJ6Y= +k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls= +k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k= k8s.io/apiextensions-apiserver v0.32.1 h1:hjkALhRUeCariC8DiVmb5jj0VjIc1N0DREP32+6UXZw= k8s.io/apiextensions-apiserver v0.32.1/go.mod h1:sxWIGuGiYov7Io1fAS2X06NjMIk5CbRHc2StSmbaQto= k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U= k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= k8s.io/cli-runtime v0.32.1 h1:19nwZPlYGJPUDbhAxDIS2/oydCikvKMHsxroKNGA2mM= k8s.io/cli-runtime v0.32.1/go.mod h1:NJPbeadVFnV2E7B7vF+FvU09mpwYlZCu8PqjzfuOnkY= -k8s.io/client-go v0.32.2 h1:4dYCD4Nz+9RApM2b/3BtVvBHw54QjMFUl1OLcJG5yOA= -k8s.io/client-go v0.32.2/go.mod h1:fpZ4oJXclZ3r2nDOv+Ux3XcJutfrwjKTCHz2H3sww94= +k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU= +k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY= k8s.io/component-base v0.32.1 h1:/5IfJ0dHIKBWysGV0yKTFfacZ5yNV1sulPh3ilJjRZk= k8s.io/component-base v0.32.1/go.mod h1:j1iMMHi/sqAHeG5z+O9BFNCF698a1u0186zkjMZQ28w= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= From a1f2cb3877b323b85e67531ea4a8b5b9dc02da8b Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 17 Mar 2025 22:51:10 +0800 Subject: [PATCH 150/177] build: update Helm to v3.17.2 and related dependencies (#1965) Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 6 +++--- Dockerfile | 6 +++--- Dockerfile.debian-stable-slim | 6 +++--- Dockerfile.ubuntu | 6 +++--- go.mod | 16 ++++++++-------- go.sum | 32 ++++++++++++++++---------------- pkg/app/init.go | 2 +- 7 files changed, 37 insertions(+), 37 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b7533c6c..fb1477b6 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -69,19 +69,19 @@ jobs: plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '' - - helm-version: v3.17.1 + - helm-version: v3.17.2 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.8.1 extra-helmfile-flags: '' - - helm-version: v3.17.1 + - helm-version: v3.17.2 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 extra-helmfile-flags: '' # In case you need to test some optional helmfile features, # enable it via extra-helmfile-flags below. - - helm-version: v3.17.1 + - helm-version: v3.17.2 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.0 plugin-diff-version: 3.9.14 diff --git a/Dockerfile b/Dockerfile index 5c7c5711..be857257 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.17.1" +ARG HELM_VERSION="v3.17.2" ENV HELM_VERSION="${HELM_VERSION}" ARG HELM_LOCATION="https://get.helm.sh" ARG HELM_FILENAME="helm-${HELM_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" @@ -38,8 +38,8 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="3b66f3cd28409f29832b1b35b43d9922959a32d795003149707fea84cbcd4469" ;; \ - "linux/arm64") HELM_SHA256="c86c9b23602d4abbfae39d9634e25ab1d0ea6c4c16c5b154113efe316a402547" ;; \ + "linux/amd64") HELM_SHA256="90c28792a1eb5fb0b50028e39ebf826531ebfcf73f599050dbd79bab2f277241" ;; \ + "linux/arm64") HELM_SHA256="d78d76ec7625a94991e887ac049d93f44bd70e4876200b945f813c9e1ed1df7c" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index 32c15a49..163ccb7f 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.17.1" +ARG HELM_VERSION="v3.17.2" ENV HELM_VERSION="${HELM_VERSION}" ARG HELM_LOCATION="https://get.helm.sh" ARG HELM_FILENAME="helm-${HELM_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" @@ -43,8 +43,8 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="3b66f3cd28409f29832b1b35b43d9922959a32d795003149707fea84cbcd4469" ;; \ - "linux/arm64") HELM_SHA256="c86c9b23602d4abbfae39d9634e25ab1d0ea6c4c16c5b154113efe316a402547" ;; \ + "linux/amd64") HELM_SHA256="90c28792a1eb5fb0b50028e39ebf826531ebfcf73f599050dbd79bab2f277241" ;; \ + "linux/arm64") HELM_SHA256="d78d76ec7625a94991e887ac049d93f44bd70e4876200b945f813c9e1ed1df7c" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index e8d94578..228efe18 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.17.1" +ARG HELM_VERSION="v3.17.2" ENV HELM_VERSION="${HELM_VERSION}" ARG HELM_LOCATION="https://get.helm.sh" ARG HELM_FILENAME="helm-${HELM_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" @@ -43,8 +43,8 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="3b66f3cd28409f29832b1b35b43d9922959a32d795003149707fea84cbcd4469" ;; \ - "linux/arm64") HELM_SHA256="c86c9b23602d4abbfae39d9634e25ab1d0ea6c4c16c5b154113efe316a402547" ;; \ + "linux/amd64") HELM_SHA256="90c28792a1eb5fb0b50028e39ebf826531ebfcf73f599050dbd79bab2f277241" ;; \ + "linux/arm64") HELM_SHA256="d78d76ec7625a94991e887ac049d93f44bd70e4876200b945f813c9e1ed1df7c" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/go.mod b/go.mod index ce538af4..e54825ef 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( golang.org/x/sync v0.12.0 golang.org/x/term v0.30.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.17.1 + helm.sh/helm/v3 v3.17.2 k8s.io/apimachinery v0.32.3 ) @@ -97,10 +97,10 @@ require ( 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.36.0 // indirect + golang.org/x/net v0.37.0 // indirect golang.org/x/oauth2 v0.28.0 // indirect golang.org/x/sys v0.31.0 // indirect - golang.org/x/text v0.22.0 // indirect + golang.org/x/text v0.23.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/api v0.215.0 // indirect google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect @@ -296,7 +296,7 @@ require ( go.opentelemetry.io/otel/trace v1.30.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.35.0 // indirect + golang.org/x/crypto v0.36.0 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/tools v0.26.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect @@ -307,13 +307,13 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/api v0.32.3 // indirect - k8s.io/apiextensions-apiserver v0.32.1 // indirect - k8s.io/cli-runtime v0.32.1 // indirect + k8s.io/apiextensions-apiserver v0.32.2 // indirect + k8s.io/cli-runtime v0.32.2 // indirect k8s.io/client-go v0.32.3 // indirect - k8s.io/component-base v0.32.1 // indirect + k8s.io/component-base v0.32.2 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect - k8s.io/kubectl v0.32.1 // indirect + k8s.io/kubectl v0.32.2 // indirect k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect oras.land/oras-go v1.2.5 // indirect sigs.k8s.io/kustomize/api v0.18.0 // indirect diff --git a/go.sum b/go.sum index cc43ec00..f02b4579 100644 --- a/go.sum +++ b/go.sum @@ -1592,8 +1592,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= -golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= +golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= +golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1721,8 +1721,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= -golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= +golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= +golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= 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= @@ -1904,8 +1904,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= -golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= +golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= +golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2290,8 +2290,8 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -helm.sh/helm/v3 v3.17.1 h1:gzVoAD+qVuoJU6KDMSAeo0xRJ6N1znRxz3wyuXRmJDk= -helm.sh/helm/v3 v3.17.1/go.mod h1:nvreuhuR+j78NkQcLC3TYoprCKStLyw5P4T7E5itv2w= +helm.sh/helm/v3 v3.17.2 h1:agYQ5ew2jq5vdx2K7q5W44KyKQrnSubUMCQsjkiv3/o= +helm.sh/helm/v3 v3.17.2/go.mod h1:+uJKMH/UiMzZQOALR3XUf3BLIoczI2RKKD6bMhPh4G8= 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= @@ -2302,22 +2302,22 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls= k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k= -k8s.io/apiextensions-apiserver v0.32.1 h1:hjkALhRUeCariC8DiVmb5jj0VjIc1N0DREP32+6UXZw= -k8s.io/apiextensions-apiserver v0.32.1/go.mod h1:sxWIGuGiYov7Io1fAS2X06NjMIk5CbRHc2StSmbaQto= +k8s.io/apiextensions-apiserver v0.32.2 h1:2YMk285jWMk2188V2AERy5yDwBYrjgWYggscghPCvV4= +k8s.io/apiextensions-apiserver v0.32.2/go.mod h1:GPwf8sph7YlJT3H6aKUWtd0E+oyShk/YHWQHf/OOgCA= k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U= k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/cli-runtime v0.32.1 h1:19nwZPlYGJPUDbhAxDIS2/oydCikvKMHsxroKNGA2mM= -k8s.io/cli-runtime v0.32.1/go.mod h1:NJPbeadVFnV2E7B7vF+FvU09mpwYlZCu8PqjzfuOnkY= +k8s.io/cli-runtime v0.32.2 h1:aKQR4foh9qeyckKRkNXUccP9moxzffyndZAvr+IXMks= +k8s.io/cli-runtime v0.32.2/go.mod h1:a/JpeMztz3xDa7GCyyShcwe55p8pbcCVQxvqZnIwXN8= k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU= k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY= -k8s.io/component-base v0.32.1 h1:/5IfJ0dHIKBWysGV0yKTFfacZ5yNV1sulPh3ilJjRZk= -k8s.io/component-base v0.32.1/go.mod h1:j1iMMHi/sqAHeG5z+O9BFNCF698a1u0186zkjMZQ28w= +k8s.io/component-base v0.32.2 h1:1aUL5Vdmu7qNo4ZsE+569PV5zFatM9hl+lb3dEea2zU= +k8s.io/component-base v0.32.2/go.mod h1:PXJ61Vx9Lg+P5mS8TLd7bCIr+eMJRQTyXe8KvkrvJq0= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= -k8s.io/kubectl v0.32.1 h1:/btLtXLQUU1rWx8AEvX9jrb9LaI6yeezt3sFALhB8M8= -k8s.io/kubectl v0.32.1/go.mod h1:sezNuyWi1STk4ZNPVRIFfgjqMI6XMf+oCVLjZen/pFQ= +k8s.io/kubectl v0.32.2 h1:TAkag6+XfSBgkqK9I7ZvwtF0WVtUAvK8ZqTt+5zi1Us= +k8s.io/kubectl v0.32.2/go.mod h1:+h/NQFSPxiDZYX/WZaWw9fwYezGLISP0ud8nQKg+3g8= k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= diff --git a/pkg/app/init.go b/pkg/app/init.go index 99b81e44..76243674 100644 --- a/pkg/app/init.go +++ b/pkg/app/init.go @@ -18,7 +18,7 @@ import ( const ( HelmRequiredVersion = "v3.16.4" - HelmRecommendedVersion = "v3.17.1" + HelmRecommendedVersion = "v3.17.2" HelmDiffRecommendedVersion = "v3.9.14" HelmSecretsRecommendedVersion = "v4.6.0" HelmGitRecommendedVersion = "v0.15.1" From 27dbc39cbddfa97e685809db287f832f50c3f3f5 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Tue, 18 Mar 2025 06:51:37 +0800 Subject: [PATCH 151/177] build: update yaml.v3 dependency and remove colega/go-yaml-yaml (#1929) Signed-off-by: yxxhero --- go.mod | 2 -- go.sum | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index e54825ef..662e3878 100644 --- a/go.mod +++ b/go.mod @@ -33,8 +33,6 @@ require ( k8s.io/apimachinery v0.32.3 ) -replace gopkg.in/yaml.v3 => github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 - require ( cloud.google.com/go v0.116.0 // indirect cloud.google.com/go/iam v1.2.2 // indirect diff --git a/go.sum b/go.sum index f02b4579..d62008d2 100644 --- a/go.sum +++ b/go.sum @@ -848,8 +848,6 @@ github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI= github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= -github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22 h1:uVG5v+c6ndz9seCorYjQmlVlPbh3OMcMWJzAJZWdM/g= -github.com/colega/go-yaml-yaml v0.0.0-20220720070545-aaba007ebc22/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= github.com/containerd/containerd v1.7.24 h1:zxszGrGjrra1yYJW/6rhm9cJ1ZQ8rkKBR48brqsa7nA= @@ -2288,6 +2286,10 @@ gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= helm.sh/helm/v3 v3.17.2 h1:agYQ5ew2jq5vdx2K7q5W44KyKQrnSubUMCQsjkiv3/o= From 17e31a972b26e7c53414fa2a75c6e6010f3b94aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Mar 2025 07:35:01 +0800 Subject: [PATCH 152/177] build(deps): bump github.com/containerd/containerd from 1.7.24 to 1.7.27 (#1966) Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.7.24 to 1.7.27. - [Release notes](https://github.com/containerd/containerd/releases) - [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md) - [Commits](https://github.com/containerd/containerd/compare/v1.7.24...v1.7.27) --- updated-dependencies: - dependency-name: github.com/containerd/containerd dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 662e3878..fee113cd 100644 --- a/go.mod +++ b/go.mod @@ -175,7 +175,7 @@ require ( github.com/chai2010/gettext-go v1.0.2 // indirect github.com/cloudflare/circl v1.4.0 // indirect github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect - github.com/containerd/containerd v1.7.24 // indirect + github.com/containerd/containerd v1.7.27 // indirect github.com/containerd/errdefs v0.3.0 // indirect github.com/containerd/log v0.1.0 // indirect github.com/containerd/platforms v0.2.1 // indirect diff --git a/go.sum b/go.sum index d62008d2..ec4aa0f2 100644 --- a/go.sum +++ b/go.sum @@ -850,10 +850,10 @@ github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8E github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= -github.com/containerd/containerd v1.7.24 h1:zxszGrGjrra1yYJW/6rhm9cJ1ZQ8rkKBR48brqsa7nA= -github.com/containerd/containerd v1.7.24/go.mod h1:7QUzfURqZWCZV7RLNEn1XjUCQLEf0bkaK4GjUaZehxw= -github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8= -github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= +github.com/containerd/containerd v1.7.27 h1:yFyEyojddO3MIGVER2xJLWoCIn+Up4GaHFquP7hsFII= +github.com/containerd/containerd v1.7.27/go.mod h1:xZmPnl75Vc+BLGt4MIfu6bp+fy03gdHAn9bz+FreFR0= +github.com/containerd/continuity v0.4.4 h1:/fNVfTJ7wIl/YPMHjf+5H32uFhl63JucB34PlCpMKII= +github.com/containerd/continuity v0.4.4/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= github.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4= github.com/containerd/errdefs v0.3.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= From 2c26f487d5bd528736b7a579a249cfa681a0f252 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Mar 2025 14:30:47 +0800 Subject: [PATCH 153/177] build(deps): bump github.com/goccy/go-yaml from 1.15.23 to 1.16.0 (#1967) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.15.23 to 1.16.0. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.15.23...v1.16.0) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fee113cd..75900ef5 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.15.23 + github.com/goccy/go-yaml v1.16.0 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.7.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index ec4aa0f2..96f03592 100644 --- a/go.sum +++ b/go.sum @@ -1008,8 +1008,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.15.23 h1:WS0GAX1uNPDLUvLkNU2vXq6oTnsmfVFocjQ/4qA48qo= -github.com/goccy/go-yaml v1.15.23/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.16.0 h1:d7m1G7A0t+logajVtklHfDYJs2Et9g3gHwdBNNFou0w= +github.com/goccy/go-yaml v1.16.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From 2fdc64642fbb29299c4c605b6ab8bb2d9cf02ad5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Mar 2025 07:37:37 +0800 Subject: [PATCH 154/177] build(deps): bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 (#1969) Bumps [github.com/golang-jwt/jwt/v5](https://github.com/golang-jwt/jwt) from 5.2.1 to 5.2.2. - [Release notes](https://github.com/golang-jwt/jwt/releases) - [Changelog](https://github.com/golang-jwt/jwt/blob/main/VERSION_HISTORY.md) - [Commits](https://github.com/golang-jwt/jwt/compare/v5.2.1...v5.2.2) --- updated-dependencies: - dependency-name: github.com/golang-jwt/jwt/v5 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 75900ef5..7ad00e55 100644 --- a/go.mod +++ b/go.mod @@ -218,7 +218,7 @@ require ( github.com/gobwas/glob v0.2.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.2.1 // indirect + github.com/golang-jwt/jwt/v5 v5.2.2 // indirect github.com/google/btree v1.0.1 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-jsonnet v0.20.0 // indirect diff --git a/go.sum b/go.sum index 96f03592..eddbfbda 100644 --- a/go.sum +++ b/go.sum @@ -1020,8 +1020,8 @@ github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzw github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= -github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= +github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= From d2ec2b7150e83edfd849fad95ad84f52df310e03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Mar 2025 09:56:12 +0800 Subject: [PATCH 155/177] build(deps): bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2 (#1970) Bumps [github.com/golang-jwt/jwt/v4](https://github.com/golang-jwt/jwt) from 4.5.1 to 4.5.2. - [Release notes](https://github.com/golang-jwt/jwt/releases) - [Changelog](https://github.com/golang-jwt/jwt/blob/main/VERSION_HISTORY.md) - [Commits](https://github.com/golang-jwt/jwt/compare/v4.5.1...v4.5.2) --- updated-dependencies: - dependency-name: github.com/golang-jwt/jwt/v4 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7ad00e55..0c1a5f01 100644 --- a/go.mod +++ b/go.mod @@ -52,7 +52,7 @@ require ( github.com/dimchansky/utfbom v1.1.1 // indirect github.com/fatih/color v1.18.0 github.com/fujiwara/tfstate-lookup v1.5.0 // indirect - github.com/golang-jwt/jwt/v4 v4.5.1 // indirect + github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-querystring v1.1.0 // indirect diff --git a/go.sum b/go.sum index eddbfbda..19edaebc 100644 --- a/go.sum +++ b/go.sum @@ -1018,8 +1018,8 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69 github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= -github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= +github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= From d26d909a5e83e5b6807367676d59cae8ef958946 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Mar 2025 07:52:06 +0800 Subject: [PATCH 156/177] build(deps): bump golangci/golangci-lint-action from 6 to 7 (#1975) * build(deps): bump golangci/golangci-lint-action from 6 to 7 Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 6 to 7. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v6...v7) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * refactor(.github/workflows/ci.yaml): update golangci-lint version to v2.0.2 Signed-off-by: yxxhero --------- Signed-off-by: dependabot[bot] Signed-off-by: yxxhero Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: yxxhero --- .github/workflows/ci.yaml | 4 +- .golangci.yaml | 466 +++++++++-------------------------- pkg/app/app.go | 2 +- pkg/app/ask.go | 5 +- pkg/app/two_pass_renderer.go | 2 +- pkg/config/apply.go | 2 +- pkg/config/diff.go | 2 +- pkg/config/global.go | 16 +- pkg/errors/errors_test.go | 2 +- pkg/policy/checker.go | 4 +- pkg/policy/checker_test.go | 2 +- pkg/state/state.go | 2 +- 12 files changed, 141 insertions(+), 368 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fb1477b6..5621f6e6 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,9 +18,9 @@ jobs: with: go-version-file: go.mod cache: false - - uses: golangci/golangci-lint-action@v6 + - uses: golangci/golangci-lint-action@v7 with: - version: v1.64.5 + version: v2.0.2 tests: runs-on: ubuntu-latest diff --git a/.golangci.yaml b/.golangci.yaml index e828a482..99add513 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -1,374 +1,146 @@ -# This file contains all available configuration options -# with their default values. - -# options for analysis running +version: "2" run: - # default concurrency is a available CPU number - # concurrency: 4 - - # timeout for analysis, e.g. 30s, 5m, default is 1m - timeout: 30m - - # exit code when at least one issue was found, default is 1 issues-exit-code: 1 - - # include test files or not, default is true tests: true - - # list of build tags, all linters use it. Default is empty list. - # build-tags: - # - mytag - - # which dirs to skip: issues from them won't be reported; - # can use regexp here: generated.*, regexp is applied on full path; - # default value is empty list, but default dirs are skipped independently - # from this option's value (see skip-dirs-use-default). - # skip-dirs: - # - src/external_libs - # - autogenerated_by_my_lib - - # which files to skip: they will be analyzed, but issues from them - # won't be reported. Default value is empty list, but there is - # no need to include all autogenerated files, we confidently recognize - # autogenerated files. If it's not please let us know. - # skip-files: - # - ".*\\.my\\.go$" - # - lib/bad.go - - # by default isn't set. If set we pass it to "go list -mod={option}". From "go help modules": - # If invoked with -mod=readonly, the go command is disallowed from the implicit - # automatic updating of go.mod described above. Instead, it fails when any changes - # to go.mod are needed. This setting is most useful to check that go.mod does - # not need updates, such as in a continuous integration and testing system. - # If invoked with -mod=vendor, the go command assumes that the vendor - # directory holds the correct copies of dependencies and ignores - # the dependency descriptions in go.mod. - # modules-download-mode: readonly|release|vendor - -# output configuration options output: - # The formats used to render issues. - # Formats: - # - `colored-line-number` - # - `line-number` - # - `json` - # - `colored-tab` - # - `tab` - # - `html` - # - `checkstyle` - # - `code-climate` - # - `junit-xml` - # - `junit-xml-extended` - # - `github-actions` - # - `teamcity` - # - `sarif` - # Output path can be either `stdout`, `stderr` or path to the file to write to. - # - # For the CLI flag (`--out-format`), multiple formats can be specified by separating them by comma. - # The output can be specified for each of them by separating format name and path by colon symbol. - # Example: "--out-format=checkstyle:report.xml,json:stdout,colored-line-number" - # The CLI flag (`--out-format`) override the configuration file. - # - # Default: - # formats: - # - format: colored-line-number - # path: stdout formats: - - format: line-number + text: path: stdout - - # print lines of code with issue, default is true - print-issued-lines: true - - # print linter name in the end of issue text, default is true - print-linter-name: true - -# all available settings of specific linters -linters-settings: - gci: - sections: - - standard - - default - - prefix(github.com/helmfile/helmfile) - - errcheck: - # report about not checking of errors in type assetions: `a := b.(MyStruct)`; - # default is false: such cases aren't reported by default. - check-type-assertions: false - - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: false - - # [deprecated] comma-separated list of pairs of the form pkg:regex - # the regex is used to ignore names within pkg. (default "fmt:.*"). - # see https://github.com/kisielk/errcheck#the-deprecated-method for details - # ignore: fmt:.* - - # path to a file containing a list of functions to exclude from checking - # see https://github.com/kisielk/errcheck#excluding-functions for details - # exclude: /path/to/file.txt - - # Disable error checking, as errorcheck detects more errors and is more configurable. - gosec: - excludes: - - "G104" - - govet: - # report about shadowed variables - disable: - - shadow - - # settings per analyzer - settings: - printf: # analyzer name, run `go tool vet help` to see all analyzers - funcs: # run `go tool vet help printf` to see available settings for `printf` analyzer - - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof - - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf - - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf - - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf - - # enable or disable analyzers by name - # enable: - # - atomicalign - # enable-all: false - # disable: - # - shadow - # disable-all: false - revive: - # minimal confidence for issues, default is 0.8 - confidence: 0.8 - ignore-generated-header: true - severity: warning - gofmt: - # simplify code: gofmt with `-s` option, true by default - simplify: true - # goimports: - # put imports beginning with prefix after 3rd-party packages; - # it's a comma-separated list of prefixes - # local-prefixes: github.com/org/project - gocyclo: - # minimal code complexity to report, 30 by default (but we recommend 10-20) - min-complexity: 30 - gocognit: - # minimal code complexity to report, 30 by default (but we recommend 10-20) - min-complexity: 100 - dupl: - # tokens count to trigger issue, 150 by default - threshold: 100 - goconst: - # minimal length of string constant, 3 by default - min-len: 3 - # minimal occurrences count to trigger, 3 by default - min-occurrences: 8 - # depguard: - # list-type: blacklist - # include-go-root: false - # packages: - # - github.com/sirupsen/logrus - # packages-with-error-messages: - # # specify an error message to output when a blacklisted package is used - # github.com/sirupsen/logrus: "logging is allowed only by logutils.Log" - misspell: - # Correct spellings using locale preferences for US or UK. - # Default is to use a neutral variety of English. - # Setting locale to US will correct the British spelling of 'colour' to 'color'. - locale: US - ignore-words: - - GitLab - lll: - # max line length, lines longer will be reported. Default is 120. - # '\t' is counted as 1 character by default, and can be changed with the tab-width option - line-length: 120 - # tab width in spaces. Default to 1. - tab-width: 1 - unparam: - # Inspect exported functions, default is false. Set to true if no external program/library imports your code. - # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find external interfaces. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - nakedret: - # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 - max-func-lines: 50 - prealloc: - # XXX: we don't recommend using this linter before doing performance profiling. - # For most programs usage of prealloc will be a premature optimization. - - # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them. - # True by default. - simple: true - range-loops: true # Report preallocation suggestions on range loops, true by default - for-loops: false # Report preallocation suggestions on for loops, false by default - gocritic: - # Which checks should be enabled; can't be combined with 'disabled-checks'; - # See https://go-critic.github.io/overview#checks-overview - # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run` - # By default list of stable checks is used. - # enabled-checks: - # - rangeValCopy - - # Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty - # disabled-checks: - # - regexpMust - - # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint run` to see all tags and checks. - # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags". - # enabled-tags: - # - performance - - settings: # settings passed to gocritic - captLocal: # must be valid enabled check name - paramsOnly: true - # rangeValCopy: - # sizeThreshold: 32 - godox: - # report any comments starting with keywords, this is useful for TODO or FIXME comments that - # might be left in the code accidentally and should be resolved before merging - keywords: # default keywords are TODO, BUG, and FIXME, these can be overwritten by this setting - - TODO - - BUG - - FIXME - - NOTE - - OPTIMIZE # marks code that should be optimized before merging - - HACK # marks hack-arounds that should be removed before merging - dogsled: - # checks assignments with too many blank identifiers; default is 2 - max-blank-identifiers: 2 - - whitespace: - multi-if: false # Enforces newlines (or comments) after every multi-line if statement - multi-func: false # Enforces newlines (or comments) after every multi-line function signature - wsl: - # If true append is only allowed to be cuddled if appending value is - # matching variables, fields or types on line above. Default is true. - strict-append: true - # Allow calls and assignments to be cuddled as long as the lines have any - # matching variables, fields or types. Default is true. - allow-assign-and-call: true - # Allow multiline assignments to be cuddled. Default is true. - allow-multiline-assign: true - # Allow declarations (var) to be cuddled. - allow-cuddle-declarations: false - # Allow trailing comments in ending of blocks - allow-trailing-comment: false - # Force newlines in end of case at this limit (0 = never). - force-case-trailing-whitespace: 0 - funlen: - # Checks the number of lines in a function. - # If lower than 0, disable the check. - # Default: 60 - lines: 280 - # Checks the number of statements in a function. - # If lower than 0, disable the check. - # Default: 40 - statements: 140 - + print-linter-name: true + print-issued-lines: true + colors: false linters: - # please, do not use `enable-all`: it's deprecated and will be removed soon. - # inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint - disable-all: true + default: none enable: - bodyclose - - usestdlibvars - - reassign + - copyloopvar - errcheck - funlen - gocognit - goconst - - gofmt - - goimports - - revive - - gosimple - govet - ineffassign - misspell - nakedret - - copyloopvar + - reassign + - revive - staticcheck - - typecheck - unconvert - unparam - unused + - usestdlibvars - whitespace - - gci - # don't enable: - # - depguard - # - deadcode - # - gochecknoglobals - # - gochecknoinits - # - gocyclo - # - lll - # - maligned - # - prealloc - # - varcheck - # - gocritic - # - godox - # - gosec - # - interfacer - # - stylecheck - # - dogsled - # - dupl + settings: + staticcheck: + checks: ["all", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022", "-ST1005", "-QF1001", "-QF1008"] + dogsled: + max-blank-identifiers: 2 + dupl: + threshold: 100 + errcheck: + check-type-assertions: false + check-blank: false + funlen: + lines: 280 + statements: 140 + gocognit: + min-complexity: 100 + goconst: + min-len: 3 + min-occurrences: 8 + gocritic: + settings: + captLocal: + paramsOnly: true + gocyclo: + min-complexity: 30 + godox: + keywords: + - TODO + - BUG + - FIXME + - NOTE + - OPTIMIZE + - HACK + gosec: + excludes: + - G104 + govet: + disable: + - shadow + settings: + printf: + funcs: + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf + lll: + line-length: 120 + tab-width: 1 + misspell: + locale: US + ignore-rules: + - GitLab + nakedret: + max-func-lines: 50 + prealloc: + simple: true + range-loops: true + for-loops: false + revive: + confidence: 0.8 + severity: warning + unparam: + check-exported: false + whitespace: + multi-if: false + multi-func: false + wsl: + strict-append: true + allow-assign-and-call: true + allow-multiline-assign: true + force-case-trailing-whitespace: 0 + allow-trailing-comment: false + allow-cuddle-declarations: false + exclusions: + generated: lax + rules: + - linters: + - dupl + - errcheck + - funlen + - gocyclo + - gosec + path: _test\.go + - linters: + - lll + source: '^//go:generate ' + paths: + - third_party$ + - builtin$ + - examples$ issues: - # List of regexps of issue texts to exclude, empty list by default. - # But independently from this option we use default exclude patterns, - # it can be disabled by `exclude-use-default: false`. To list all - # excluded by default patterns execute `golangci-lint run --help` - # exclude: - # - abcdef - - # Excluding configuration per-path, per-linter, per-text and per-source - exclude-rules: - # Exclude some linters from running on tests files. - - path: _test\.go - linters: - - gocyclo - - errcheck - - dupl - - gosec - - funlen - - # Exclude known linters from partially hard-vendored code, - # which is impossible to exclude via "nolint" comments. - # - path: internal/hmac/ - # text: "weak cryptographic primitive" - # linters: - # - gosec - - # Exclude some staticcheck messages - # - linters: - # - staticcheck - # text: "SA9003:" - - # Exclude lll issues for long lines with go:generate - - linters: - - lll - source: "^//go:generate " - - # Independently from option `exclude` we use default exclude patterns, - # it can be disabled by this option. To list all - # excluded by default patterns execute `golangci-lint run --help`. - # Default value for this option is true. - exclude-use-default: false - - # Maximum issues count per one linter. Set to 0 to disable. Default is 50. max-issues-per-linter: 0 - - # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. max-same-issues: 0 - - # Show only new issues: if there are unstaged changes or untracked files, - # only those changes are analyzed, else only changes in HEAD~ are analyzed. - # It's a super-useful option for integration of golangci-lint into existing - # large codebase. It's not practical to fix all existing issues at the moment - # of integration: much better don't allow issues in new code. - # Default is false. new: false - - # Show only new issues created after git revision `REV` - # This should be passed as flag during individual CI jobs. - # new-from-rev: REV - - # Show only new issues created in git patch with set file path. - # new-from-patch: path/to/patch/file +formatters: + enable: + - gci + - gofmt + - goimports + settings: + gci: + sections: + - standard + - default + - prefix(github.com/helmfile/helmfile) + gofmt: + simplify: true + exclusions: + generated: lax + paths: + - third_party$ + - builtin$ + - examples$ diff --git a/pkg/app/app.go b/pkg/app/app.go index d5db95fb..6529291d 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -1005,7 +1005,7 @@ func printDAG(batches [][]state.Release) string { for i, batch := range batches { for _, r := range batch { id := state.ReleaseToID(&r.ReleaseSpec) - needs := r.ReleaseSpec.Needs + needs := r.Needs _, _ = fmt.Fprintf(w, "%d\t%s\t%s\n", i+1, id, strings.Join(needs, ", ")) } } diff --git a/pkg/app/ask.go b/pkg/app/ask.go index ad3425d9..52161a1c 100644 --- a/pkg/app/ask.go +++ b/pkg/app/ask.go @@ -24,9 +24,10 @@ func AskForConfirmation(s string) bool { response = strings.ToLower(strings.TrimSpace(response)) - if response == "y" || response == "yes" { + switch response { + case "y", "yes": return true - } else if response == "n" || response == "no" { + case "n", "no": return false } } diff --git a/pkg/app/two_pass_renderer.go b/pkg/app/two_pass_renderer.go index fddfa307..637f99be 100644 --- a/pkg/app/two_pass_renderer.go +++ b/pkg/app/two_pass_renderer.go @@ -14,7 +14,7 @@ func prependLineNumbers(text string) string { buf := bytes.NewBufferString("") lines := strings.Split(text, "\n") for i, line := range lines { - buf.WriteString(fmt.Sprintf("%2d: %s\n", i, line)) + fmt.Fprintf(buf, "%2d: %s\n", i, line) } return buf.String() } diff --git a/pkg/config/apply.go b/pkg/config/apply.go index d6f670a7..837359b9 100644 --- a/pkg/config/apply.go +++ b/pkg/config/apply.go @@ -119,7 +119,7 @@ func (a *ApplyImpl) StripTrailingCR() bool { // DiffOutput returns the diff output. func (a *ApplyImpl) DiffOutput() string { - return a.ApplyOptions.Output + return a.Output } // IncludeNeeds returns the include needs. diff --git a/pkg/config/diff.go b/pkg/config/diff.go index c2717b89..ac8018b9 100644 --- a/pkg/config/diff.go +++ b/pkg/config/diff.go @@ -126,7 +126,7 @@ func (a *DiffImpl) StripTrailingCR() bool { // Output returns the output func (t *DiffImpl) DiffOutput() string { - return t.DiffOptions.Output + return t.Output } // IncludeTests returns the include tests diff --git a/pkg/config/global.go b/pkg/config/global.go index 719d2132..fe906195 100644 --- a/pkg/config/global.go +++ b/pkg/config/global.go @@ -133,7 +133,7 @@ func (g *GlobalImpl) Chart() string { // FileOrDir returns the path to the Helmfile. func (g *GlobalImpl) FileOrDir() string { - file := g.GlobalOptions.File + file := g.File if file == "" { file = os.Getenv(envvar.FilePath) } @@ -143,7 +143,7 @@ func (g *GlobalImpl) FileOrDir() string { // Selectors returns the selectors to use. func (g *GlobalImpl) Selectors() []string { - return g.GlobalOptions.Selector + return g.Selector } // StateValuesSet returns the set @@ -158,12 +158,12 @@ func (g *GlobalImpl) RawStateValuesSet() []string { // RawStateValuesSetString returns the set func (g *GlobalImpl) RawStateValuesSetString() []string { - return g.GlobalOptions.StateValuesSetString + return g.StateValuesSetString } // StateValuesFiles returns the state values files func (g *GlobalImpl) StateValuesFiles() []string { - return g.GlobalOptions.StateValuesFile + return g.StateValuesFile } // EnableLiveOutput return when to pipe the stdout and stderr from Helm live to the helmfile stdout @@ -193,7 +193,7 @@ func (g *GlobalImpl) DisableForceUpdate() bool { // Logger returns the logger func (g *GlobalImpl) Logger() *zap.SugaredLogger { - return g.GlobalOptions.logger + return g.logger } func (g *GlobalImpl) Color() bool { @@ -226,8 +226,8 @@ func (g *GlobalImpl) Env() string { var env string switch { - case g.GlobalOptions.Environment != "": - env = g.GlobalOptions.Environment + case g.Environment != "": + env = g.Environment case os.Getenv("HELMFILE_ENVIRONMENT") != "": env = os.Getenv("HELMFILE_ENVIRONMENT") default: @@ -255,7 +255,7 @@ func (g *GlobalImpl) Interactive() bool { // Args returns the args to use for helm func (g *GlobalImpl) Args() string { args := g.GlobalOptions.Args - enableHelmDebug := g.GlobalOptions.Debug + enableHelmDebug := g.Debug if enableHelmDebug { args = fmt.Sprintf("%s %s", args, "--debug") diff --git a/pkg/errors/errors_test.go b/pkg/errors/errors_test.go index f8541d93..d147deb0 100644 --- a/pkg/errors/errors_test.go +++ b/pkg/errors/errors_test.go @@ -43,7 +43,7 @@ var ( func expect(t *testing.T, a any, b any) { _, fn, line, _ := runtime.Caller(1) - fn = strings.Replace(fn, wd+"/", "", -1) + fn = strings.ReplaceAll(fn, wd+"/", "") require.Equalf(t, a, b, "(%s:%d) Expected %v (type %v) - Got %v (type %v)", fn, line, b, reflect.TypeOf(b), a, reflect.TypeOf(a)) } diff --git a/pkg/policy/checker.go b/pkg/policy/checker.go index 28db5d70..a609b8fa 100644 --- a/pkg/policy/checker.go +++ b/pkg/policy/checker.go @@ -12,7 +12,7 @@ import ( ) var ( - EnvironmentsAndReleasesWithinSameYamlPartErr = errors.New("environments and releases cannot be defined within the same YAML part. Use --- to extract the environments into a dedicated part") + ErrEnvironmentsAndReleasesWithinSameYamlPart = errors.New("environments and releases cannot be defined within the same YAML part. Use --- to extract the environments into a dedicated part") topConfigKeysRegex = regexp.MustCompile(`^[a-zA-Z]+:`) separatorRegex = regexp.MustCompile(`^--- *$`) topkeysPriority = map[string]int{ @@ -49,7 +49,7 @@ func forbidEnvironmentsWithReleases(filePath string, content []byte) (bool, erro } for i := 0; i < len(result)-1; i++ { if result[i] != "---" && result[i+1] != "---" { - return true, EnvironmentsAndReleasesWithinSameYamlPartErr + return true, ErrEnvironmentsAndReleasesWithinSameYamlPart } } return false, nil diff --git a/pkg/policy/checker_test.go b/pkg/policy/checker_test.go index 0b64081a..b7cd667f 100644 --- a/pkg/policy/checker_test.go +++ b/pkg/policy/checker_test.go @@ -56,7 +56,7 @@ func TestForbidEnvironmentsWithReleases(t *testing.T) { isStrict, err := forbidEnvironmentsWithReleases(tc.filePath, tc.content) require.Equal(t, tc.isStrict, isStrict, "expected isStrict=%v, got=%v", tc.isStrict, isStrict) if tc.expectedErr { - require.ErrorIsf(t, err, EnvironmentsAndReleasesWithinSameYamlPartErr, "expected error=%v, got=%v", EnvironmentsAndReleasesWithinSameYamlPartErr, err) + require.ErrorIsf(t, err, ErrEnvironmentsAndReleasesWithinSameYamlPart, "expected error=%v, got=%v", ErrEnvironmentsAndReleasesWithinSameYamlPart, err) } else { require.NoError(t, err, "expected no error but got error: %v", err) } diff --git a/pkg/state/state.go b/pkg/state/state.go index fc6ce5a2..681c3122 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -584,7 +584,7 @@ func (st *HelmState) SyncRepos(helm RepoUpdater, shouldSkip map[string]bool) ([] func gatherUsernamePassword(repoName string, username string, password string) (string, string) { var user, pass string - replacedRepoName := strings.ToUpper(strings.Replace(repoName, "-", "_", -1)) + replacedRepoName := strings.ToUpper(strings.ReplaceAll(repoName, "-", "_")) if username != "" { user = username } else if u := os.Getenv(fmt.Sprintf("%s_USERNAME", replacedRepoName)); u != "" { From 2eef8233dd81cf85507f2fac3d0ff51745afb969 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Mar 2025 17:51:51 +0800 Subject: [PATCH 157/177] build(deps): bump github.com/helmfile/vals from 0.39.4 to 0.40.0 (#1978) Bumps [github.com/helmfile/vals](https://github.com/helmfile/vals) from 0.39.4 to 0.40.0. - [Release notes](https://github.com/helmfile/vals/releases) - [Changelog](https://github.com/helmfile/vals/blob/main/.goreleaser.yml) - [Commits](https://github.com/helmfile/vals/compare/v0.39.4...v0.40.0) --- updated-dependencies: - dependency-name: github.com/helmfile/vals dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 32 ++++++++++++++++---------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 0c1a5f01..47504124 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.21.0 - github.com/helmfile/vals v0.39.4 + github.com/helmfile/vals v0.40.0 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 @@ -120,10 +120,10 @@ require ( cloud.google.com/go/monitoring v1.21.2 // indirect cloud.google.com/go/secretmanager v1.14.3 // indirect github.com/1Password/connect-sdk-go v1.5.3 // indirect - github.com/1password/onepassword-sdk-go v0.2.0 // indirect + github.com/1password/onepassword-sdk-go v0.2.1 // indirect github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/AlecAivazis/survey/v2 v2.3.6 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.3.0 // indirect @@ -180,7 +180,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/containerd/platforms v0.2.1 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect - github.com/cyberark/conjur-api-go v0.12.12 // indirect + github.com/cyberark/conjur-api-go v0.12.14 // indirect github.com/danieljoos/wincred v1.2.2 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/cli v27.3.1+incompatible // indirect @@ -196,7 +196,7 @@ require ( github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect github.com/evanphx/json-patch v5.9.0+incompatible // indirect github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect - github.com/extism/go-sdk v1.6.1 // indirect + github.com/extism/go-sdk v1.7.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe // indirect @@ -213,7 +213,7 @@ require ( github.com/go-openapi/runtime v0.28.0 // indirect github.com/go-openapi/spec v0.21.0 // indirect github.com/go-openapi/strfmt v0.23.0 // indirect - github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-openapi/swag v0.23.1 // indirect github.com/go-openapi/validate v0.24.0 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect @@ -233,7 +233,7 @@ require ( github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcp-sdk-go v0.138.0 // indirect + github.com/hashicorp/hcp-sdk-go v0.139.0 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect @@ -243,7 +243,7 @@ require ( github.com/kylelemons/godebug v1.1.0 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect - github.com/mailru/easyjson v0.7.7 // indirect + github.com/mailru/easyjson v0.9.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect diff --git a/go.sum b/go.sum index 19edaebc..e776e8a5 100644 --- a/go.sum +++ b/go.sum @@ -631,14 +631,14 @@ gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zum git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/1Password/connect-sdk-go v1.5.3 h1:KyjJ+kCKj6BwB2Y8tPM1Ixg5uIS6HsB0uWA8U38p/Uk= github.com/1Password/connect-sdk-go v1.5.3/go.mod h1:5rSymY4oIYtS4G3t0oMkGAXBeoYiukV3vkqlnEjIDJs= -github.com/1password/onepassword-sdk-go v0.2.0 h1:yfibWFlWg1XhJu09vXBNHQsSkrdw2dLX05dp7q5qzqk= -github.com/1password/onepassword-sdk-go v0.2.0/go.mod h1:tCgAKPZA64sVLmwizpOtFVc+OtXYHCwSp/+2Y+7CxyY= +github.com/1password/onepassword-sdk-go v0.2.1 h1:wwJmjR3UrwYxgAmNpKZ/mHOgFYCz6aQx7NxQ2YCFOL8= +github.com/1password/onepassword-sdk-go v0.2.1/go.mod h1:R+3/jgPZRbfuXrMCqrl3NM46MMbpc4Zue5S5KRv6yC8= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AlecAivazis/survey/v2 v2.3.6 h1:NvTuVHISgTHEHeBFqt6BHOe4Ny/NwGZr7w+F8S9ziyw= github.com/AlecAivazis/survey/v2 v2.3.6/go.mod h1:4AuI9b7RjAR+G7v9+C4YSlX/YL3K3cWNXgWXOhllqvI= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 h1:g0EZJwz7xkXQiZAI5xi9f3WWFYBlX1CPTrR+NDToRkQ= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0/go.mod h1:XCW7KnZet0Opnr7HccfUw1PLc4CjHqpcaxW8DHklNkQ= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.1 h1:DSDNVxqkoXJiko6x8a90zidoYqnYYa6c1MTzDKzKkTo= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.1/go.mod h1:zGqV2R4Cr/k8Uye5w+dgQ06WJtEcbQG/8J7BB6hnCr4= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 h1:F0gBpfdPLGsw+nsgk6aqqkZS1jiixa5WwFe3fk/T3Ys= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2/go.mod h1:SqINnQ9lVVdRlyC8cd1lCI0SdX4n2paeABd2K8ggfnE= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= @@ -867,8 +867,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 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.12.12 h1:1/wwnI3BfxTyC3fksWipljjdDkcVKvJmPUe4fRB3AKo= -github.com/cyberark/conjur-api-go v0.12.12/go.mod h1:XNoyT5ZBLJAGjqXmelLv+eYMG4QxYkZWiw1zld3m0QQ= +github.com/cyberark/conjur-api-go v0.12.14 h1:E/dTORBq7/wu/llODfeuWmZa3lQy1D4dHzCNcG5JlpU= +github.com/cyberark/conjur-api-go v0.12.14/go.mod h1:0ZVdpe/GzMMQyZkGV3o9bM/jswH3XrBEU9phSL0lP/g= github.com/danieljoos/wincred v1.2.2 h1:774zMFJrqaeYCK2W57BgAem/MLi6mtSE47MB6BOJ0i0= github.com/danieljoos/wincred v1.2.2/go.mod h1:w7w4Utbrz8lqeMbDAK0lkNJUv5sAOkFi7nd/ogr0Uh8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -932,8 +932,8 @@ github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lSh github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4= github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc= -github.com/extism/go-sdk v1.6.1 h1:gkbkG5KzYKrv8mLggw5ojg/JulXfEbLIRVhbw9Ot7S0= -github.com/extism/go-sdk v1.6.1/go.mod h1:yRolc4PvIUQ9J/BBB3QZ5EY1MtXAN2jqBGDGR3Sk54M= +github.com/extism/go-sdk v1.7.0 h1:yHbSa2JbcF60kjGsYiGEOcClfbknqCJchyh9TRibFWo= +github.com/extism/go-sdk v1.7.0/go.mod h1:Dhuc1qcD0aqjdqJ3ZDyGdkZPEj/EHKVjbE4P+1XRMqc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= @@ -992,8 +992,8 @@ github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9Z github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= -github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= -github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZU= +github.com/go-openapi/swag v0.23.1/go.mod h1:STZs8TbRvEQQKUA+JZNAm3EWlgaOBGpyFDqQnDHMef0= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= @@ -1207,16 +1207,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos= github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= -github.com/hashicorp/hcp-sdk-go v0.138.0 h1:AYK2N28zJjHlqzkYVAamwtikTpIMNdl+5ZyBBuuQGDY= -github.com/hashicorp/hcp-sdk-go v0.138.0/go.mod h1:1HCJgX11KAIccfyKxwqFOMNbCRMaSvCB68EkOnOTRUM= +github.com/hashicorp/hcp-sdk-go v0.139.0 h1:jvEIwYg84/ZFphNJrk5Hoa5bYj5wORHgRQcbOfeqDHY= +github.com/hashicorp/hcp-sdk-go v0.139.0/go.mod h1:ZxsZZjErm3E2sj2OjDeVsGJAkWtcRLUS+FrNLGPsUyw= github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1DdPo= github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.16.0 h1:nbEYGJiAPGzT9U4oWgaaB0g+Rj8E59QuHKyA5LhwQN4= github.com/hashicorp/vault/api v1.16.0/go.mod h1:KhuUhzOD8lDSk29AtzNjgAu2kxRA9jL9NAbkFlqvkBA= github.com/helmfile/chartify v0.21.0 h1:9t/Io07sbqcxEfsySe+phv5K95nolWZa9PQUwM43uM0= github.com/helmfile/chartify v0.21.0/go.mod h1:JLbNKmwHS1uPX78+l0RAO5Y14385EwpstvcVLj42BLo= -github.com/helmfile/vals v0.39.4 h1:BtKOCbhzy0q4IeTG5x5C3V/9EkQyawxej9CeBH47XsA= -github.com/helmfile/vals v0.39.4/go.mod h1:Tvx1p86njqghmw1a3Yylmth/QWsK6wuXrCh6cvFUCAE= +github.com/helmfile/vals v0.40.0 h1:AHHs5R2oa5bqoZ5Mk8D/jPl4GUFzABuqdANgEiPQ/2E= +github.com/helmfile/vals v0.40.0/go.mod h1:VE3/SQwG1XeMFlh+i8nn0o9qqaCIp7wRNsDO6bVYKrY= 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= @@ -1284,8 +1284,8 @@ github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= +github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= From b5b1e8eae458d219e23b3743eeaa9b969518eb05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Mar 2025 18:13:21 +0800 Subject: [PATCH 158/177] build(deps): bump github.com/helmfile/chartify from 0.21.0 to 0.21.1 (#1979) Bumps [github.com/helmfile/chartify](https://github.com/helmfile/chartify) from 0.21.0 to 0.21.1. - [Release notes](https://github.com/helmfile/chartify/releases) - [Commits](https://github.com/helmfile/chartify/compare/v0.21.0...v0.21.1) --- updated-dependencies: - dependency-name: github.com/helmfile/chartify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 47504124..299319c5 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 - github.com/helmfile/chartify v0.21.0 + github.com/helmfile/chartify v0.21.1 github.com/helmfile/vals v0.40.0 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 diff --git a/go.sum b/go.sum index e776e8a5..b58744d7 100644 --- a/go.sum +++ b/go.sum @@ -1213,8 +1213,8 @@ github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1Dd github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.16.0 h1:nbEYGJiAPGzT9U4oWgaaB0g+Rj8E59QuHKyA5LhwQN4= github.com/hashicorp/vault/api v1.16.0/go.mod h1:KhuUhzOD8lDSk29AtzNjgAu2kxRA9jL9NAbkFlqvkBA= -github.com/helmfile/chartify v0.21.0 h1:9t/Io07sbqcxEfsySe+phv5K95nolWZa9PQUwM43uM0= -github.com/helmfile/chartify v0.21.0/go.mod h1:JLbNKmwHS1uPX78+l0RAO5Y14385EwpstvcVLj42BLo= +github.com/helmfile/chartify v0.21.1 h1:xeqymvzV2AV57TvydaHY+UYQe8wIQPQzKqqsukiwY1A= +github.com/helmfile/chartify v0.21.1/go.mod h1:wnaqYYDBOyv0ktu/GEdzgJKQmwxKh79eLXQcAHnkFQk= github.com/helmfile/vals v0.40.0 h1:AHHs5R2oa5bqoZ5Mk8D/jPl4GUFzABuqdANgEiPQ/2E= github.com/helmfile/vals v0.40.0/go.mod h1:VE3/SQwG1XeMFlh+i8nn0o9qqaCIp7wRNsDO6bVYKrY= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= From 7f4440854167621ddd48f10c33dd895d89846ec8 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 31 Mar 2025 07:08:15 +0800 Subject: [PATCH 159/177] docs(fix): correct typo in 'tier=fronted' to 'tier=frontend' (#1980) Signed-off-by: yxxhero --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 46d574d7..c83a032c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -764,7 +764,7 @@ For additional context, take a look at [paths examples](paths.md). 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. +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=frontend` would only match releases with the `tier: frontend` label. Multiple labels can be specified using `,` as a separator. A release must match all selectors in order to be selected for the final helm command. From e4273d050e71ffb18fb3b212e017a1638597c57a Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Mon, 31 Mar 2025 07:24:41 +0800 Subject: [PATCH 160/177] feat: add labels for helm release (#1046) feat: add labels for k8s resources Signed-off-by: yxxhero --- cmd/apply.go | 1 + cmd/sync.go | 1 + docs/index.md | 5 ++ go.mod | 6 ++ go.sum | 22 ++++++ pkg/app/app.go | 8 ++- pkg/app/app_list_test.go | 56 +++++++-------- pkg/app/app_test.go | 15 ++-- pkg/app/config.go | 5 ++ pkg/config/apply.go | 6 ++ pkg/config/sync.go | 6 ++ pkg/state/helmx.go | 37 ++++++++++ pkg/state/helmx_test.go | 51 ++++++++++++++ pkg/state/selector_test.go | 16 ++--- pkg/state/state.go | 69 +++++++++++-------- pkg/state/temp_test.go | 12 ++-- .../output.yaml | 9 +++ .../output.yaml | 6 +- 18 files changed, 251 insertions(+), 80 deletions(-) diff --git a/cmd/apply.go b/cmd/apply.go index 8cbe4ad9..6b5a23f4 100644 --- a/cmd/apply.go +++ b/cmd/apply.go @@ -56,6 +56,7 @@ func NewApplyCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.BoolVar(&applyOptions.NoHooks, "no-hooks", false, "do not diff changes made by hooks.") f.BoolVar(&applyOptions.HideNotes, "hide-notes", false, "add --hide-notes flag to helm") f.BoolVar(&applyOptions.TakeOwnership, "take-ownership", false, "add --take-ownership flag to helm") + f.BoolVar(&applyOptions.SyncReleaseLabels, "sync-release-labels", false, "sync release labels to the target release") f.BoolVar(&applyOptions.SuppressDiff, "suppress-diff", false, "suppress diff in the output. Usable in new installs") f.BoolVar(&applyOptions.Wait, "wait", false, `Override helmDefaults.wait setting "helm upgrade --install --wait"`) f.BoolVar(&applyOptions.WaitForJobs, "wait-for-jobs", false, `Override helmDefaults.waitForJobs setting "helm upgrade --install --wait-for-jobs"`) diff --git a/cmd/sync.go b/cmd/sync.go index 418bf32c..1d8ed45f 100644 --- a/cmd/sync.go +++ b/cmd/sync.go @@ -43,6 +43,7 @@ func NewSyncCmd(globalCfg *config.GlobalImpl) *cobra.Command { f.BoolVar(&syncOptions.IncludeTransitiveNeeds, "include-transitive-needs", false, `like --include-needs, but also includes transitive needs (needs of needs). Does nothing when --selector/-l flag is not provided. Overrides exclusions of other selectors and conditions.`) f.BoolVar(&syncOptions.HideNotes, "hide-notes", false, "add --hide-notes flag to helm") f.BoolVar(&syncOptions.TakeOwnership, "take-ownership", false, `add --take-ownership flag to helm`) + f.BoolVar(&syncOptions.SyncReleaseLabels, "sync-release-labels", false, "sync release labels to the target release") f.BoolVar(&syncOptions.Wait, "wait", false, `Override helmDefaults.wait setting "helm upgrade --install --wait"`) f.BoolVar(&syncOptions.WaitForJobs, "wait-for-jobs", false, `Override helmDefaults.waitForJobs setting "helm upgrade --install --wait-for-jobs"`) f.BoolVar(&syncOptions.ReuseValues, "reuse-values", false, `Override helmDefaults.reuseValues "helm upgrade --install --reuse-values"`) diff --git a/docs/index.md b/docs/index.md index c83a032c..749a87f8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -240,6 +240,9 @@ helmDefaults: # suppressOutputLineRegex is a list of regex patterns to suppress output lines from helm diff (default []), available in helmfile v0.162.0 suppressOutputLineRegex: - "version" + # syncReleaseLabels is a list of labels to be added to the release when syncing. + syncReleaseLabels: false + # 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: @@ -369,6 +372,8 @@ releases: # suppressOutputLineRegex is a list of regex patterns to suppress output lines from helm diff (default []), available in helmfile v0.162.0 suppressOutputLineRegex: - "version" + # syncReleaseLabels is a list of labels to be added to the release when syncing. + syncReleaseLabels: false # Local chart example diff --git a/go.mod b/go.mod index 299319c5..dee386b7 100644 --- a/go.mod +++ b/go.mod @@ -138,6 +138,7 @@ require ( github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect + github.com/Masterminds/squirrel v1.5.4 // indirect github.com/ProtonMail/go-crypto v1.1.3 // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/antchfx/jsonquery v1.3.6 // indirect @@ -202,6 +203,7 @@ require ( github.com/getsops/gopgagent v0.0.0-20240527072608-0c14999532fe // indirect github.com/getsops/sops/v3 v3.9.2 // indirect github.com/go-errors/errors v1.4.2 // indirect + github.com/go-gorp/gorp/v3 v3.1.0 // indirect github.com/go-jose/go-jose/v4 v4.0.5 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -237,10 +239,13 @@ require ( github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect + github.com/jmoiron/sqlx v1.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/kylelemons/godebug v1.1.0 // indirect + github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect + github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mailru/easyjson v0.9.0 // indirect @@ -269,6 +274,7 @@ require ( github.com/prometheus/common v0.55.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect + github.com/rubenv/sql-migrate v1.7.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect github.com/tetratelabs/wabin v0.0.0-20230304001439-f6f874872834 // indirect diff --git a/go.sum b/go.sum index b58744d7..3af272f4 100644 --- a/go.sum +++ b/go.sum @@ -627,6 +627,8 @@ dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/age v1.2.1 h1:X0TZjehAZylOIj4DubWYU1vWQxv9bJpo+Uu2/LGhi1o= filippo.io/age v1.2.1/go.mod h1:JL9ew2lTN+Pyft4RiNGguFfOpewKwSHm5ayKD/A4004= +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/1Password/connect-sdk-go v1.5.3 h1:KyjJ+kCKj6BwB2Y8tPM1Ixg5uIS6HsB0uWA8U38p/Uk= @@ -684,6 +686,8 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3/go.mod h1:wP83 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= +github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4 h1:s7/zwMi5w+KnlumDVbX1+P6mNAk5o7Wvx0VmvrQ7Bm0= github.com/DopplerHQ/cli v0.5.11-0.20230908185655-7aef4713e1a4/go.mod h1:ipnA9Lpn5YM+FDSQZ7VWNjcuVurchInoGKm+v7O0sGs= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= @@ -705,6 +709,8 @@ github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7r github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs= github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0= +github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM= +github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/Microsoft/hcsshim v0.11.7 h1:vl/nj3Bar/CvJSYo7gIQPyRWc9f3c6IeSNavBTSZNZQ= @@ -964,6 +970,8 @@ github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmn github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs= +github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw= github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -998,6 +1006,8 @@ github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3Bum github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= +github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= @@ -1238,6 +1248,8 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= +github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -1275,6 +1287,10 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw= +github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o= +github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk= +github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= @@ -1300,6 +1316,8 @@ github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRC github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= +github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI= @@ -1392,6 +1410,8 @@ github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/poy/onpar v1.1.2 h1:QaNrNiZx0+Nar5dLgTVp5mXkyoVFIbepjyEoGSnhbAY= +github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjzg= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= @@ -1426,6 +1446,8 @@ github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTE github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rubenv/sql-migrate v1.7.1 h1:f/o0WgfO/GqNuVg+6801K/KW3WdDSupzSjDYODmiUq4= +github.com/rubenv/sql-migrate v1.7.1/go.mod h1:Ob2Psprc0/3ggbM6wCzyYVFFuc6FyZrb2AS+ezLDFb4= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= diff --git a/pkg/app/app.go b/pkg/app/app.go index 6529291d..65751681 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -1106,13 +1106,17 @@ func (a *App) visitStatesWithSelectorsAndRemoteSupport(fileOrDir string, converg } } - // pre-overrides HelmState + // pre-handles HelmState fHelmStatsWithOverrides := func(st *state.HelmState) (bool, []error) { var err error + // override release settings st.Releases, err = st.GetReleasesWithOverrides() if err != nil { return false, []error{err} } + + // override release labels + st.Releases = st.GetReleasesWithLabels() return f(st) } @@ -1502,6 +1506,7 @@ Do you really want to apply? SyncArgs: c.SyncArgs(), HideNotes: c.HideNotes(), TakeOwnership: c.TakeOwnership(), + SyncReleaseLabels: c.SyncReleaseLabels(), } return subst.SyncReleases(&affectedReleases, helm, c.Values(), c.Concurrency(), syncOpts) })) @@ -1900,6 +1905,7 @@ Do you really want to sync? HideNotes: c.HideNotes(), TakeOwnership: c.TakeOwnership(), SkipSchemaValidation: c.SkipSchemaValidation(), + SyncReleaseLabels: c.SyncReleaseLabels(), } return subst.SyncReleases(&affectedReleases, helm, c.Values(), c.Concurrency(), opts) })) diff --git a/pkg/app/app_list_test.go b/pkg/app/app_list_test.go index 69bbc754..d7775a83 100644 --- a/pkg/app/app_list_test.go +++ b/pkg/app/app_list_test.go @@ -159,17 +159,17 @@ releases: t.Run("default environment includes all releases", func(t *testing.T) { check(t, testcase{ environment: "default", - expected: `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION -logging kube-system true true incubator/raw -kubernetes-external-secrets kube-system true true incubator/raw -external-secrets default true true app:test incubator/raw -my-release default true true app:test incubator/raw -disabled kube-system true false incubator/raw -test2 true true incubator/raw -test3 true true incubator/raw -cache my-app true true app:test bitnami/redis 17.0.7 -database my-app true true bitnami/postgres 11.6.22 -global kube-system true true incubator/raw + expected: `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION +logging kube-system true true chart:raw,name:logging,namespace:kube-system incubator/raw +kubernetes-external-secrets kube-system true true chart:raw,name:kubernetes-external-secrets,namespace:kube-system incubator/raw +external-secrets default true true app:test,chart:raw,name:external-secrets,namespace:default incubator/raw +my-release default true true app:test,chart:raw,name:my-release,namespace:default incubator/raw +disabled kube-system true false chart:raw,name:disabled,namespace:kube-system incubator/raw +test2 true true chart:raw,name:test2,namespace: incubator/raw +test3 true true chart:raw,name:test3,namespace: incubator/raw +cache my-app true true app:test,chart:redis,name:cache,namespace:my-app bitnami/redis 17.0.7 +database my-app true true chart:postgres,name:database,namespace:my-app bitnami/postgres 11.6.22 +global kube-system true true chart:raw,name:global,namespace:kube-system incubator/raw `, }, cfg) }) @@ -185,9 +185,9 @@ global kube-system true true incubator/raw check(t, testcase{ environment: "development", selectors: []string{"app=test"}, - expected: `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION -external-secrets default true true app:test incubator/raw -my-release default true true app:test incubator/raw + expected: `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION +external-secrets default true true app:test,chart:raw,name:external-secrets,namespace:default incubator/raw +my-release default true true app:test,chart:raw,name:my-release,namespace:default incubator/raw `, }, cfg) }) @@ -195,9 +195,9 @@ my-release default true true app:test incubator/raw t.Run("filters releases for environment used in one file only", func(t *testing.T) { check(t, testcase{ environment: "test", - expected: `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION -cache my-app true true app:test bitnami/redis 17.0.7 -database my-app true true bitnami/postgres 11.6.22 + expected: `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION +cache my-app true true app:test,chart:redis,name:cache,namespace:my-app bitnami/redis 17.0.7 +database my-app true true chart:postgres,name:database,namespace:my-app bitnami/postgres 11.6.22 `, }, cfg) }) @@ -206,16 +206,16 @@ database my-app true true bitnami/postgres 11.6.22 check(t, testcase{ environment: "shared", // 'global' release has no environments, so is still excluded - expected: `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION -logging kube-system true true incubator/raw -kubernetes-external-secrets kube-system true true incubator/raw -external-secrets default true true app:test incubator/raw -my-release default true true app:test incubator/raw -disabled kube-system true false incubator/raw -test2 true true incubator/raw -test3 true true incubator/raw -cache my-app true true app:test bitnami/redis 17.0.7 -database my-app true true bitnami/postgres 11.6.22 + expected: `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION +logging kube-system true true chart:raw,name:logging,namespace:kube-system incubator/raw +kubernetes-external-secrets kube-system true true chart:raw,name:kubernetes-external-secrets,namespace:kube-system incubator/raw +external-secrets default true true app:test,chart:raw,name:external-secrets,namespace:default incubator/raw +my-release default true true app:test,chart:raw,name:my-release,namespace:default incubator/raw +disabled kube-system true false chart:raw,name:disabled,namespace:kube-system incubator/raw +test2 true true chart:raw,name:test2,namespace: incubator/raw +test3 true true chart:raw,name:test3,namespace: incubator/raw +cache my-app true true app:test,chart:redis,name:cache,namespace:my-app bitnami/redis 17.0.7 +database my-app true true chart:postgres,name:database,namespace:my-app bitnami/postgres 11.6.22 `, }, cfg) }) @@ -285,7 +285,7 @@ releases: }) assert.NoError(t, err) - expected := `[{"name":"myrelease1","namespace":"testNamespace","enabled":true,"installed":false,"labels":"id:myrelease1","chart":"mychart1","version":""},{"name":"myrelease2","namespace":"testNamespace","enabled":false,"installed":true,"labels":"","chart":"mychart1","version":""},{"name":"myrelease3","namespace":"testNamespace","enabled":true,"installed":true,"labels":"","chart":"mychart1","version":""},{"name":"myrelease4","namespace":"testNamespace","enabled":true,"installed":true,"labels":"id:myrelease1","chart":"mychart1","version":""}] + expected := `[{"name":"myrelease1","namespace":"testNamespace","enabled":true,"installed":false,"labels":"chart:mychart1,id:myrelease1,name:myrelease1,namespace:testNamespace","chart":"mychart1","version":""},{"name":"myrelease2","namespace":"testNamespace","enabled":false,"installed":true,"labels":"chart:mychart1,name:myrelease2,namespace:testNamespace","chart":"mychart1","version":""},{"name":"myrelease3","namespace":"testNamespace","enabled":true,"installed":true,"labels":"chart:mychart1,name:myrelease3,namespace:testNamespace","chart":"mychart1","version":""},{"name":"myrelease4","namespace":"testNamespace","enabled":true,"installed":true,"labels":"chart:mychart1,id:myrelease1,name:myrelease4,namespace:testNamespace","chart":"mychart1","version":""}] ` assert.Equal(t, expected, out) } diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index 66eb8829..6ac78a78 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -2259,6 +2259,7 @@ type applyConfig struct { showOnly []string hideNotes bool takeOwnership bool + syncReleaseLabels bool // template-only options includeCRDs, skipTests bool @@ -2453,6 +2454,10 @@ func (a applyConfig) TakeOwnership() bool { return a.takeOwnership } +func (a applyConfig) SyncReleaseLabels() bool { + return a.syncReleaseLabels +} + type depsConfig struct { skipRepos bool includeTransitiveNeeds bool @@ -3977,11 +3982,11 @@ releases: }) assert.NoError(t, err) - expected := `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION -myrelease1 testNamespace true false common:label,id:myrelease1 mychart1 -myrelease2 testNamespace false true common:label mychart1 -myrelease3 testNamespace true true mychart1 -myrelease4 testNamespace true true id:myrelease1 mychart1 + expected := `NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION +myrelease1 testNamespace true false chart:mychart1,common:label,id:myrelease1,name:myrelease1,namespace:testNamespace mychart1 +myrelease2 testNamespace false true chart:mychart1,common:label,name:myrelease2,namespace:testNamespace mychart1 +myrelease3 testNamespace true true chart:mychart1,name:myrelease3,namespace:testNamespace mychart1 +myrelease4 testNamespace true true chart:mychart1,id:myrelease1,name:myrelease4,namespace:testNamespace mychart1 ` assert.Equal(t, expected, out) diff --git a/pkg/app/config.go b/pkg/app/config.go index 9cacaffb..34dff76d 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -80,6 +80,8 @@ type ApplyConfigProvider interface { DiffArgs() string SyncArgs() string + SyncReleaseLabels() bool + DAGConfig concurrencyConfig @@ -112,6 +114,9 @@ type SyncConfigProvider interface { SkipNeeds() bool IncludeNeeds() bool IncludeTransitiveNeeds() bool + + SyncReleaseLabels() bool + DAGConfig concurrencyConfig diff --git a/pkg/config/apply.go b/pkg/config/apply.go index 837359b9..7cfc6d3c 100644 --- a/pkg/config/apply.go +++ b/pkg/config/apply.go @@ -71,6 +71,8 @@ type ApplyOptions struct { // TakeOwnership is true if the ownership should be taken TakeOwnership bool + + SyncReleaseLabels bool } // NewApply creates a new Apply @@ -266,3 +268,7 @@ func (a *ApplyImpl) HideNotes() bool { func (a *ApplyImpl) TakeOwnership() bool { return a.ApplyOptions.TakeOwnership } + +func (a *ApplyImpl) SyncReleaseLabels() bool { + return a.ApplyOptions.SyncReleaseLabels +} diff --git a/pkg/config/sync.go b/pkg/config/sync.go index 033f82ed..71d38034 100644 --- a/pkg/config/sync.go +++ b/pkg/config/sync.go @@ -42,6 +42,8 @@ type SyncOptions struct { HideNotes bool // TakeOwnership is the take ownership flag TakeOwnership bool + // SyncReleaseLabels is the sync release labels flag + SyncReleaseLabels bool } // NewSyncOptions creates a new Apply @@ -167,3 +169,7 @@ func (t *SyncImpl) HideNotes() bool { func (t *SyncImpl) TakeOwnership() bool { return t.SyncOptions.TakeOwnership } + +func (t *SyncImpl) SyncReleaseLabels() bool { + return t.SyncOptions.SyncReleaseLabels +} diff --git a/pkg/state/helmx.go b/pkg/state/helmx.go index 2988a605..00d29cac 100644 --- a/pkg/state/helmx.go +++ b/pkg/state/helmx.go @@ -4,9 +4,13 @@ import ( "fmt" "os" "path/filepath" + "slices" + "sort" "strconv" + "strings" "github.com/helmfile/chartify" + "helm.sh/helm/v3/pkg/storage/driver" "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/remote" @@ -26,6 +30,39 @@ func (st *HelmState) appendHelmXFlags(flags []string, release *ReleaseSpec) []st return flags } +func formatLabels(labels map[string]string) string { + var labelsList, keys []string + for k := range labels { + if k == "" || slices.Contains(driver.GetSystemLabels(), k) { + continue + } + + keys = append(keys, k) + } + sort.Strings(keys) + + if len(keys) == 0 { + return "" + } + + for _, k := range keys { + val := labels[k] + labelsList = append(labelsList, fmt.Sprintf("%s=%s", k, val)) + } + return strings.Join(labelsList, ",") +} + +// append labels flags to helm flags, starting from helm v3.13.0 +func (st *HelmState) appendLabelsFlags(flags []string, helm helmexec.Interface, release *ReleaseSpec, syncReleaseLabels bool) []string { + if helm.IsVersionAtLeast("3.13.0") && (syncReleaseLabels || release.SyncReleaseLabels) { + labels := formatLabels(release.Labels) + if labels != "" { + flags = append(flags, "--labels", labels) + } + } + return flags +} + // append post-renderer flags to helm flags func (st *HelmState) appendPostRenderFlags(flags []string, release *ReleaseSpec, postRenderer string) []string { switch { diff --git a/pkg/state/helmx_test.go b/pkg/state/helmx_test.go index d60cd225..76f4300d 100644 --- a/pkg/state/helmx_test.go +++ b/pkg/state/helmx_test.go @@ -431,3 +431,54 @@ func TestAppendTakeOwnershipFlags(t *testing.T) { }) } } + +func TestFormatLabels(t *testing.T) { + tests := []struct { + name string + labels map[string]string + want string + }{ + { + name: "empty labels", + labels: map[string]string{}, + want: "", + }, + { + name: "single label", + labels: map[string]string{"foo": "bar"}, + want: "foo=bar", + }, + { + name: "multiple labels", + labels: map[string]string{"foo": "bar", "baz": "qux"}, + want: "baz=qux,foo=bar", + }, + { + name: "multiple labels with empty value", + labels: map[string]string{"foo": "bar", "baz": "qux", "quux": ""}, + want: "baz=qux,foo=bar,quux=", + }, + { + name: "multiple labels with empty key", + labels: map[string]string{"foo": "bar", "baz": "qux", "": "quux"}, + want: "baz=qux,foo=bar", + }, + { + name: "empty label value", + labels: map[string]string{"foo": ""}, + want: "foo=", + }, + { + name: "empty label key", + labels: map[string]string{"": "bar"}, + want: "", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := formatLabels(tt.labels) + require.Equal(t, tt.want, got, "formatLabels() = %v, want %v", got, tt.want) + }) + } +} diff --git a/pkg/state/selector_test.go b/pkg/state/selector_test.go index 787a79c3..e955aed4 100644 --- a/pkg/state/selector_test.go +++ b/pkg/state/selector_test.go @@ -108,14 +108,14 @@ func TestSelectReleasesWithOverrides(t *testing.T) { }.MustLoadState(t, "/helmfile.yaml", "default") for _, tc := range testcases { + var err error state.Selectors = tc.selector - releases, err := state.GetReleasesWithOverrides() - state.Releases = releases - + state.Releases, err = state.GetReleasesWithOverrides() if err != nil { t.Fatalf("%s %s: %v", tc.selector, tc.subject, err) } + state.Releases = state.GetReleasesWithLabels() rs, err := state.GetSelectedReleases(false) if err != nil { @@ -144,13 +144,13 @@ func TestSelectReleasesWithOverridesWithIncludedTransitives(t *testing.T) { testcases := []testcase{ { - subject: "include transitives", + subject: "include transitives is false", selector: []string{"name=serviceA"}, want: []string{"serviceA"}, includeTransitiveNeeds: false, }, { - subject: "include transitives", + subject: "include transitives is true", selector: []string{"name=serviceA"}, want: []string{"serviceA", "serviceB", "serviceC"}, includeTransitiveNeeds: true, @@ -184,13 +184,13 @@ func TestSelectReleasesWithOverridesWithIncludedTransitives(t *testing.T) { }.MustLoadState(t, "/helmfile.yaml", "default") for _, tc := range testcases { + var err error state.Selectors = tc.selector - releases, err := state.GetReleasesWithOverrides() + state.Releases, err = state.GetReleasesWithOverrides() if err != nil { t.Fatalf("%s %s: %v", tc.selector, tc.subject, err) } - - state.Releases = releases + state.Releases = state.GetReleasesWithLabels() rs, err := state.GetSelectedReleases(tc.includeTransitiveNeeds) if err != nil { diff --git a/pkg/state/state.go b/pkg/state/state.go index 681c3122..8d090723 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -7,7 +7,6 @@ import ( "errors" "fmt" "io" - "maps" "net/url" "os" "path/filepath" @@ -208,6 +207,8 @@ type HelmSpec struct { DeleteWait bool `yaml:"deleteWait"` // Timeout is the time in seconds to wait for helmfile delete command (default 300) DeleteTimeout int `yaml:"deleteTimeout"` + // SyncReleaseLabels is true if the release labels should be synced with the helmfile labels + SyncReleaseLabels bool `yaml:"syncReleaseLabels"` } // RepositorySpec that defines values for a helm repo @@ -408,6 +409,8 @@ type ReleaseSpec struct { DeleteWait *bool `yaml:"deleteWait,omitempty"` // Timeout is the time in seconds to wait for helmfile delete command (default 300) DeleteTimeout *int `yaml:"deleteTimeout,omitempty"` + // SyncReleaseLabels is true if the release labels should be synced with the helmfile labels + SyncReleaseLabels bool `yaml:"syncReleaseLabels"` } func (r *Inherits) UnmarshalYAML(unmarshal func(any) error) error { @@ -783,6 +786,7 @@ type SyncOpts struct { Wait bool WaitRetries int WaitForJobs bool + SyncReleaseLabels bool ReuseValues bool ResetValues bool PostRenderer string @@ -2262,16 +2266,40 @@ func (st *HelmState) GetReleasesWithOverrides() ([]ReleaseSpec, error) { return rs, nil } +func (st *HelmState) GetReleasesWithLabels() []ReleaseSpec { + var rs []ReleaseSpec + for _, r := range st.Releases { + spec := r + labels := map[string]string{} + // apply common labels + for k, v := range st.CommonLabels { + labels[k] = v + } + for k, v := range spec.Labels { + labels[k] = v + } + // Let the release name, namespace, and chart be used as a tag + labels["name"] = r.Name + labels["namespace"] = r.Namespace + // Strip off just the last portion for the name stable/newrelic would give newrelic + chartSplit := strings.Split(r.Chart, "/") + labels["chart"] = chartSplit[len(chartSplit)-1] + spec.Labels = labels + rs = append(rs, spec) + } + return rs +} + func (st *HelmState) SelectReleases(includeTransitiveNeeds bool) ([]Release, error) { values := st.Values() - rs, err := markExcludedReleases(st.Releases, st.Selectors, st.CommonLabels, values, includeTransitiveNeeds) + rs, err := markExcludedReleases(st.Releases, st.Selectors, values, includeTransitiveNeeds) if err != nil { return nil, err } return rs, nil } -func markExcludedReleases(releases []ReleaseSpec, selectors []string, commonLabels map[string]string, values map[string]any, includeTransitiveNeeds bool) ([]Release, error) { +func markExcludedReleases(releases []ReleaseSpec, selectors []string, values map[string]any, includeTransitiveNeeds bool) ([]Release, error) { var filteredReleases []Release filters := []ReleaseFilter{} for _, label := range selectors { @@ -2282,29 +2310,8 @@ func markExcludedReleases(releases []ReleaseSpec, selectors []string, commonLabe filters = append(filters, f) } for _, r := range releases { - orginReleaseLabel := maps.Clone(r.Labels) - if r.Labels == nil { - r.Labels = map[string]string{} - } else { - // Make a copy of the labels to avoid mutating the original - r.Labels = maps.Clone(r.Labels) - } - // 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 { - if r.Labels == nil { - r.Labels = map[string]string{} - } if f.Match(r) { filterMatch = true break @@ -2316,7 +2323,6 @@ func markExcludedReleases(releases []ReleaseSpec, selectors []string, commonLabe return nil, fmt.Errorf("failed to parse condition in release %s: %w", r.Name, err) } // reset the labels to the original - r.Labels = orginReleaseLabel res := Release{ ReleaseSpec: r, Filtered: (len(filters) > 0 && !filterMatch) || (!conditionMatch), @@ -2776,15 +2782,20 @@ func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSp flags = append(flags, "--disable-openapi-validation") } + postRenderer := "" + syncReleaseLabels := false + if opt != nil { + postRenderer = opt.PostRenderer + syncReleaseLabels = opt.SyncReleaseLabels + } + flags = st.appendConnectionFlags(flags, release) flags = st.appendChartDownloadFlags(flags, release) flags = st.appendHelmXFlags(flags, release) - postRenderer := "" - if opt != nil { - postRenderer = opt.PostRenderer - } + flags = st.appendLabelsFlags(flags, helm, release, syncReleaseLabels) + flags = st.appendPostRenderFlags(flags, release, postRenderer) var postRendererArgs []string diff --git a/pkg/state/temp_test.go b/pkg/state/temp_test.go index 596d2dde..90eb5f45 100644 --- a/pkg/state/temp_test.go +++ b/pkg/state/temp_test.go @@ -38,39 +38,39 @@ func TestGenerateID(t *testing.T) { run(testcase{ subject: "baseline", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, - want: "foo-values-669d45cd7b", + want: "foo-values-6584bf5db7", }) run(testcase{ subject: "different bytes content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: []byte(`{"k":"v"}`), - want: "foo-values-67d8c67fcf", + want: "foo-values-6b8c446b76", }) run(testcase{ subject: "different map content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: map[string]any{"k": "v"}, - want: "foo-values-b9bc64677", + want: "foo-values-6b499b6fb6", }) run(testcase{ subject: "different chart", release: ReleaseSpec{Name: "foo", Chart: "stable/envoy"}, - want: "foo-values-585c4565f5", + want: "foo-values-775cbccfb", }) run(testcase{ subject: "different name", release: ReleaseSpec{Name: "bar", Chart: "incubator/raw"}, - want: "bar-values-c94846459", + want: "bar-values-849dcf78b4", }) run(testcase{ subject: "specific ns", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw", Namespace: "myns"}, - want: "myns-foo-values-798d69477", + want: "myns-foo-values-d57499c58", }) for id, n := range ids { diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml index fb2d2b51..c7d30230 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/issue_2098_release_template_needs/output.yaml @@ -15,7 +15,11 @@ releases: name: default-shared-resources namespace: default labels: + chart: util + name: default-shared-resources + namespace: default service: shared-resources + syncReleaseLabels: false - chart: aservo/util version: 0.0.1 needs: @@ -23,9 +27,14 @@ releases: name: default-release-resources namespace: default labels: + chart: util + name: default-release-resources + namespace: default service: release-resources + syncReleaseLabels: false templates: defaults: name: default-{{ .Release.Labels.service }} namespace: default + syncReleaseLabels: false renderedvalues: {} diff --git a/test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/output.yaml b/test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/output.yaml index d799a9aa..9c7b08f7 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/output.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/issue_493_template_yaml_anchors_merge/output.yaml @@ -1,3 +1,3 @@ -NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION -release1 myNamespace true true app:myapp,group:myGroup,project:myProject test -release2 myNamespace true true app:myapp,group:myGroup,project:myProject test +NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION +release1 myNamespace true true app:myapp,chart:test,group:myGroup,name:release1,namespace:myNamespace,project:myProject test +release2 myNamespace true true app:myapp,chart:test,group:myGroup,name:release2,namespace:myNamespace,project:myProject test From 97d851afb71f3f40fceeb0bd9c3634165c8d117b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Mar 2025 23:40:51 +0000 Subject: [PATCH 161/177] build(deps): bump github.com/helmfile/vals from 0.40.0 to 0.40.1 (#1981) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index dee386b7..5f91e3fe 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 github.com/helmfile/chartify v0.21.1 - github.com/helmfile/vals v0.40.0 + github.com/helmfile/vals v0.40.1 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 diff --git a/go.sum b/go.sum index 3af272f4..55b5f791 100644 --- a/go.sum +++ b/go.sum @@ -1225,8 +1225,8 @@ github.com/hashicorp/vault/api v1.16.0 h1:nbEYGJiAPGzT9U4oWgaaB0g+Rj8E59QuHKyA5L github.com/hashicorp/vault/api v1.16.0/go.mod h1:KhuUhzOD8lDSk29AtzNjgAu2kxRA9jL9NAbkFlqvkBA= github.com/helmfile/chartify v0.21.1 h1:xeqymvzV2AV57TvydaHY+UYQe8wIQPQzKqqsukiwY1A= github.com/helmfile/chartify v0.21.1/go.mod h1:wnaqYYDBOyv0ktu/GEdzgJKQmwxKh79eLXQcAHnkFQk= -github.com/helmfile/vals v0.40.0 h1:AHHs5R2oa5bqoZ5Mk8D/jPl4GUFzABuqdANgEiPQ/2E= -github.com/helmfile/vals v0.40.0/go.mod h1:VE3/SQwG1XeMFlh+i8nn0o9qqaCIp7wRNsDO6bVYKrY= +github.com/helmfile/vals v0.40.1 h1:qveElGFgT5nyVk9DjGJTqiy4Tp0SaPD1x1GujnQWdqE= +github.com/helmfile/vals v0.40.1/go.mod h1:VE3/SQwG1XeMFlh+i8nn0o9qqaCIp7wRNsDO6bVYKrY= 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= From 2076515c5df52c010d32e6842df65f2a5a6fe9f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Apr 2025 07:08:54 +0800 Subject: [PATCH 162/177] build(deps): bump github.com/goccy/go-yaml from 1.16.0 to 1.17.1 (#1982) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.16.0 to 1.17.1. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/goccy/go-yaml/compare/v1.16.0...v1.17.1) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5f91e3fe..6aae7e55 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-test/deep v1.1.1 - github.com/goccy/go-yaml v1.16.0 + github.com/goccy/go-yaml v1.17.1 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.7.0 github.com/gosuri/uitable v0.0.4 diff --git a/go.sum b/go.sum index 55b5f791..881feac1 100644 --- a/go.sum +++ b/go.sum @@ -1018,8 +1018,8 @@ github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.16.0 h1:d7m1G7A0t+logajVtklHfDYJs2Et9g3gHwdBNNFou0w= -github.com/goccy/go-yaml v1.16.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.17.1 h1:LI34wktB2xEE3ONG/2Ar54+/HJVBriAGJ55PHls4YuY= +github.com/goccy/go-yaml v1.17.1/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= 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= From c9a2e76200ef37cc06c838cbe1660e599bd9f8d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Arnqvist?= <58822152+aarnq@users.noreply.github.com> Date: Mon, 7 Apr 2025 15:57:02 +0200 Subject: [PATCH 163/177] fix: Check needs with context and namespace (#1986) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: Check needs with context and namespace Signed-off-by: André Arnqvist * fix: Ensure releases have overrides Signed-off-by: André Arnqvist * fix: Run go fmt Signed-off-by: André Arnqvist * fix: Add tests checking needs with same name in different namespaces Signed-off-by: André Arnqvist * fix: Simplify setting overrides Signed-off-by: André Arnqvist --------- Signed-off-by: André Arnqvist --- pkg/app/app_test.go | 29 +++++++++++++ pkg/app/diff_test.go | 28 ++++++++++++ .../testdata/app_diff_test_1/bar_is_disabled | 18 ++++++++ .../bar_and_ns2/bar_is_disabled/log | 43 +++++++++++++++++++ pkg/state/state.go | 19 ++++++-- 5 files changed, 133 insertions(+), 4 deletions(-) create mode 100644 pkg/app/testdata/app_diff_test_1/bar_is_disabled create mode 100644 pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns1/bar_and_ns2/bar_is_disabled/log diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index 6ac78a78..67e6f8a2 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -3219,6 +3219,35 @@ releases: {Name: "bar", Flags: []string{"--kube-context", "default", "--namespace", "ns2"}}, }, }, + { + name: "upgrade when ns1/foo needs ns1/bar and ns2/bar is disabled", + loc: location(), + files: map[string]string{ + "/path/to/helmfile.yaml": ` +releases: +- name: bar + chart: stable/mychart2 + namespace: ns1 +- name: bar + chart: stable/mychart2 + namespace: ns2 + installed: false +- name: foo + chart: stable/mychart1 + namespace: ns1 + needs: + - ns1/bar +`, + }, + diffs: map[exectest.DiffKey]error{ + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + }, + upgraded: []exectest.Release{ + {Name: "bar", Flags: []string{"--kube-context", "default", "--namespace", "ns1"}}, + {Name: "foo", Flags: []string{"--kube-context", "default", "--namespace", "ns1"}}, + }, + }, // // deletes: deleting all releases in the correct order // diff --git a/pkg/app/diff_test.go b/pkg/app/diff_test.go index 372badff..4dd63f94 100644 --- a/pkg/app/diff_test.go +++ b/pkg/app/diff_test.go @@ -533,6 +533,34 @@ releases: }, upgraded: []exectest.Release{}, }, + { + name: "upgrade when ns1/foo needs ns1/bar and ns2/bar is disabled", + loc: location(), + files: map[string]string{ + "/path/to/helmfile.yaml": ` +releases: +- name: bar + chart: mychart2 + namespace: ns1 +- name: bar + chart: mychart2 + namespace: ns2 + installed: false +- name: foo + chart: mychart1 + namespace: ns1 + needs: + - ns1/bar +`, + }, + detailedExitcode: true, + error: "Identified at least one change", + diffs: map[exectest.DiffKey]error{ + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + }, + upgraded: []exectest.Release{}, + }, { name: "upgrade when tns1 ns1 foo needs tns2 ns2 bar", loc: location(), diff --git a/pkg/app/testdata/app_diff_test_1/bar_is_disabled b/pkg/app/testdata/app_diff_test_1/bar_is_disabled new file mode 100644 index 00000000..219f70e2 --- /dev/null +++ b/pkg/app/testdata/app_diff_test_1/bar_is_disabled @@ -0,0 +1,18 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +3 release(s) found in helmfile.yaml + +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/ns1/bar +2 default/ns1/foo + +processing releases in group 1/2: default/ns1/bar +processing releases in group 2/2: default/ns1/foo +Affected releases are: + bar (mychart2) DELETED + bar (mychart2) UPDATED + foo (mychart1) UPDATED + +changing working directory back to "/path/to" diff --git a/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns1/bar_and_ns2/bar_is_disabled/log b/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns1/bar_and_ns2/bar_is_disabled/log new file mode 100644 index 00000000..36eb250f --- /dev/null +++ b/pkg/app/testdata/testapply/upgrade_when_ns1/foo_needs_ns1/bar_and_ns2/bar_is_disabled/log @@ -0,0 +1,43 @@ +processing file "helmfile.yaml" in directory "." +changing working directory to "/path/to" +merged environment: &{default map[] map[]} +3 release(s) found in helmfile.yaml + +Affected releases are: + bar (stable/mychart2) DELETED + bar (stable/mychart2) UPDATED + foo (stable/mychart1) UPDATED + +invoking preapply hooks for 2 groups of releases in this order: +GROUP RELEASES +1 default/ns1/foo +2 default/ns1/bar, default/ns2/bar + +invoking preapply hooks for releases in group 1/2: default/ns1/foo +invoking preapply hooks for releases in group 2/2: default/ns1/bar, default/ns2/bar +processing 1 groups of releases in this order: +GROUP RELEASES +1 default/ns2/bar + +processing releases in group 1/1: default/ns2/bar +processing 2 groups of releases in this order: +GROUP RELEASES +1 default/ns1/bar +2 default/ns1/foo + +processing releases in group 1/2: default/ns1/bar +getting deployed release version failed: Failed to get the version for: mychart2 +processing releases in group 2/2: default/ns1/foo +getting deployed release version failed: Failed to get the version for: mychart1 + +UPDATED RELEASES: +NAME NAMESPACE CHART VERSION DURATION +bar ns1 stable/mychart2 0s +foo ns1 stable/mychart1 0s + + +DELETED RELEASES: +NAME NAMESPACE DURATION +bar ns2 0s + +changing working directory back to "/path/to" diff --git a/pkg/state/state.go b/pkg/state/state.go index 8d090723..47cdde12 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -488,7 +488,17 @@ func (st *HelmState) reformat(spec *ReleaseSpec) []string { var needs []string releaseInstalledInfo := make(map[string]bool) for _, r := range st.OrginReleases { - releaseInstalledInfo[r.Name] = r.Desired() + kubecontext := r.KubeContext + namespace := r.Namespace + + if st.OverrideKubeContext != "" { + kubecontext = st.OverrideKubeContext + } + if st.OverrideNamespace != "" { + namespace = st.OverrideNamespace + } + + releaseInstalledInfo[fmt.Sprintf("%s/%s/%s", kubecontext, namespace, r.Name)] = r.Desired() } // Since the representation differs between needs and id, @@ -501,9 +511,6 @@ func (st *HelmState) reformat(spec *ReleaseSpec) []string { components := strings.Split(n, "/") name = components[len(components)-1] - if spec.Desired() && !releaseInstalledInfo[name] { - st.logger.Warnf("WARNING: %s", fmt.Sprintf("release %s needs %s, but %s is not installed due to installed: false. Either mark %s as installed or remove %s from %s's needs", spec.Name, name, name, name, name, spec.Name)) - } if len(components) > 1 { ns = components[len(components)-2] @@ -519,6 +526,10 @@ func (st *HelmState) reformat(spec *ReleaseSpec) []string { kubecontext = spec.KubeContext } + if spec.Desired() && !releaseInstalledInfo[fmt.Sprintf("%s/%s/%s", kubecontext, ns, name)] { + st.logger.Warnf("WARNING: %s", fmt.Sprintf("release %s needs %s, but %s is not installed due to installed: false. Either mark %s as installed or remove %s from %s's needs", spec.Name, name, name, name, name, spec.Name)) + } + var componentsAfterOverride []string if kubecontext != "" { From c7a1e421e0a7ef2d0c61f04ca0765020ed491d08 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 16:03:01 -0400 Subject: [PATCH 164/177] build(deps): bump golang.org/x/sync from 0.12.0 to 0.13.0 (#1991) Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.12.0 to 0.13.0. - [Commits](https://github.com/golang/sync/compare/v0.12.0...v0.13.0) --- updated-dependencies: - dependency-name: golang.org/x/sync dependency-version: 0.13.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6aae7e55..b6f1521a 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/zclconf/go-cty-yaml v1.1.0 go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.12.0 + golang.org/x/sync v0.13.0 golang.org/x/term v0.30.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.17.2 diff --git a/go.sum b/go.sum index 881feac1..702568d9 100644 --- a/go.sum +++ b/go.sum @@ -1794,8 +1794,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= +golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= 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= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= From dfe63135d6d311e767e35f960781054d4eeecf3c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Apr 2025 07:15:43 +0800 Subject: [PATCH 165/177] build(deps): bump golang.org/x/term from 0.30.0 to 0.31.0 (#1990) Bumps [golang.org/x/term](https://github.com/golang/term) from 0.30.0 to 0.31.0. - [Commits](https://github.com/golang/term/compare/v0.30.0...v0.31.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-version: 0.31.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index b6f1521a..abb40c12 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( go.szostok.io/version v1.2.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.13.0 - golang.org/x/term v0.30.0 + golang.org/x/term v0.31.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.17.2 k8s.io/apimachinery v0.32.3 @@ -97,7 +97,7 @@ require ( go.uber.org/atomic v1.9.0 // indirect golang.org/x/net v0.37.0 // indirect golang.org/x/oauth2 v0.28.0 // indirect - golang.org/x/sys v0.31.0 // indirect + golang.org/x/sys v0.32.0 // indirect golang.org/x/text v0.23.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/api v0.215.0 // indirect diff --git a/go.sum b/go.sum index 702568d9..53313fa2 100644 --- a/go.sum +++ b/go.sum @@ -1885,8 +1885,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= +golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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= @@ -1902,8 +1902,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= -golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= +golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= +golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= 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= From eb32b6166ec7cbd5ba6098f546db85ffbd33fbb1 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Tue, 8 Apr 2025 21:28:54 +0800 Subject: [PATCH 166/177] fix(state): enhance error message for missing .gotmpl extension in helmfile v1 (#1989) * fix(state): enhance error message for missing .gotmpl extension in helmfile Signed-off-by: yxxhero --- pkg/app/app_template_test.go | 4 ++-- pkg/state/create.go | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/app/app_template_test.go b/pkg/app/app_template_test.go index a29b1fea..e42122e1 100644 --- a/pkg/app/app_template_test.go +++ b/pkg/app/app_template_test.go @@ -414,7 +414,7 @@ releases: t.Run("fail due to unknown field with goccy/go-yaml", func(t *testing.T) { check(t, testcase{ goccyGoYaml: true, - error: `in ./helmfile.yaml: failed to read helmfile.yaml: reading document at index 1: [4:3] unknown field "foobar" + error: `in ./helmfile.yaml: failed to read helmfile.yaml: reading document at index 1. Started seeing this since Helmfile v1? Add the .gotmpl file extension: [4:3] unknown field "foobar" 2 | releases: 3 | - name: app1 > 4 | foobar: FOOBAR @@ -426,7 +426,7 @@ releases: t.Run("fail due to unknown field with gopkg.in/yaml.v2", func(t *testing.T) { check(t, testcase{ goccyGoYaml: false, - error: `in ./helmfile.yaml: failed to read helmfile.yaml: reading document at index 1: yaml: unmarshal errors: + error: `in ./helmfile.yaml: failed to read helmfile.yaml: reading document at index 1. Started seeing this since Helmfile v1? Add the .gotmpl file extension: yaml: unmarshal errors: line 4: field foobar not found in type state.ReleaseSpec`, }) }) diff --git a/pkg/state/create.go b/pkg/state/create.go index 9ca5d2e1..b175faf9 100644 --- a/pkg/state/create.go +++ b/pkg/state/create.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "io" + "path/filepath" "slices" "strings" @@ -109,6 +110,9 @@ func (c *StateCreator) Parse(content []byte, baseDir, file string) (*HelmState, if err == io.EOF { break } else if err != nil { + if filepath.Ext(file) != ".gotmpl" { + return nil, &StateLoadError{fmt.Sprintf("failed to read %s: reading document at index %d. Started seeing this since Helmfile v1? Add the .gotmpl file extension", file, i), err} + } return nil, &StateLoadError{fmt.Sprintf("failed to read %s: reading document at index %d", file, i), err} } From 1cbe9401176ea2a64d95d7fef54bb3e2e309289c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 07:16:30 +0800 Subject: [PATCH 167/177] build(deps): bump github.com/helmfile/chartify from 0.21.1 to 0.22.0 (#1996) Bumps [github.com/helmfile/chartify](https://github.com/helmfile/chartify) from 0.21.1 to 0.22.0. - [Release notes](https://github.com/helmfile/chartify/releases) - [Commits](https://github.com/helmfile/chartify/compare/v0.21.1...v0.22.0) --- updated-dependencies: - dependency-name: github.com/helmfile/chartify dependency-version: 0.22.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index abb40c12..efc70bd2 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/gosuri/uitable v0.0.4 github.com/hashicorp/go-getter v1.7.8 github.com/hashicorp/hcl/v2 v2.23.0 - github.com/helmfile/chartify v0.21.1 + github.com/helmfile/chartify v0.22.0 github.com/helmfile/vals v0.40.1 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 @@ -29,7 +29,7 @@ require ( golang.org/x/sync v0.13.0 golang.org/x/term v0.31.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.17.2 + helm.sh/helm/v3 v3.17.3 k8s.io/apimachinery v0.32.3 ) diff --git a/go.sum b/go.sum index 53313fa2..f68f88fc 100644 --- a/go.sum +++ b/go.sum @@ -1223,8 +1223,8 @@ github.com/hashicorp/jsonapi v1.3.1 h1:GtPvnmcWgYwCuDGvYT5VZBHcUyFdq9lSyCzDjn1Dd github.com/hashicorp/jsonapi v1.3.1/go.mod h1:kWfdn49yCjQvbpnvY1dxxAuAFzISwrrMDQOcu6NsFoM= github.com/hashicorp/vault/api v1.16.0 h1:nbEYGJiAPGzT9U4oWgaaB0g+Rj8E59QuHKyA5LhwQN4= github.com/hashicorp/vault/api v1.16.0/go.mod h1:KhuUhzOD8lDSk29AtzNjgAu2kxRA9jL9NAbkFlqvkBA= -github.com/helmfile/chartify v0.21.1 h1:xeqymvzV2AV57TvydaHY+UYQe8wIQPQzKqqsukiwY1A= -github.com/helmfile/chartify v0.21.1/go.mod h1:wnaqYYDBOyv0ktu/GEdzgJKQmwxKh79eLXQcAHnkFQk= +github.com/helmfile/chartify v0.22.0 h1:spw2kNBEToes3zc1N5GvqMiVVuCRSDeUap8ZUdEPcmE= +github.com/helmfile/chartify v0.22.0/go.mod h1:cA9A0rSqDkR5sdga1gSyv0y9ebEf4loPfUsSHO+eDdo= github.com/helmfile/vals v0.40.1 h1:qveElGFgT5nyVk9DjGJTqiy4Tp0SaPD1x1GujnQWdqE= github.com/helmfile/vals v0.40.1/go.mod h1:VE3/SQwG1XeMFlh+i8nn0o9qqaCIp7wRNsDO6bVYKrY= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= @@ -2314,8 +2314,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -helm.sh/helm/v3 v3.17.2 h1:agYQ5ew2jq5vdx2K7q5W44KyKQrnSubUMCQsjkiv3/o= -helm.sh/helm/v3 v3.17.2/go.mod h1:+uJKMH/UiMzZQOALR3XUf3BLIoczI2RKKD6bMhPh4G8= +helm.sh/helm/v3 v3.17.3 h1:3n5rW3D0ArjFl0p4/oWO8IbY/HKaNNwJtOQFdH2AZHg= +helm.sh/helm/v3 v3.17.3/go.mod h1:+uJKMH/UiMzZQOALR3XUf3BLIoczI2RKKD6bMhPh4G8= 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= From aa6af7c2729db1e0f475c22c1d3e8e49975bb25c Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Fri, 11 Apr 2025 19:10:56 +0800 Subject: [PATCH 168/177] build: update Helm plugin versions in CI and Dockerfiles (#1995) Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 16 ++++++++-------- Dockerfile | 8 ++++---- Dockerfile.debian-stable-slim | 8 ++++---- Dockerfile.ubuntu | 8 ++++---- pkg/app/init.go | 8 ++++---- test/integration/run.sh | 2 +- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5621f6e6..1e4ea479 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -57,7 +57,7 @@ jobs: - helm-version: v3.16.4 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 - plugin-diff-version: 3.8.1 + plugin-diff-version: 3.10.0 extra-helmfile-flags: '' - helm-version: v3.16.4 kustomize-version: v5.4.3 @@ -66,25 +66,25 @@ jobs: # Once it turned out to be not practically true, # we will mark this combination as failable, # and instruct users to upgrade helm and helm-secrets at once. - plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.14 + plugin-secrets-version: 4.6.3 + plugin-diff-version: 3.11.0 extra-helmfile-flags: '' - helm-version: v3.17.2 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 - plugin-diff-version: 3.8.1 + plugin-diff-version: 3.10.0 extra-helmfile-flags: '' - helm-version: v3.17.2 kustomize-version: v5.4.3 - plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.14 + plugin-secrets-version: 4.6.3 + plugin-diff-version: 3.11.0 extra-helmfile-flags: '' # In case you need to test some optional helmfile features, # enable it via extra-helmfile-flags below. - helm-version: v3.17.2 kustomize-version: v5.4.3 - plugin-secrets-version: 4.6.0 - plugin-diff-version: 3.9.14 + plugin-secrets-version: 4.6.3 + plugin-diff-version: 3.11.0 extra-helmfile-flags: '--enable-live-output' steps: - uses: actions/checkout@v4 diff --git a/Dockerfile b/Dockerfile index be857257..26a92e05 100644 --- a/Dockerfile +++ b/Dockerfile @@ -93,10 +93,10 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.14 && \ - helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ - helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ - helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.11.0 && \ + helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.3 && \ + helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.3 && \ + helm plugin install https://github.com/aslafy-z/helm-git.git --version v1.3.0 && \ rm -rf ${HELM_CACHE_HOME}/plugins # Allow users other than root to use helm plugins located in root home diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index 163ccb7f..5aa5dd00 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -99,10 +99,10 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.14 && \ - helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ - helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ - helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.11.0 && \ + helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.3 && \ + helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.3 && \ + helm plugin install https://github.com/aslafy-z/helm-git.git --version v1.3.0 && \ rm -rf ${HELM_CACHE_HOME}/plugins # Allow users other than root to use helm plugins located in root home diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 228efe18..438a74df 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -99,10 +99,10 @@ RUN set -x && \ [ "$(age --version)" = "${AGE_VERSION}" ] && \ [ "$(age-keygen --version)" = "${AGE_VERSION}" ] -RUN helm plugin install https://github.com/databus23/helm-diff --version v3.9.14 && \ - helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.0 && \ - helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.2 && \ - helm plugin install https://github.com/aslafy-z/helm-git.git --version v0.16.0 && \ +RUN helm plugin install https://github.com/databus23/helm-diff --version v3.11.0 && \ + helm plugin install https://github.com/jkroepke/helm-secrets --version v4.6.3 && \ + helm plugin install https://github.com/hypnoglow/helm-s3.git --version v0.16.3 && \ + helm plugin install https://github.com/aslafy-z/helm-git.git --version v1.3.0 && \ rm -rf ${HELM_CACHE_HOME}/plugins # Allow users other than root to use helm plugins located in root home diff --git a/pkg/app/init.go b/pkg/app/init.go index 76243674..b0112286 100644 --- a/pkg/app/init.go +++ b/pkg/app/init.go @@ -19,10 +19,10 @@ import ( const ( HelmRequiredVersion = "v3.16.4" HelmRecommendedVersion = "v3.17.2" - HelmDiffRecommendedVersion = "v3.9.14" - HelmSecretsRecommendedVersion = "v4.6.0" - HelmGitRecommendedVersion = "v0.15.1" - HelmS3RecommendedVersion = "v0.16.0" + HelmDiffRecommendedVersion = "v3.11.0" + HelmSecretsRecommendedVersion = "v4.6.3" + HelmGitRecommendedVersion = "v1.3.0" + HelmS3RecommendedVersion = "v0.16.3" HelmInstallCommand = "https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3" ) diff --git a/test/integration/run.sh b/test/integration/run.sh index f43909ae..a2bc2708 100755 --- a/test/integration/run.sh +++ b/test/integration/run.sh @@ -27,7 +27,7 @@ export HELM_DATA_HOME="${helm_dir}/data" 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.9.14}" +HELM_DIFF_VERSION="${HELM_DIFF_VERSION:-3.11.0}" HELM_GIT_VERSION="${HELM_GIT_VERSION:-1.3.0}" HELM_SECRETS_VERSION="${HELM_SECRETS_VERSION:-3.15.0}" export GNUPGHOME="${PWD}/${dir}/.gnupg" From 7624697b681be6ef9768c45ce1ae7474e9f11c0e Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Fri, 11 Apr 2025 22:13:22 +0800 Subject: [PATCH 169/177] build: update Helm to v3.17.3 and update related Dockerfiles (#1993) fix conflicts Signed-off-by: yxxhero --- .github/workflows/ci.yaml | 6 +++--- Dockerfile | 6 +++--- Dockerfile.debian-stable-slim | 6 +++--- Dockerfile.ubuntu | 6 +++--- pkg/app/init.go | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1e4ea479..5ac7ff88 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -69,19 +69,19 @@ jobs: plugin-secrets-version: 4.6.3 plugin-diff-version: 3.11.0 extra-helmfile-flags: '' - - helm-version: v3.17.2 + - helm-version: v3.17.3 kustomize-version: v5.2.1 plugin-secrets-version: 3.15.0 plugin-diff-version: 3.10.0 extra-helmfile-flags: '' - - helm-version: v3.17.2 + - helm-version: v3.17.3 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.3 plugin-diff-version: 3.11.0 extra-helmfile-flags: '' # In case you need to test some optional helmfile features, # enable it via extra-helmfile-flags below. - - helm-version: v3.17.2 + - helm-version: v3.17.3 kustomize-version: v5.4.3 plugin-secrets-version: 4.6.3 plugin-diff-version: 3.11.0 diff --git a/Dockerfile b/Dockerfile index 26a92e05..cb320f9a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.17.2" +ARG HELM_VERSION="v3.17.3" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="90c28792a1eb5fb0b50028e39ebf826531ebfcf73f599050dbd79bab2f277241" ;; \ - "linux/arm64") HELM_SHA256="d78d76ec7625a94991e887ac049d93f44bd70e4876200b945f813c9e1ed1df7c" ;; \ + "linux/amd64") HELM_SHA256="ee88b3c851ae6466a3de507f7be73fe94d54cbf2987cbaa3d1a3832ea331f2cd" ;; \ + "linux/arm64") HELM_SHA256="7944e3defd386c76fd92d9e6fec5c2d65a323f6fadc19bfb5e704e3eee10348e" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.debian-stable-slim b/Dockerfile.debian-stable-slim index 5aa5dd00..10febf37 100644 --- a/Dockerfile.debian-stable-slim +++ b/Dockerfile.debian-stable-slim @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.17.2" +ARG HELM_VERSION="v3.17.3" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="90c28792a1eb5fb0b50028e39ebf826531ebfcf73f599050dbd79bab2f277241" ;; \ - "linux/arm64") HELM_SHA256="d78d76ec7625a94991e887ac049d93f44bd70e4876200b945f813c9e1ed1df7c" ;; \ + "linux/amd64") HELM_SHA256="ee88b3c851ae6466a3de507f7be73fe94d54cbf2987cbaa3d1a3832ea331f2cd" ;; \ + "linux/arm64") HELM_SHA256="7944e3defd386c76fd92d9e6fec5c2d65a323f6fadc19bfb5e704e3eee10348e" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 438a74df..2088a681 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -35,7 +35,7 @@ ENV HELM_CONFIG_HOME="${HELM_CONFIG_HOME}" ARG HELM_DATA_HOME="${HOME}/.local/share/helm" ENV HELM_DATA_HOME="${HELM_DATA_HOME}" -ARG HELM_VERSION="v3.17.2" +ARG HELM_VERSION="v3.17.3" 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 @@ RUN set -x && \ curl --retry 5 --retry-connrefused -LO "${HELM_LOCATION}/${HELM_FILENAME}" && \ echo Verifying ${HELM_FILENAME}... && \ case ${TARGETPLATFORM} in \ - "linux/amd64") HELM_SHA256="90c28792a1eb5fb0b50028e39ebf826531ebfcf73f599050dbd79bab2f277241" ;; \ - "linux/arm64") HELM_SHA256="d78d76ec7625a94991e887ac049d93f44bd70e4876200b945f813c9e1ed1df7c" ;; \ + "linux/amd64") HELM_SHA256="ee88b3c851ae6466a3de507f7be73fe94d54cbf2987cbaa3d1a3832ea331f2cd" ;; \ + "linux/arm64") HELM_SHA256="7944e3defd386c76fd92d9e6fec5c2d65a323f6fadc19bfb5e704e3eee10348e" ;; \ esac && \ echo "${HELM_SHA256} ${HELM_FILENAME}" | sha256sum -c && \ echo Extracting ${HELM_FILENAME}... && \ diff --git a/pkg/app/init.go b/pkg/app/init.go index b0112286..f7cc3add 100644 --- a/pkg/app/init.go +++ b/pkg/app/init.go @@ -18,7 +18,7 @@ import ( const ( HelmRequiredVersion = "v3.16.4" - HelmRecommendedVersion = "v3.17.2" + HelmRecommendedVersion = "v3.17.3" HelmDiffRecommendedVersion = "v3.11.0" HelmSecretsRecommendedVersion = "v4.6.3" HelmGitRecommendedVersion = "v1.3.0" From 24f900ac9b64a49d39474a9863b0232e72e924b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 23:43:28 +0000 Subject: [PATCH 170/177] build(deps): bump golang.org/x/net from 0.37.0 to 0.38.0 (#2010) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index efc70bd2..270a8bd7 100644 --- a/go.mod +++ b/go.mod @@ -95,7 +95,7 @@ require ( 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.37.0 // indirect + golang.org/x/net v0.38.0 // indirect golang.org/x/oauth2 v0.28.0 // indirect golang.org/x/sys v0.32.0 // indirect golang.org/x/text v0.23.0 // indirect diff --git a/go.sum b/go.sum index f68f88fc..ca367e29 100644 --- a/go.sum +++ b/go.sum @@ -1741,8 +1741,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= -golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= +golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= 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= From cf7f3cf7887518b923bd3faaace80d8a99cd7cb2 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Sat, 19 Apr 2025 12:11:39 +0800 Subject: [PATCH 171/177] feat: add helmfile archive configuration in goreleaser (#2000) Signed-off-by: yxxhero --- .goreleaser.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index aba37be9..e2f1a834 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -20,7 +20,14 @@ builds: - amd64 - arm64 - "386" - +archives: + - id: helmfile + ids: + - helmfile + builds_info: + group: root + owner: root + mode: 0644 changelog: use: github sort: asc From 769d56d2086137113b46b80ef02be83984f2bbc4 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Tue, 22 Apr 2025 03:49:03 +0800 Subject: [PATCH 172/177] docs: add more complex examples section in README (#2013) * docs: add more complex examples section in README Signed-off-by: yxxhero * fix typo Signed-off-by: yxxhero --------- Signed-off-by: yxxhero --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index d6a80fc5..8ae91de8 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,10 @@ Iterate on the `helmfile.yaml` by referencing: * [CLI reference](https://helmfile.readthedocs.io/en/latest/#cli-reference) * [Helmfile Best Practices Guide](https://helmfile.readthedocs.io/en/latest/writing-helmfile/) +## More complex examples + +See: [multi-env-helmfile](https://github.com/helmfile/multi-env-helmfile) + ## Docs Please read [complete documentation](https://helmfile.readthedocs.io/) From 9bf51cb011a81feb82774fed66e200386096b9ef Mon Sep 17 00:00:00 2001 From: Adam Blasko Date: Wed, 23 Apr 2025 01:53:29 +0200 Subject: [PATCH 173/177] Feat: setting reuseValues flag in release (#2004) * Feat: reuseValues in release Adding properties to set reuseValues flag on release-level. Signed-off-by: Adam Blasko * feat: fixing tests Most of the tests had issues with flag order, which changed due to moving the value control flags out of the "common flags" for diff Signed-off-by: Adam Blasko * fix: fixing lint issue Signed-off-by: Adam Blasko --------- Signed-off-by: Adam Blasko --- docs/index.md | 3 +- pkg/app/app_apply_hooks_test.go | 18 +-- pkg/app/app_apply_nokubectx_test.go | 28 ++-- pkg/app/app_apply_test.go | 38 ++--- pkg/app/app_diff_test.go | 4 +- pkg/app/app_test.go | 110 +++++++-------- pkg/app/diff_nokubectx_test.go | 96 ++++++------- pkg/app/diff_test.go | 120 ++++++++-------- pkg/state/state.go | 14 +- pkg/state/state_test.go | 206 +++++++++++++++++++++++++++- pkg/state/temp_test.go | 14 +- 11 files changed, 425 insertions(+), 226 deletions(-) diff --git a/docs/index.md b/docs/index.md index 749a87f8..211dbf8e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -315,7 +315,7 @@ releases: # will attempt to decrypt it using helm-secrets plugin secrets: - vault_secret.yaml - # Override helmDefaults options for verify, wait, waitForJobs, timeout, recreatePods and force. + # Override helmDefaults options for verify, wait, waitForJobs, timeout, recreatePods, force and reuseValues. verify: true keyring: path/to/keyring.gpg # --skip-schema-validation flag to helm 'install', 'upgrade' and 'lint', starts with helm 3.16.0 (default false) @@ -326,6 +326,7 @@ releases: timeout: 60 recreatePods: true force: false + reuseValues: false # set `false` to uninstall this release on sync. (default true) installed: true # restores previous state in case of failed release (default false) diff --git a/pkg/app/app_apply_hooks_test.go b/pkg/app/app_apply_hooks_test.go index 71aff79c..c385b157 100644 --- a/pkg/app/app_apply_hooks_test.go +++ b/pkg/app/app_apply_hooks_test.go @@ -161,7 +161,7 @@ releases: {Name: "foo"}, }, diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, error: "", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -192,7 +192,7 @@ releases: {Name: "foo"}, }, diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, error: "", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -223,7 +223,7 @@ releases: {Name: "foo"}, }, diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, error: "", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -252,7 +252,7 @@ releases: }, selectors: []string{"app=test"}, diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: nil, + {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: nil, }, error: "", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -299,8 +299,8 @@ releases: {Name: "bar"}, }, diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "bar", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, error: "", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -346,7 +346,7 @@ releases: {Name: "foo"}, }, diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, error: "", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -396,7 +396,7 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 default {Name: "foo"}, }, diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, error: "", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -444,7 +444,7 @@ foo 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 default {Name: "foo"}, }, diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, error: "", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result diff --git a/pkg/app/app_apply_nokubectx_test.go b/pkg/app/app_apply_nokubectx_test.go index c5ca3bbe..c844fcde 100644 --- a/pkg/app/app_apply_nokubectx_test.go +++ b/pkg/app/app_apply_nokubectx_test.go @@ -177,8 +177,8 @@ releases: {Name: "my-release", Flags: []string{"--namespace", "default"}}, }, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^external-secrets$", Flags: listFlags("default", "")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -234,8 +234,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: nil, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: nil, }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, @@ -278,9 +278,9 @@ releases: selectors: []string{"app=test"}, upgraded: []exectest.Release{}, diffs: map[exectest.DiffKey]error{ - {Name: "kubernetes-external-secrets", Chart: "incubator/raw", Flags: "--namespace kube-system --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "kubernetes-external-secrets", Chart: "incubator/raw", Flags: "--namespace kube-system --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^kubernetes-external-secrets$", Flags: listFlags("kube-system", "")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -334,9 +334,9 @@ releases: selectors: []string{"app=test"}, upgraded: []exectest.Release{}, diffs: map[exectest.DiffKey]error{ - {Name: "kubernetes-external-secrets", Chart: "incubator/raw", Flags: "--namespace kube-system --detailed-exitcode --reset-values"}: nil, - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "kubernetes-external-secrets", Chart: "incubator/raw", Flags: "--namespace kube-system --reset-values --detailed-exitcode"}: nil, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^external-secrets$", Flags: listFlags("default", "")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -399,8 +399,8 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def `, }, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, @@ -453,8 +453,8 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def `, }, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, diff --git a/pkg/app/app_apply_test.go b/pkg/app/app_apply_test.go index 06caf828..8f60aa49 100644 --- a/pkg/app/app_apply_test.go +++ b/pkg/app/app_apply_test.go @@ -177,8 +177,8 @@ releases: {Name: "my-release", Flags: []string{"--kube-context", "default", "--namespace", "default"}}, }, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^external-secrets$", Flags: listFlags("default", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -234,8 +234,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: nil, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: nil, }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, @@ -278,9 +278,9 @@ releases: selectors: []string{"app=test"}, upgraded: []exectest.Release{}, diffs: map[exectest.DiffKey]error{ - {Name: "kubernetes-external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace kube-system --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "kubernetes-external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace kube-system --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^kubernetes-external-secrets$", Flags: listFlags("kube-system", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -334,9 +334,9 @@ releases: selectors: []string{"app=test"}, upgraded: []exectest.Release{}, diffs: map[exectest.DiffKey]error{ - {Name: "kubernetes-external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace kube-system --detailed-exitcode --reset-values"}: nil, - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "kubernetes-external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace kube-system --reset-values --detailed-exitcode"}: nil, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^external-secrets$", Flags: listFlags("default", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -399,8 +399,8 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def `, }, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, @@ -453,8 +453,8 @@ my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 def `, }, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, @@ -494,9 +494,9 @@ releases: selectors: []string{"name=serviceA"}, upgraded: []exectest.Release{}, diffs: map[exectest.DiffKey]error{ - {Name: "serviceA", Chart: "my/chart", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "serviceB", Chart: "my/chart", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "serviceC", Chart: "my/chart", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "serviceA", Chart: "my/chart", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "serviceB", Chart: "my/chart", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "serviceC", Chart: "my/chart", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^serviceA$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -575,7 +575,7 @@ releases: selectors: []string{"index=1"}, upgraded: []exectest.Release{}, diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("default", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -641,7 +641,7 @@ releases: selectors: []string{"name=foo"}, upgraded: []exectest.Release{}, diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("default", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE diff --git a/pkg/app/app_diff_test.go b/pkg/app/app_diff_test.go index ccf499f5..d9f7b691 100644 --- a/pkg/app/app_diff_test.go +++ b/pkg/app/app_diff_test.go @@ -280,8 +280,8 @@ releases: }, selectors: []string{"app=test"}, diffed: []exectest.Release{ - {Name: "external-secrets", Flags: []string{"--kube-context", "default", "--namespace", "default", "--no-hooks", "--reset-values"}}, - {Name: "my-release", Flags: []string{"--kube-context", "default", "--namespace", "default", "--no-hooks", "--reset-values"}}, + {Name: "external-secrets", Flags: []string{"--kube-context", "default", "--namespace", "default", "--reset-values", "--no-hooks"}}, + {Name: "my-release", Flags: []string{"--kube-context", "default", "--namespace", "default", "--reset-values", "--no-hooks"}}, }, }) }) diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index 67e6f8a2..435ed7cf 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -2792,8 +2792,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: nil, - {Name: "foo_notFound", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: nil, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: nil, + {Name: "foo_notFound", Chart: "stable/mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: nil, }, lists: map[exectest.ListKey]string{}, upgraded: []exectest.Release{}, @@ -2865,16 +2865,16 @@ releases: }, diffs: map[exectest.DiffKey]error{ // noop on frontend-v2 - {Name: "frontend-v2", Chart: "charts/frontend", Flags: "--kube-context default --detailed-exitcode --reset-values"}: nil, + {Name: "frontend-v2", Chart: "charts/frontend", Flags: "--kube-context default --reset-values --detailed-exitcode"}: nil, // install frontend-v3 - {Name: "frontend-v3", Chart: "charts/frontend", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "frontend-v3", Chart: "charts/frontend", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, // upgrades - {Name: "logging", Chart: "charts/fluent-bit", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "front-proxy", Chart: "stable/envoy", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "servicemesh", Chart: "charts/istio", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "database", Chart: "charts/mysql", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "backend-v2", Chart: "charts/backend", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "anotherbackend", Chart: "charts/anotherbackend", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "logging", Chart: "charts/fluent-bit", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "front-proxy", Chart: "stable/envoy", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "servicemesh", Chart: "charts/istio", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "database", Chart: "charts/mysql", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "backend-v2", Chart: "charts/backend", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "anotherbackend", Chart: "charts/anotherbackend", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ // delete frontend-v1 and backend-v1 @@ -2940,7 +2940,7 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: nil, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: nil, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: ``, @@ -2971,9 +2971,9 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "baz", Chart: "stable/mychart3", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "baz", Chart: "stable/mychart3", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{}, upgraded: []exectest.Release{ @@ -3007,9 +3007,9 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "baz", Chart: "stable/mychart3", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--disable-validation --kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "bar", Chart: "stable/mychart2", Flags: "--disable-validation --kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "baz", Chart: "stable/mychart3", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--disable-validation --kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--disable-validation --kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: ``, @@ -3052,8 +3052,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "baz", Chart: "stable/mychart3", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "bar", Chart: "stable/mychart2", Flags: "--disable-validation --kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "baz", Chart: "stable/mychart3", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--disable-validation --kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: ``, @@ -3090,8 +3090,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{ {Name: "bar", Flags: []string{}}, @@ -3113,8 +3113,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{ {Name: "foo", Flags: []string{}}, @@ -3137,8 +3137,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{ {Name: "bar", Flags: []string{}}, @@ -3161,8 +3161,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{ {Name: "foo", Flags: []string{}}, @@ -3186,8 +3186,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --namespace ns2 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --namespace ns2 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{ {Name: "bar", Flags: []string{"--kube-context", "default", "--namespace", "ns2"}}, @@ -3211,8 +3211,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --namespace ns2 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --namespace ns2 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{ {Name: "foo", Flags: []string{"--kube-context", "default", "--namespace", "ns1"}}, @@ -3240,8 +3240,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{ {Name: "bar", Flags: []string{"--kube-context", "default", "--namespace", "ns1"}}, @@ -3268,8 +3268,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -3301,8 +3301,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -3336,8 +3336,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -3370,8 +3370,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -3404,8 +3404,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -3438,8 +3438,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -3494,8 +3494,8 @@ releases: }, selectors: []string{"app=test"}, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{ {Name: "external-secrets", Flags: []string{"--kube-context", "default", "--namespace", "default"}}, @@ -3549,8 +3549,8 @@ releases: }, selectors: []string{"app=test"}, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -3613,8 +3613,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "baz", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "baz", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{}, upgraded: []exectest.Release{}, @@ -3638,8 +3638,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{}, upgraded: []exectest.Release{}, @@ -3667,8 +3667,8 @@ releases: `, }, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{}, upgraded: []exectest.Release{}, diff --git a/pkg/app/diff_nokubectx_test.go b/pkg/app/diff_nokubectx_test.go index 9b2d36c8..e2dee162 100644 --- a/pkg/app/diff_nokubectx_test.go +++ b/pkg/app/diff_nokubectx_test.go @@ -104,16 +104,16 @@ releases: error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ // noop on frontend-v2 - {Name: "frontend-v2", Chart: "charts/frontend", Flags: "--detailed-exitcode --reset-values"}: nil, + {Name: "frontend-v2", Chart: "charts/frontend", Flags: "--reset-values --detailed-exitcode"}: nil, // install frontend-v3 - {Name: "frontend-v3", Chart: "charts/frontend", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "frontend-v3", Chart: "charts/frontend", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, // upgrades - {Name: "logging", Chart: "charts/fluent-bit", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "front-proxy", Chart: "stable/envoy", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "servicemesh", Chart: "charts/istio", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "database", Chart: "charts/mysql", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "backend-v2", Chart: "charts/backend", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "anotherbackend", Chart: "charts/anotherbackend", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "logging", Chart: "charts/fluent-bit", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "front-proxy", Chart: "stable/envoy", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "servicemesh", Chart: "charts/istio", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "database", Chart: "charts/mysql", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "backend-v2", Chart: "charts/backend", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "anotherbackend", Chart: "charts/anotherbackend", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ // delete frontend-v1 and backend-v1 @@ -150,7 +150,7 @@ releases: detailedExitcode: true, error: "", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: nil, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: nil, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: helmV3ListFlagsWithoutKubeContext}: ``, @@ -183,9 +183,9 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "baz", Chart: "mychart3", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "baz", Chart: "mychart3", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{}, upgraded: []exectest.Release{}, @@ -212,8 +212,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -234,8 +234,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -257,8 +257,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -280,8 +280,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -304,8 +304,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--namespace ns2 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--namespace ns2 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -328,8 +328,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--namespace ns2 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--namespace ns2 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -352,8 +352,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--namespace ns2 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--namespace ns2 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -381,8 +381,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: helmV3ListFlagsWithoutKubeContext}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -413,8 +413,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: helmV3ListFlagsWithoutKubeContext}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -447,8 +447,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: helmV3ListFlagsWithoutKubeContext}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -479,8 +479,8 @@ releases: detailedExitcode: true, error: `in ./helmfile.yaml: release "foo" depends on "bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: helmV3ListFlagsWithoutKubeContext}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -514,8 +514,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: helmV3ListFlagsWithoutKubeContext}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -549,8 +549,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: helmV3ListFlagsWithoutKubeContext}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -581,8 +581,8 @@ releases: detailedExitcode: true, error: `in ./helmfile.yaml: release "bar" depends on "foo" which does not match the selectors. Please add a selector like "--selector name=foo", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: helmV3ListFlagsWithoutKubeContext}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -613,8 +613,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: helmV3ListFlagsWithoutKubeContext}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -664,8 +664,8 @@ releases: selectors: []string{"app=test"}, detailedExitcode: true, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -705,8 +705,8 @@ releases: selectors: []string{"app=test"}, detailedExitcode: true, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -771,8 +771,8 @@ releases: }, detailedExitcode: true, diffs: map[exectest.DiffKey]error{ - {Name: "baz", Chart: "mychart3", Flags: "--namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "baz", Chart: "mychart3", Flags: "--namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{}, upgraded: []exectest.Release{}, diff --git a/pkg/app/diff_test.go b/pkg/app/diff_test.go index 4dd63f94..2e60b3df 100644 --- a/pkg/app/diff_test.go +++ b/pkg/app/diff_test.go @@ -276,16 +276,16 @@ releases: error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ // noop on frontend-v2 - {Name: "frontend-v2", Chart: "charts/frontend", Flags: "--kube-context default --detailed-exitcode --reset-values"}: nil, + {Name: "frontend-v2", Chart: "charts/frontend", Flags: "--kube-context default --reset-values --detailed-exitcode"}: nil, // install frontend-v3 - {Name: "frontend-v3", Chart: "charts/frontend", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "frontend-v3", Chart: "charts/frontend", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, // upgrades - {Name: "logging", Chart: "charts/fluent-bit", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "front-proxy", Chart: "stable/envoy", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "servicemesh", Chart: "charts/istio", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "database", Chart: "charts/mysql", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "backend-v2", Chart: "charts/backend", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "anotherbackend", Chart: "charts/anotherbackend", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "logging", Chart: "charts/fluent-bit", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "front-proxy", Chart: "stable/envoy", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "servicemesh", Chart: "charts/istio", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "database", Chart: "charts/mysql", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "backend-v2", Chart: "charts/backend", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "anotherbackend", Chart: "charts/anotherbackend", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ // delete frontend-v1 and backend-v1 @@ -322,7 +322,7 @@ releases: detailedExitcode: true, error: "", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: nil, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: nil, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: ``, @@ -355,9 +355,9 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "baz", Chart: "mychart3", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "baz", Chart: "mychart3", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{}, upgraded: []exectest.Release{}, @@ -384,8 +384,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -409,8 +409,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context hello/world --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context hello/world --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context hello/world --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context hello/world --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -436,8 +436,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "releaseB", Chart: "mychart2", Flags: "--kube-context arn:aws:eks:us-east-1:1234567890:cluster/myekscluster --namespace namespaceA --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "releaseA", Chart: "mychart1", Flags: "--kube-context arn:aws:eks:us-east-1:1234567890:cluster/myekscluster --namespace namespaceA --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "releaseB", Chart: "mychart2", Flags: "--kube-context arn:aws:eks:us-east-1:1234567890:cluster/myekscluster --namespace namespaceA --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "releaseA", Chart: "mychart1", Flags: "--kube-context arn:aws:eks:us-east-1:1234567890:cluster/myekscluster --namespace namespaceA --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -458,8 +458,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -481,8 +481,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -504,8 +504,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace testNamespace --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace testNamespace --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -528,8 +528,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace ns2 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace ns2 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -556,8 +556,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -581,8 +581,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace ns2 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace ns2 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, }, @@ -605,8 +605,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace ns2 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --namespace ns2 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -634,8 +634,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -666,8 +666,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -700,8 +700,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -732,8 +732,8 @@ releases: detailedExitcode: true, error: `in ./helmfile.yaml: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -767,8 +767,8 @@ releases: }, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -802,8 +802,8 @@ releases: }, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -834,8 +834,8 @@ releases: detailedExitcode: true, error: `in ./helmfile.yaml: release "default//bar" depends on "default//foo" which does not match the selectors. Please add a selector like "--selector name=foo", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies`, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -869,8 +869,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -904,8 +904,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -936,8 +936,8 @@ releases: detailedExitcode: true, error: "Identified at least one change", diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart2", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{ {Filter: "^foo$", Flags: listFlags("", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE @@ -987,8 +987,8 @@ releases: selectors: []string{"app=test"}, detailedExitcode: true, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -1028,8 +1028,8 @@ releases: selectors: []string{"app=test"}, detailedExitcode: true, diffs: map[exectest.DiffKey]error{ - {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "external-secrets", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "my-release", Chart: "incubator/raw", Flags: "--kube-context default --namespace default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, upgraded: []exectest.Release{}, // as we check for log output, set concurrency to 1 to avoid non-deterministic test result @@ -1095,8 +1095,8 @@ releases: detailedExitcode: true, selectors: []string{"name=foo"}, diffs: map[exectest.DiffKey]error{ - {Name: "bar", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "bar", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{}, upgraded: []exectest.Release{}, @@ -1121,8 +1121,8 @@ releases: }, detailedExitcode: true, diffs: map[exectest.DiffKey]error{ - {Name: "baz", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, - {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, + {Name: "baz", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, + {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --reset-values --detailed-exitcode"}: helmexec.ExitError{Code: 2}, }, lists: map[exectest.ListKey]string{}, upgraded: []exectest.Release{}, diff --git a/pkg/state/state.go b/pkg/state/state.go index 47cdde12..ef93ce67 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -283,6 +283,8 @@ type ReleaseSpec struct { Condition string `yaml:"condition,omitempty"` // CreateNamespace, when set to true (default), --create-namespace is passed to helm3 on install (ignored for helm2) CreateNamespace *bool `yaml:"createNamespace,omitempty"` + // ReuseValues, on helm upgrade/diff, reuse values currently set in the release and merge them with the ones defined within helmfile + ReuseValues *bool `yaml:"reuseValues,omitempty"` // DisableOpenAPIValidation is rarely used to bypass OpenAPI validations only that is used for e.g. // work-around against broken CRs @@ -706,7 +708,7 @@ func (st *HelmState) prepareSyncReleases(helm helmexec.Interface, additionalValu flags = append(flags, "--skip-crds") } - flags = st.appendValuesControlModeFlag(flags, opts.ReuseValues, opts.ResetValues) + flags = st.appendValuesControlModeFlag(flags, opts.ReuseValues, opts.ResetValues, release) if len(errs) > 0 { results <- syncPrepareResult{errors: errs, files: files} @@ -1801,7 +1803,7 @@ type diffPrepareResult struct { // commonDiffFlags returns common flags for helm diff, not in release-specific context func (st *HelmState) commonDiffFlags(detailedExitCode bool, stripTrailingCR bool, includeTests bool, suppress []string, suppressSecrets bool, showSecrets bool, noHooks bool, opt *DiffOpts) []string { - var flags []string + var flags = []string{} if detailedExitCode { flags = append(flags, "--detailed-exitcode") @@ -1845,8 +1847,6 @@ func (st *HelmState) commonDiffFlags(detailedExitCode bool, stripTrailingCR bool flags = append(flags, "--output", opt.Output) } - flags = st.appendValuesControlModeFlag(flags, opt.ReuseValues, opt.ResetValues) - if opt.Set != nil { for _, s := range opt.Set { flags = append(flags, "--set", s) @@ -1960,6 +1960,8 @@ func (st *HelmState) prepareDiffReleases(helm helmexec.Interface, additionalValu flags = append(flags, "--values", valfile) } + flags = st.appendValuesControlModeFlag(flags, opt.ReuseValues, opt.ResetValues, release) + flags = append(flags, commonDiffFlags...) if len(errs) > 0 { @@ -3019,8 +3021,8 @@ func (st *HelmState) chartOCIFlags(r *ReleaseSpec) []string { return flags } -func (st *HelmState) appendValuesControlModeFlag(flags []string, reuseValues bool, resetValues bool) []string { - if !resetValues && (st.HelmDefaults.ReuseValues || reuseValues) { +func (st *HelmState) appendValuesControlModeFlag(flags []string, reuseValues bool, resetValues bool, release *ReleaseSpec) []string { + if !resetValues && ((release.ReuseValues != nil && *release.ReuseValues || release.ReuseValues == nil && st.HelmDefaults.ReuseValues) || reuseValues) { flags = append(flags, "--reuse-values") } else { flags = append(flags, "--reset-values") diff --git a/pkg/state/state_test.go b/pkg/state/state_test.go index 59210312..4834ba1c 100644 --- a/pkg/state/state_test.go +++ b/pkg/state/state_test.go @@ -3458,14 +3458,11 @@ func TestCommonDiffFlags(t *testing.T) { stripTrailingCR: true, expected: []string{ "--strip-trailing-cr", - "--reset-values", }, }, { - name: "stripTrailingCR disenabled", - expected: []string{ - "--reset-values", - }, + name: "stripTrailingCR disenabled", + expected: []string{}, }, } for _, tt := range tests { @@ -4375,3 +4372,202 @@ func TestHelmState_setStringFlags(t *testing.T) { }) } } +func TestPrepareDiffReleases_ValueControlReleaseOverride(t *testing.T) { + tests := []struct { + flags []string + diffOptions *DiffOpts + helmDefaults *HelmSpec + release *ReleaseSpec + }{ + { + flags: []string{"--reuse-values"}, + diffOptions: &DiffOpts{}, + helmDefaults: &HelmSpec{}, + release: &ReleaseSpec{ + Name: "reuse-values-from-release", + ReuseValues: boolValue(true), + }, + }, + { + flags: []string{"--reuse-values"}, + diffOptions: &DiffOpts{ + ReuseValues: true, + }, + helmDefaults: &HelmSpec{}, + release: &ReleaseSpec{ + Name: "reuse-values-from-cli", + ReuseValues: boolValue(false), + }, + }, + { + flags: []string{"--reuse-values"}, + diffOptions: &DiffOpts{ + ReuseValues: true, + }, + helmDefaults: &HelmSpec{ + ReuseValues: true, + }, + release: &ReleaseSpec{ + Name: "reuse-values-all", + ReuseValues: boolValue(true), + }, + }, + { + flags: []string{"--reset-values"}, + diffOptions: &DiffOpts{}, + helmDefaults: &HelmSpec{ + ReuseValues: true, + }, + release: &ReleaseSpec{ + Name: "reset-values-from-helm-defaults", + ReuseValues: boolValue(false), + }, + }, + { + flags: []string{"--reset-values"}, + diffOptions: &DiffOpts{}, + helmDefaults: &HelmSpec{}, + release: &ReleaseSpec{ + Name: "reset-values-from-release", + ReuseValues: boolValue(false), + }, + }, + { + flags: []string{"--reset-values"}, + diffOptions: &DiffOpts{ + ResetValues: true, + }, + helmDefaults: &HelmSpec{}, + release: &ReleaseSpec{ + Name: "reset-values-cli-overrides-release", + ReuseValues: boolValue(true), + }, + }, + } + + for _, tt := range tests { + releases := []ReleaseSpec{ + *tt.release, + } + state := &HelmState{ + ReleaseSetSpec: ReleaseSetSpec{ + Releases: releases, + HelmDefaults: *tt.helmDefaults, + }, + logger: logger, + valsRuntime: valsRuntime, + } + helm := &exectest.Helm{ + Lists: map[exectest.ListKey]string{}, + Helm3: true, + } + results, es := state.prepareDiffReleases(helm, []string{}, 1, false, false, false, []string{}, false, false, false, tt.diffOptions) + + require.Len(t, es, 0) + require.Len(t, results, 1) + + r := results[0] + + require.Equal(t, tt.flags, r.flags, "Wrong value control flag for release %s", r.release.Name) + } +} + +func TestPrepareSyncReleases_ValueControlReleaseOverride(t *testing.T) { + tests := []struct { + flags []string + syncOptions *SyncOpts + helmDefaults *HelmSpec + release *ReleaseSpec + }{ + { + flags: []string{"--reuse-values"}, + syncOptions: &SyncOpts{}, + helmDefaults: &HelmSpec{}, + release: &ReleaseSpec{ + Name: "reuse-values-from-release", + ReuseValues: boolValue(true), + }, + }, + { + flags: []string{"--reuse-values"}, + syncOptions: &SyncOpts{ + ReuseValues: true, + }, + helmDefaults: &HelmSpec{}, + release: &ReleaseSpec{ + Name: "reuse-values-from-cli", + ReuseValues: boolValue(false), + }, + }, + { + flags: []string{"--reuse-values"}, + syncOptions: &SyncOpts{ + ReuseValues: true, + }, + helmDefaults: &HelmSpec{ + ReuseValues: true, + }, + release: &ReleaseSpec{ + Name: "reuse-values-all", + ReuseValues: boolValue(true), + }, + }, + { + flags: []string{"--reset-values"}, + syncOptions: &SyncOpts{}, + helmDefaults: &HelmSpec{ + ReuseValues: true, + }, + release: &ReleaseSpec{ + Name: "reset-values-from-helm-defaults", + ReuseValues: boolValue(false), + }, + }, + { + flags: []string{"--reset-values"}, + syncOptions: &SyncOpts{}, + helmDefaults: &HelmSpec{}, + release: &ReleaseSpec{ + Name: "reset-values-from-release", + ReuseValues: boolValue(false), + }, + }, + { + flags: []string{"--reset-values"}, + syncOptions: &SyncOpts{ + ResetValues: true, + }, + helmDefaults: &HelmSpec{}, + release: &ReleaseSpec{ + Name: "reset-values-cli-overrides-release", + ReuseValues: boolValue(true), + }, + }, + } + + for _, tt := range tests { + releases := []ReleaseSpec{ + *tt.release, + } + state := &HelmState{ + ReleaseSetSpec: ReleaseSetSpec{ + Releases: releases, + HelmDefaults: *tt.helmDefaults, + }, + logger: logger, + valsRuntime: valsRuntime, + } + helm := &exectest.Helm{ + Lists: map[exectest.ListKey]string{}, + Helm3: true, + } + results, es := state.prepareSyncReleases(helm, []string{}, 1, tt.syncOptions) + + require.Len(t, es, 0) + require.Len(t, results, 1) + + r := results[0] + + require.Equal(t, tt.flags, r.flags, "Wrong value control flag for release %s", r.release.Name) + } +} diff --git a/pkg/state/temp_test.go b/pkg/state/temp_test.go index 90eb5f45..f0eed882 100644 --- a/pkg/state/temp_test.go +++ b/pkg/state/temp_test.go @@ -24,7 +24,7 @@ func TestGenerateID(t *testing.T) { got, err := generateValuesID(&tc.release, tc.data) if err != nil { - t.Fatalf("uenxpected error: %v", err) + t.Fatalf("unexpected error: %v", err) } if d := cmp.Diff(tc.want, got); d != "" { @@ -38,39 +38,39 @@ func TestGenerateID(t *testing.T) { run(testcase{ subject: "baseline", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, - want: "foo-values-6584bf5db7", + want: "foo-values-54f5f6cdb5", }) run(testcase{ subject: "different bytes content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: []byte(`{"k":"v"}`), - want: "foo-values-6b8c446b76", + want: "foo-values-6bc8f7944b", }) run(testcase{ subject: "different map content", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, data: map[string]any{"k": "v"}, - want: "foo-values-6b499b6fb6", + want: "foo-values-dcffdcb8", }) run(testcase{ subject: "different chart", release: ReleaseSpec{Name: "foo", Chart: "stable/envoy"}, - want: "foo-values-775cbccfb", + want: "foo-values-6d4c6fd548", }) run(testcase{ subject: "different name", release: ReleaseSpec{Name: "bar", Chart: "incubator/raw"}, - want: "bar-values-849dcf78b4", + want: "bar-values-76974767c8", }) run(testcase{ subject: "specific ns", release: ReleaseSpec{Name: "foo", Chart: "incubator/raw", Namespace: "myns"}, - want: "myns-foo-values-d57499c58", + want: "myns-foo-values-77bd9cc6fb", }) for id, n := range ids { From 0cb1fcdd2131c6b963acc21af5476819b74fa2b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Apr 2025 07:39:35 +0800 Subject: [PATCH 174/177] build(deps): bump k8s.io/apimachinery from 0.32.3 to 0.32.4 (#2016) Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.32.3 to 0.32.4. - [Commits](https://github.com/kubernetes/apimachinery/compare/v0.32.3...v0.32.4) --- updated-dependencies: - dependency-name: k8s.io/apimachinery dependency-version: 0.32.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 270a8bd7..e6e3a36d 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( golang.org/x/term v0.31.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.17.3 - k8s.io/apimachinery v0.32.3 + k8s.io/apimachinery v0.32.4 ) require ( diff --git a/go.sum b/go.sum index ca367e29..82863de1 100644 --- a/go.sum +++ b/go.sum @@ -2328,8 +2328,8 @@ k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls= k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k= k8s.io/apiextensions-apiserver v0.32.2 h1:2YMk285jWMk2188V2AERy5yDwBYrjgWYggscghPCvV4= k8s.io/apiextensions-apiserver v0.32.2/go.mod h1:GPwf8sph7YlJT3H6aKUWtd0E+oyShk/YHWQHf/OOgCA= -k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U= -k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/apimachinery v0.32.4 h1:8EEksaxA7nd7xWJkkwLDN4SvWS5ot9g6Z/VZb3ju25I= +k8s.io/apimachinery v0.32.4/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= k8s.io/cli-runtime v0.32.2 h1:aKQR4foh9qeyckKRkNXUccP9moxzffyndZAvr+IXMks= k8s.io/cli-runtime v0.32.2/go.mod h1:a/JpeMztz3xDa7GCyyShcwe55p8pbcCVQxvqZnIwXN8= k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU= From c41f3e88d2d6920231828a67915b8c846ad81d7f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Apr 2025 07:40:12 +0800 Subject: [PATCH 175/177] build(deps): bump github.com/aws/aws-sdk-go from 1.55.6 to 1.55.7 (#2015) Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.55.6 to 1.55.7. - [Release notes](https://github.com/aws/aws-sdk-go/releases) - [Changelog](https://github.com/aws/aws-sdk-go/blob/main/CHANGELOG_PENDING.md) - [Commits](https://github.com/aws/aws-sdk-go/compare/v1.55.6...v1.55.7) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go dependency-version: 1.55.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e6e3a36d..ad888f36 100644 --- a/go.mod +++ b/go.mod @@ -46,7 +46,7 @@ require ( github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/a8m/envsubst v1.4.3 // indirect - github.com/aws/aws-sdk-go v1.55.6 + github.com/aws/aws-sdk-go v1.55.7 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 diff --git a/go.sum b/go.sum index 82863de1..3819c587 100644 --- a/go.sum +++ b/go.sum @@ -755,8 +755,8 @@ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:W 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.55.6 h1:cSg4pvZ3m8dgYcgqB97MrcdjUmZ1BeMYKUxMMB89IPk= -github.com/aws/aws-sdk-go v1.55.6/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go v1.55.7 h1:UJrkFq7es5CShfBwlWAC8DA077vp8PyVbQd3lqLiztE= +github.com/aws/aws-sdk-go v1.55.7/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v1.32.6 h1:7BokKRgRPuGmKkFMhEg/jSul+tB9VvXhcViILtfG8b4= github.com/aws/aws-sdk-go-v2 v1.32.6/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 h1:lL7IfaFzngfx0ZwUGOZdsFFnQ5uLvR0hWqqhyE7Q9M8= From 0a31423005be6588efcc091f6d619693b3ec7c85 Mon Sep 17 00:00:00 2001 From: ProbstDJakob Date: Fri, 25 Apr 2025 00:56:01 +0200 Subject: [PATCH 176/177] chore: support parsing any type with `fromYaml` (#2017) Signed-off-by: Jakob Probst --- pkg/maputil/maputil.go | 8 +-- pkg/tmpl/context_funcs.go | 6 +- pkg/tmpl/context_funcs_test.go | 122 +++++++++++++++++++++++++-------- 3 files changed, 102 insertions(+), 34 deletions(-) diff --git a/pkg/maputil/maputil.go b/pkg/maputil/maputil.go index bf0c5c7a..e5cf925b 100644 --- a/pkg/maputil/maputil.go +++ b/pkg/maputil/maputil.go @@ -19,7 +19,7 @@ func CastKeysToStrings(s any) (map[string]any, error) { return nil, fmt.Errorf("unexpected type of key in map: expected string, got %T: value=%v, map=%v", typedK, typedK, src) } - castedV, err := recursivelyStringifyMapKey(v) + castedV, err := RecursivelyStringifyMapKey(v) if err != nil { return nil, err } @@ -28,7 +28,7 @@ func CastKeysToStrings(s any) (map[string]any, error) { } case map[string]any: for k, v := range src { - castedV, err := recursivelyStringifyMapKey(v) + castedV, err := RecursivelyStringifyMapKey(v) if err != nil { return nil, err } @@ -39,7 +39,7 @@ func CastKeysToStrings(s any) (map[string]any, error) { return new, nil } -func recursivelyStringifyMapKey(v any) (any, error) { +func RecursivelyStringifyMapKey(v any) (any, error) { var castedV any switch typedV := v.(type) { case map[any]any, map[string]any: @@ -51,7 +51,7 @@ func recursivelyStringifyMapKey(v any) (any, error) { case []any: a := []any{} for i := range typedV { - res, err := recursivelyStringifyMapKey(typedV[i]) + res, err := RecursivelyStringifyMapKey(typedV[i]) if err != nil { return nil, err } diff --git a/pkg/tmpl/context_funcs.go b/pkg/tmpl/context_funcs.go index e16fd9ef..c0f1111d 100644 --- a/pkg/tmpl/context_funcs.go +++ b/pkg/tmpl/context_funcs.go @@ -307,14 +307,14 @@ func ToYaml(v any) (string, error) { return string(data), nil } -func FromYaml(str string) (Values, error) { - m := map[string]any{} +func FromYaml(str string) (any, error) { + var m any if err := yaml.Unmarshal([]byte(str), &m); err != nil { return nil, fmt.Errorf("%s, offending yaml: %s", err, str) } - m, err := maputil.CastKeysToStrings(m) + m, err := maputil.RecursivelyStringifyMapKey(m) if err != nil { return nil, fmt.Errorf("%s, offending yaml: %s", err, str) } diff --git a/pkg/tmpl/context_funcs_test.go b/pkg/tmpl/context_funcs_test.go index d1141d8e..58ac5bd0 100644 --- a/pkg/tmpl/context_funcs_test.go +++ b/pkg/tmpl/context_funcs_test.go @@ -200,7 +200,88 @@ func TestToYaml(t *testing.T) { require.Equal(t, expected, actual) } -func testFromYaml(t *testing.T, goccyGoYaml bool, expected Values) { +func testFromYamlObject(t *testing.T) { + raw := `foo: + bar: BAR +` + + actual, err := FromYaml(raw) + require.NoError(t, err) + require.Equal( + t, + map[string]any{ + "foo": map[string]any{ + "bar": "BAR", + }, + }, + actual, + ) +} + +func testFromYamlArray(t *testing.T) { + raw := `- foo +- bar: BAR +` + + actual, err := FromYaml(raw) + require.NoError(t, err) + require.Equal( + t, + []any{ + "foo", + map[string]any{ + "bar": "BAR", + }, + }, + actual, + ) +} + +func testFromYamlString(t *testing.T) { + raw := `foo +` + + actual, err := FromYaml(raw) + require.NoError(t, err) + require.Equal(t, "foo", actual) +} + +func testFromYamlNumber(t *testing.T) { + raw := `1234 +` + + actual, err := FromYaml(raw) + require.NoError(t, err) + + switch a := actual.(type) { + case int: + require.Equal(t, 1234, a) + case uint64: + require.Equal(t, uint64(1234), a) + default: + t.Errorf("unexpected type: %T", a) + } +} + +func testFromYamlBoolean(t *testing.T) { + raw := `true +` + + actual, err := FromYaml(raw) + require.NoError(t, err) + require.Equal(t, true, actual) +} + +func testFromYamlNull(t *testing.T) { + raw := `null +` + + actual, err := FromYaml(raw) + require.NoError(t, err) + require.Equal(t, nil, actual) +} + +func testFromYaml(t *testing.T, goccyGoYaml bool) { t.Helper() v := runtime.GoccyGoYaml @@ -209,39 +290,26 @@ func testFromYaml(t *testing.T, goccyGoYaml bool, expected Values) { runtime.GoccyGoYaml = v }) - raw := `foo: - bar: BAR -` - actual, err := FromYaml(raw) - require.NoError(t, err) - require.Equal(t, expected, actual) + t.Run("test unmarshalling object", testFromYamlObject) + + t.Run("test unmarshalling array", testFromYamlArray) + + t.Run("test unmarshalling string", testFromYamlString) + + t.Run("test unmarshalling number", testFromYamlNumber) + + t.Run("test unmarshalling boolean", testFromYamlBoolean) + + t.Run("test unmarshalling null", testFromYamlNull) } func TestFromYaml(t *testing.T) { t.Run("with goccy/go-yaml", func(t *testing.T) { - testFromYaml( - t, - true, - // nolint: unconvert - Values(map[string]any{ - "foo": map[string]any{ - "bar": "BAR", - }, - }), - ) + testFromYaml(t, true) }) t.Run("with gopkg.in/yaml.v2", func(t *testing.T) { - testFromYaml( - t, - false, - // nolint: unconvert - Values(map[string]any{ - "foo": map[string]any{ - "bar": "BAR", - }, - }), - ) + testFromYaml(t, false) }) } From 6b5f1496a8a45b2112303406890b90c3f43f0d50 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Apr 2025 09:45:45 +0800 Subject: [PATCH 177/177] build(deps): bump k8s.io/apimachinery from 0.32.4 to 0.33.0 (#2018) --- go.mod | 16 ++++++++-------- go.sum | 31 +++++++++++++++++-------------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/go.mod b/go.mod index ad888f36..93bae27f 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/helmfile/helmfile -go 1.24 +go 1.24.2 require ( dario.cat/mergo v1.0.1 @@ -30,7 +30,7 @@ require ( golang.org/x/term v0.31.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.17.3 - k8s.io/apimachinery v0.32.4 + k8s.io/apimachinery v0.33.0 ) require ( @@ -99,11 +99,11 @@ require ( golang.org/x/oauth2 v0.28.0 // indirect golang.org/x/sys v0.32.0 // indirect golang.org/x/text v0.23.0 // indirect - golang.org/x/time v0.8.0 // indirect + golang.org/x/time v0.9.0 // indirect google.golang.org/api v0.215.0 // indirect google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect google.golang.org/grpc v1.68.0 // indirect - google.golang.org/protobuf v1.36.1 // indirect + google.golang.org/protobuf v1.36.5 // indirect gopkg.in/ini.v1 v1.67.0 // indirect sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect sigs.k8s.io/yaml v1.4.0 // indirect @@ -222,9 +222,8 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.2.2 // indirect github.com/google/btree v1.0.1 // indirect - github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/gnostic-models v0.6.9 // indirect github.com/google/go-jsonnet v0.20.0 // indirect - github.com/google/gofuzz v1.2.0 // indirect github.com/google/s2a-go v0.1.8 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect @@ -316,11 +315,12 @@ require ( k8s.io/client-go v0.32.3 // indirect k8s.io/component-base v0.32.2 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect + k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect k8s.io/kubectl v0.32.2 // indirect k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect oras.land/oras-go v1.2.5 // indirect sigs.k8s.io/kustomize/api v0.18.0 // indirect sigs.k8s.io/kustomize/kyaml v0.18.1 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect + sigs.k8s.io/randfill v1.0.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect ) diff --git a/go.sum b/go.sum index 3819c587..8bbdcf0f 100644 --- a/go.sum +++ b/go.sum @@ -1080,8 +1080,8 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= -github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= +github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -1444,8 +1444,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rubenv/sql-migrate v1.7.1 h1:f/o0WgfO/GqNuVg+6801K/KW3WdDSupzSjDYODmiUq4= github.com/rubenv/sql-migrate v1.7.1/go.mod h1:Ob2Psprc0/3ggbM6wCzyYVFFuc6FyZrb2AS+ezLDFb4= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= @@ -1932,8 +1932,8 @@ golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= -golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= +golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -2285,8 +2285,8 @@ google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= -google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -2328,8 +2328,8 @@ k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls= k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k= k8s.io/apiextensions-apiserver v0.32.2 h1:2YMk285jWMk2188V2AERy5yDwBYrjgWYggscghPCvV4= k8s.io/apiextensions-apiserver v0.32.2/go.mod h1:GPwf8sph7YlJT3H6aKUWtd0E+oyShk/YHWQHf/OOgCA= -k8s.io/apimachinery v0.32.4 h1:8EEksaxA7nd7xWJkkwLDN4SvWS5ot9g6Z/VZb3ju25I= -k8s.io/apimachinery v0.32.4/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/apimachinery v0.33.0 h1:1a6kHrJxb2hs4t8EE5wuR/WxKDwGN1FKH3JvDtA0CIQ= +k8s.io/apimachinery v0.33.0/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM= k8s.io/cli-runtime v0.32.2 h1:aKQR4foh9qeyckKRkNXUccP9moxzffyndZAvr+IXMks= k8s.io/cli-runtime v0.32.2/go.mod h1:a/JpeMztz3xDa7GCyyShcwe55p8pbcCVQxvqZnIwXN8= k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU= @@ -2338,8 +2338,8 @@ k8s.io/component-base v0.32.2 h1:1aUL5Vdmu7qNo4ZsE+569PV5zFatM9hl+lb3dEea2zU= k8s.io/component-base v0.32.2/go.mod h1:PXJ61Vx9Lg+P5mS8TLd7bCIr+eMJRQTyXe8KvkrvJq0= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= +k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4= +k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8= k8s.io/kubectl v0.32.2 h1:TAkag6+XfSBgkqK9I7ZvwtF0WVtUAvK8ZqTt+5zi1Us= k8s.io/kubectl v0.32.2/go.mod h1:+h/NQFSPxiDZYX/WZaWw9fwYezGLISP0ud8nQKg+3g8= k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= @@ -2390,7 +2390,10 @@ sigs.k8s.io/kustomize/api v0.18.0 h1:hTzp67k+3NEVInwz5BHyzc9rGxIauoXferXyjv5lWPo sigs.k8s.io/kustomize/api v0.18.0/go.mod h1:f8isXnX+8b+SGLHQ6yO4JG1rdkZlvhaCf/uZbLVMb0U= sigs.k8s.io/kustomize/kyaml v0.18.1 h1:WvBo56Wzw3fjS+7vBjN6TeivvpbW9GmRaWZ9CIVmt4E= sigs.k8s.io/kustomize/kyaml v0.18.1/go.mod h1:C3L2BFVU1jgcddNBE1TxuVLgS46TjObMwW5FT9FcjYo= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= +sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc= +sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=