Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package helmfile for openSUSE:Factory checked in at 2023-11-02 20:23:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/helmfile (Old) and /work/SRC/openSUSE:Factory/.helmfile.new.17445 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "helmfile" Thu Nov 2 20:23:07 2023 rev:47 rq:1122818 version:0.158.1 Changes: -------- --- /work/SRC/openSUSE:Factory/helmfile/helmfile.changes 2023-10-27 22:29:50.707149637 +0200 +++ /work/SRC/openSUSE:Factory/.helmfile.new.17445/helmfile.changes 2023-11-02 20:23:35.872533702 +0100 @@ -1,0 +2,29 @@ +Thu Nov 2 14:43:59 UTC 2023 - Manfred Hollstein <manfre...@gmx.net> + +- Update to version 0.158.1: + What's Changed + * build(deps): bump github.com/aws/aws-sdk-go from 1.46.0 to 1.46.1 + by @dependabot in #1090 + * build(deps): bump github.com/aws/aws-sdk-go from 1.46.1 to 1.46.2 + by @dependabot in #1091 + * fix issue 1093 by @yxxhero in #1094 + * build(deps): bump google.golang.org/grpc from 1.58.1 to 1.58.3 by + @dependabot in #1099 + * build(deps): bump github.com/aws/aws-sdk-go from 1.46.2 to 1.46.3 + by @dependabot in #1097 + * build(deps): bump github.com/aws/aws-sdk-go from 1.46.3 to 1.46.4 + by @dependabot in #1101 + * build(deps): bump github.com/aws/aws-sdk-go from 1.46.4 to 1.46.5 + by @dependabot in #1102 + * enable run skip-diff-output tests by @yxxhero in #1104 + * fix golang lint error by @yxxhero in #1106 + * build(deps): bump github.com/aws/aws-sdk-go from 1.46.5 to 1.46.6 + by @dependabot in #1107 + * build(deps): bump github.com/docker/docker from 24.0.6+incompatible + to 24.0.7+incompatible by @dependabot in #1108 + * fix chartify with non-chart dir by @yxxhero in #1105 + * build(deps): bump github.com/aws/aws-sdk-go from 1.46.6 to 1.46.7 + by @dependabot in #1109 + * fix #1095 by @yxxhero in #1100 + +------------------------------------------------------------------- Old: ---- helmfile-0.158.0.tar.gz New: ---- helmfile-0.158.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ helmfile.spec ++++++ --- /var/tmp/diff_new_pack.Y1Uujd/_old 2023-11-02 20:23:37.168581391 +0100 +++ /var/tmp/diff_new_pack.Y1Uujd/_new 2023-11-02 20:23:37.176581685 +0100 @@ -17,9 +17,9 @@ # -%define git_commit 9596790a51f9a2c32b66c44cd8b9850c4aa2d7ef +%define git_commit 0c3951097ebadd33075d38f57b56cd85491449c7 Name: helmfile -Version: 0.158.0 +Version: 0.158.1 Release: 0 Summary: Deploy Kubernetes Helm Charts License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.Y1Uujd/_old 2023-11-02 20:23:37.224583452 +0100 +++ /var/tmp/diff_new_pack.Y1Uujd/_new 2023-11-02 20:23:37.228583599 +0100 @@ -5,7 +5,7 @@ <param name="exclude">.git</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> - <param name="revision">v0.158.0</param> + <param name="revision">v0.158.1</param> <param name="changesgenerate">enable</param> </service> <service name="recompress" mode="manual"> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.Y1Uujd/_old 2023-11-02 20:23:37.248584336 +0100 +++ /var/tmp/diff_new_pack.Y1Uujd/_new 2023-11-02 20:23:37.256584629 +0100 @@ -1,5 +1,5 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/helmfile/helmfile.git</param> - <param name="changesrevision">9596790a51f9a2c32b66c44cd8b9850c4aa2d7ef</param></service></servicedata> + <param name="changesrevision">0c3951097ebadd33075d38f57b56cd85491449c7</param></service></servicedata> ++++++ helmfile-0.158.0.tar.gz -> helmfile-0.158.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/.github/workflows/ci.yaml new/helmfile-0.158.1/.github/workflows/ci.yaml --- old/helmfile-0.158.0/.github/workflows/ci.yaml 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/.github/workflows/ci.yaml 2023-11-01 04:55:55.000000000 +0100 @@ -17,9 +17,10 @@ - uses: actions/setup-go@v4 with: go-version-file: go.mod + cache: false - uses: golangci/golangci-lint-action@v3 with: - version: v1.54.2 + version: v1.55.1 tests: runs-on: ubuntu-latest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/go.mod new/helmfile-0.158.1/go.mod --- old/helmfile-0.158.0/go.mod 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/go.mod 2023-11-01 04:55:55.000000000 +0100 @@ -49,7 +49,7 @@ github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/a8m/envsubst v1.3.0 // indirect - github.com/aws/aws-sdk-go v1.46.0 + github.com/aws/aws-sdk-go v1.46.7 github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/blang/semver v3.5.1+incompatible github.com/dimchansky/utfbom v1.1.1 // indirect @@ -107,7 +107,7 @@ google.golang.org/api v0.141.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/grpc v1.58.1 // indirect + google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect @@ -165,7 +165,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/docker/cli v24.0.6+incompatible // indirect github.com/docker/distribution v2.8.2+incompatible // indirect - github.com/docker/docker v24.0.6+incompatible // indirect + github.com/docker/docker v24.0.7+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/go.sum new/helmfile-0.158.1/go.sum --- old/helmfile-0.158.0/go.sum 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/go.sum 2023-11-01 04:55:55.000000000 +0100 @@ -277,8 +277,8 @@ github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.46.0 h1:Igh7W8P+sA6mXJ9yhreOSweefLapcqekhxQlY1llxcM= -github.com/aws/aws-sdk-go v1.46.0/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.46.7 h1:IjvAWeiJZlbETOemOwvheN5L17CvKvKW0T1xOC6d3Sc= +github.com/aws/aws-sdk-go v1.46.7/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v1.21.0 h1:gMT0IW+03wtYJhRqTVYn0wLzwdnK9sRMcxmtfGzRdJc= github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pfHvDagGEp0M= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.13 h1:OPLEkmhXf6xFPiz0bLeDArZIDx1NNS4oJyG4nv3Gct0= @@ -391,8 +391,8 @@ github.com/docker/cli v24.0.6+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v24.0.6+incompatible h1:hceabKCtUgDqPu+qm0NgsaXf28Ljf4/pWFL7xjWWDgE= -github.com/docker/docker v24.0.6+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= +github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= @@ -1460,8 +1460,8 @@ 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.58.1 h1:OL+Vz23DTtrrldqHK49FUOPHyY75rvFqJfXC84NYW58= -google.golang.org/grpc v1.58.1/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= 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= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/pkg/app/app.go new/helmfile-0.158.1/pkg/app/app.go --- old/helmfile-0.158.0/pkg/app/app.go 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/pkg/app/app.go 2023-11-01 04:55:55.000000000 +0100 @@ -1322,7 +1322,7 @@ st := r.state helm := r.helm - helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state, nil)...) + helm.SetExtraArgs(GetArgs(c.Args(), r.state)...) selectedReleases, selectedAndNeededReleases, err := a.getSelectedReleases(r, c.IncludeTransitiveNeeds()) if err != nil { @@ -1368,21 +1368,15 @@ SkipDiffOnInstall: c.SkipDiffOnInstall(), ReuseValues: c.ReuseValues(), ResetValues: c.ResetValues(), + DiffArgs: c.DiffArgs(), PostRenderer: c.PostRenderer(), } - // join --args and --diff-args together to one string. - args := strings.Join([]string{c.Args(), c.DiffArgs()}, " ") - argsOpts := &argparser.GetArgsOptions{WithDiffArgs: true} - helm.SetExtraArgs(argparser.GetArgs(args, r.state, argsOpts)...) - infoMsg, releasesToBeUpdated, releasesToBeDeleted, errs := r.diff(false, detailedExitCode, c, diffOpts) if len(errs) > 0 { return false, false, errs } - helm.SetExtraArgs() - var toDelete []state.ReleaseSpec for _, r := range releasesToBeDeleted { toDelete = append(toDelete, r) @@ -1570,7 +1564,7 @@ `, strings.Join(names, "\n")) interactive := c.Interactive() if !interactive || interactive && r.askForConfirmation(msg) { - r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state, nil)...) + r.helm.SetExtraArgs(GetArgs(c.Args(), r.state)...) if len(releasesToDelete) > 0 { _, deletionErrs := withDAG(st, helm, a.Logger, state.PlanOptions{SelectedReleases: toDelete, Reverse: true, SkipNeeds: true}, a.WrapWithoutSelector(func(subst *state.HelmState, helm helmexec.Interface) []error { @@ -1595,10 +1589,6 @@ ok, errs := a.withNeeds(r, c, true, func(st *state.HelmState) []error { helm := r.helm - args := strings.Join([]string{c.Args(), c.DiffArgs()}, " ") - argsOpts := &argparser.GetArgsOptions{WithDiffArgs: true} - helm.SetExtraArgs(argparser.GetArgs(args, r.state, argsOpts)...) - var errs []error opts := &state.DiffOpts{ @@ -1607,6 +1597,7 @@ Color: c.Color(), NoColor: c.NoColor(), Set: c.Set(), + DiffArgs: c.DiffArgs(), SkipDiffOnInstall: c.SkipDiffOnInstall(), ReuseValues: c.ReuseValues(), ResetValues: c.ResetValues(), @@ -1621,7 +1612,6 @@ } infoMsg, updated, deleted, errs = filtered.diff(true, c.DetailedExitcode(), c, opts) - helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state, argsOpts)...) return errs }) @@ -1634,7 +1624,7 @@ ok, errs := a.withNeeds(r, c, false, func(st *state.HelmState) []error { helm := r.helm - args := argparser.GetArgs(c.Args(), st, nil) + args := GetArgs(c.Args(), st) // Reset the extra args if already set, not to break `helm fetch` by adding the args intended for `lint` helm.SetExtraArgs() @@ -1695,7 +1685,7 @@ // Traverse DAG of all the releases so that we don't suffer from false-positive missing dependencies st.Releases = allReleases - args := argparser.GetArgs(c.Args(), st, nil) + args := GetArgs(c.Args(), st) // Reset the extra args if already set, not to break `helm fetch` by adding the args intended for `lint` helm.SetExtraArgs() @@ -1828,7 +1818,7 @@ var errs []error - r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state, nil)...) + r.helm.SetExtraArgs(GetArgs(c.Args(), r.state)...) // Traverse DAG of all the releases so that we don't suffer from false-positive missing dependencies st.Releases = selectedAndNeededReleases @@ -1895,7 +1885,7 @@ return a.withNeeds(r, c, false, func(st *state.HelmState) []error { helm := r.helm - args := argparser.GetArgs(c.Args(), st, nil) + args := GetArgs(c.Args(), st) // Reset the extra args if already set, not to break `helm fetch` by adding the args intended for `lint` helm.SetExtraArgs() @@ -2018,7 +2008,7 @@ // with conditions and selectors st.Releases = toTest - r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state, nil)...) + r.helm.SetExtraArgs(GetArgs(c.Args(), r.state)...) return st.TestReleases(r.helm, cleanup, timeout, concurrency, state.Logs(c.Logs())) } @@ -2223,3 +2213,18 @@ return nil } + +func GetArgs(args string, state *state.HelmState) []string { + baseArgs := []string{} + stateArgs := []string{} + if len(args) > 0 { + baseArgs = argparser.CollectArgs(args) + } + + if len(state.HelmDefaults.Args) > 0 { + stateArgs = argparser.CollectArgs(strings.Join(state.HelmDefaults.Args, " ")) + } + state.HelmDefaults.Args = append(baseArgs, stateArgs...) + + return state.HelmDefaults.Args +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/pkg/app/app_test.go new/helmfile-0.158.1/pkg/app/app_test.go --- old/helmfile-0.158.0/pkg/app/app_test.go 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/pkg/app/app_test.go 2023-11-01 04:55:55.000000000 +0100 @@ -17,6 +17,7 @@ "github.com/google/go-cmp/cmp" "github.com/helmfile/vals" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "go.uber.org/zap" "helm.sh/helm/v3/pkg/chart" @@ -4269,3 +4270,42 @@ _, fn, line, _ := goruntime.Caller(1) return fmt.Sprintf("%s:%d", filepath.Base(fn), line) } + +func TestGetArgs(t *testing.T) { + tests := []struct { + args string + expected string + defaultArgs []string + }{ + { + args: "-f a.yaml -f b.yaml -i --set app1.bootstrap=true --set app2.bootstrap=false", + defaultArgs: []string{"--recreate-pods", "--force"}, + expected: "-f a.yaml -f b.yaml -i --set app1.bootstrap=true --set app2.bootstrap=false --recreate-pods --force", + }, + { + args: "-e a.yaml -d b.yaml -i --set app1.bootstrap=true --set app2.bootstrap=false", + defaultArgs: []string{"-q www", "-w"}, + expected: "-e a.yaml -d b.yaml -i --set app1.bootstrap=true --set app2.bootstrap=false -q www -w", + }, + { + args: "--timeout=3600 --set app1.bootstrap=true --set app2.bootstrap=false", + expected: "--timeout=3600 --set app1.bootstrap=true --set app2.bootstrap=false", + }, + { + args: "--timeout=3600 --set app1.bootstrap=true --set app2.bootstrap=false,app3.bootstrap=true", + defaultArgs: []string{"--recreate-pods", "--force"}, + expected: "--timeout=3600 --set app1.bootstrap=true --set app2.bootstrap=false,app3.bootstrap=true --recreate-pods --force", + }, + } + for _, test := range tests { + Helmdefaults := state.HelmSpec{KubeContext: "test", Args: test.defaultArgs} + testState := &state.HelmState{ + ReleaseSetSpec: state.ReleaseSetSpec{ + HelmDefaults: Helmdefaults, + }, + } + receivedArgs := GetArgs(test.args, testState) + + require.Equalf(t, test.expected, strings.Join(receivedArgs, " "), "expected args %s, received args %s", test.expected, strings.Join(receivedArgs, " ")) + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/pkg/app/run.go new/helmfile-0.158.1/pkg/app/run.go --- old/helmfile-0.158.0/pkg/app/run.go 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/pkg/app/run.go 2023-11-01 04:55:55.000000000 +0100 @@ -6,7 +6,6 @@ "sort" "strings" - "github.com/helmfile/helmfile/pkg/argparser" "github.com/helmfile/helmfile/pkg/helmexec" "github.com/helmfile/helmfile/pkg/state" ) @@ -105,13 +104,13 @@ } func (r *Run) Deps(c DepsConfigProvider) []error { - r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state, nil)...) + r.helm.SetExtraArgs(GetArgs(c.Args(), r.state)...) return r.state.UpdateDeps(r.helm, c.IncludeTransitiveNeeds()) } func (r *Run) Repos(c ReposConfigProvider) error { - r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state, nil)...) + r.helm.SetExtraArgs(GetArgs(c.Args(), r.state)...) return r.ctx.SyncReposOnce(r.state, r.helm) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/pkg/argparser/args.go new/helmfile-0.158.1/pkg/argparser/args.go --- old/helmfile-0.158.0/pkg/argparser/args.go 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/pkg/argparser/args.go 2023-11-01 04:55:55.000000000 +0100 @@ -3,8 +3,6 @@ import ( "fmt" "strings" - - "github.com/helmfile/helmfile/pkg/state" ) type keyVal struct { @@ -16,9 +14,6 @@ m map[string][]*keyVal flags []string } -type GetArgsOptions struct { - WithDiffArgs bool -} // isNewFlag checks if the given arg is a new flag func isNewFlag(flag string) bool { @@ -86,23 +81,10 @@ } } -func GetArgs(args string, state *state.HelmState, opts *GetArgsOptions) []string { +func CollectArgs(args string) []string { argsMap := newArgMap() - - if len(args) > 0 { - analyzeArgs(argsMap, args) - } - - if len(state.HelmDefaults.Args) > 0 { - analyzeArgs(argsMap, strings.Join(state.HelmDefaults.Args, " ")) - } - - if len(state.HelmDefaults.DiffArgs) > 0 && opts != nil && opts.WithDiffArgs { - analyzeArgs(argsMap, strings.Join(state.HelmDefaults.DiffArgs, " ")) - } - + analyzeArgs(argsMap, args) var argArr []string - for _, flag := range argsMap.flags { val := argsMap.m[flag] @@ -118,8 +100,5 @@ } } } - - state.HelmDefaults.Args = argArr - - return state.HelmDefaults.Args + return argArr } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/pkg/argparser/args_test.go new/helmfile-0.158.1/pkg/argparser/args_test.go --- old/helmfile-0.158.0/pkg/argparser/args_test.go 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/pkg/argparser/args_test.go 2023-11-01 04:55:55.000000000 +0100 @@ -1,61 +1,11 @@ package argparser import ( - "strings" "testing" "github.com/stretchr/testify/require" - - "github.com/helmfile/helmfile/pkg/state" ) -// TestGetArgs tests the GetArgs function -func TestGetArgs(t *testing.T) { - tests := []struct { - args string - expected string - defaultArgs []string - defaultDiffArgs []string - opts *GetArgsOptions - }{ - { - args: "-f a.yaml -f b.yaml -i --set app1.bootstrap=true --set app2.bootstrap=false", - defaultArgs: []string{"--recreate-pods", "--force"}, - defaultDiffArgs: []string{"--suppress", "Deployment"}, - opts: &GetArgsOptions{WithDiffArgs: true}, - expected: "-f a.yaml -f b.yaml -i --set app1.bootstrap=true --set app2.bootstrap=false --recreate-pods --force --suppress Deployment", - }, - { - args: "-e a.yaml -d b.yaml -i --set app1.bootstrap=true --set app2.bootstrap=false", - defaultArgs: []string{"-q www", "-w"}, - defaultDiffArgs: []string{}, - expected: "-e a.yaml -d b.yaml -i --set app1.bootstrap=true --set app2.bootstrap=false -q www -w", - }, - { - args: "--timeout=3600 --set app1.bootstrap=true --set app2.bootstrap=false", - expected: "--timeout=3600 --set app1.bootstrap=true --set app2.bootstrap=false", - }, - { - args: "--timeout=3600 --set app1.bootstrap=true --set app2.bootstrap=false,app3.bootstrap=true", - defaultArgs: []string{"--recreate-pods", "--force"}, - defaultDiffArgs: []string{"--suppress", "Deployment"}, - opts: &GetArgsOptions{}, - expected: "--timeout=3600 --set app1.bootstrap=true --set app2.bootstrap=false,app3.bootstrap=true --recreate-pods --force", - }, - } - for _, test := range tests { - Helmdefaults := state.HelmSpec{KubeContext: "test", Args: test.defaultArgs, DiffArgs: test.defaultDiffArgs} - testState := &state.HelmState{ - ReleaseSetSpec: state.ReleaseSetSpec{ - HelmDefaults: Helmdefaults, - }, - } - receivedArgs := GetArgs(test.args, testState, test.opts) - - require.Equalf(t, test.expected, strings.Join(receivedArgs, " "), "expected args %s, received args %s", test.expected, strings.Join(receivedArgs, " ")) - } -} - // TestIsNewFlag tests the isNewFlag function func TestIsNewFlag(t *testing.T) { tests := []struct { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/pkg/filesystem/fs.go new/helmfile-0.158.1/pkg/filesystem/fs.go --- old/helmfile-0.158.0/pkg/filesystem/fs.go 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/pkg/filesystem/fs.go 2023-11-01 04:55:55.000000000 +0100 @@ -125,6 +125,9 @@ func (filesystem *FileSystem) fileExistsDefault(path string) (bool, error) { path, err := filesystem.resolveSymlinks(path) if err != nil { + if os.IsNotExist(err) { + return false, nil + } return false, err } _, err = filesystem.Stat(path) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/pkg/filesystem/fs_test.go new/helmfile-0.158.1/pkg/filesystem/fs_test.go --- old/helmfile-0.158.0/pkg/filesystem/fs_test.go 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/pkg/filesystem/fs_test.go 2023-11-01 04:55:55.000000000 +0100 @@ -1,12 +1,13 @@ package filesystem import ( - "errors" "io/fs" "os" "path/filepath" "strings" "testing" + + "github.com/stretchr/testify/require" ) func NewTestFileSystem() FileSystem { @@ -18,7 +19,7 @@ if strings.HasSuffix(s, "existing_dir") { return fileStat{mode: fs.ModeDir}, nil } - return nil, errors.New("Error") + return nil, os.ErrExist }, Getwd: func() (string, error) { return "/test/dir", nil @@ -27,6 +28,9 @@ if s == "/test/dir" { return "/real/dir", nil } else { + if strings.Contains(s, "missing") { + return "", os.ErrExist + } return s, nil } }, @@ -36,79 +40,68 @@ func TestFs_resolveSymlinks(t *testing.T) { ffs := NewTestFileSystem() - path, _ := ffs.resolveSymlinks("../existing_file.txt") - if path != "/real/existing_file.txt" { - t.Errorf("Expected absolute path %s but got %s", "/real/existing_file.txt", path) - } - path, _ = ffs.resolveSymlinks("./existing_file.txt") - if path != "./existing_file.txt" { - t.Errorf("Expected local path %s but got %s", "./existing_file.txt", path) - } - path, _ = ffs.resolveSymlinks("existing_file.txt") - if path != "existing_file.txt" { - t.Errorf("Expected local path %s but got %s", "existing_file.txt", path) - } - path, _ = ffs.resolveSymlinks("/a/b/c/existing_file.txt") - if path != "/a/b/c/existing_file.txt" { - t.Errorf("Expected absolute path %s but got %s", "/a/b/c/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, "/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) } func TestFs_fileExistsDefault(t *testing.T) { ffs := NewTestFileSystem() - exists, _ := ffs.FileExists("existing_file.txt") - if !exists { - t.Errorf("Expected file %s, not found", "existing_file.txt") - } - - exists, _ = ffs.FileExists("missing_file.txt") - if exists { - t.Errorf("Not expected file %s, found", "missing_file.txt") - } + 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, _ = dfs.FileExists("-") - if !exists { - t.Errorf("Not expected file %s, not found", "-") - } + exists, err = dfs.FileExists("-") + require.NoErrorf(t, err, "Expected no error but got %v", err) + require.Truef(t, exists, "Expected file %s, not found", "-") } func TestFs_fileExistsAtDefault(t *testing.T) { ffs := NewTestFileSystem() exists := ffs.FileExistsAt("existing_file.txt") - if !exists { - t.Errorf("Expected file %s, not found", "existing_file.txt") - } + require.Truef(t, exists, "Expected file %s, not found", "existing_file.txt") exists = ffs.FileExistsAt("missing_file.txt") - if exists { - t.Errorf("Not expected file %s, found", "missing_file.txt") - } + require.Falsef(t, exists, "Not expected file %s, found", "missing_file.txt") exists = ffs.FileExistsAt("existing_dir") - if exists { - t.Errorf("Not expected file %s, found", "existing_dir") - } + require.Falsef(t, exists, "Not expected file %s, found", "existing_dir") dfs := DefaultFileSystem() exists = dfs.FileExistsAt("-") - if !exists { - t.Errorf("Not expected file %s, not found", "-") - } + require.Truef(t, exists, "Expected file %s, not found", "-") } func TestFs_directoryExistsDefault(t *testing.T) { ffs := NewTestFileSystem() exists := ffs.DirectoryExistsAt("existing_dir") - if !exists { - t.Errorf("Expected file %s, not found", "existing_dir") - } + require.Truef(t, exists, "Expected file %s, not found", "existing_dir") exists = ffs.DirectoryExistsAt("missing_dir") - if exists { - t.Errorf("Not expected file %s, found", "existing_dir") - } + require.Falsef(t, exists, "Not expected file %s, found", "missing_dir") } func TestFsTeadFile(t *testing.T) { @@ -139,10 +132,11 @@ 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) - if err != nil { - t.Errorf(" write to file %s error: %v", yamlPath, err) - } + require.NoErrorf(t, err, "write to file %s error: %v", yamlPath, err) + readPath := yamlPath if c.path == "-" { readPath = c.path @@ -150,18 +144,12 @@ defer func() { os.Stdin = oldOsStdin }() os.Stdin = tmpfile } - if _, err = tmpfile.Seek(0, 0); err != nil { - t.Errorf("file %s seek error: %v", yamlPath, err) - } + _, err = tmpfile.Seek(0, 0) + require.NoErrorf(t, err, "file %s seek error: %v", yamlPath, err) want, err := dfs.readFile(readPath) - if err != nil { - t.Errorf("read file %s error: %v", readPath, err) - } else { - if string(c.content) != string(want) { - t.Errorf("nexpected error: unexpected=%s, got=%v", string(c.content), string(want)) - } - } + require.NoErrorf(t, err, "read file %s error: %v", readPath, err) + require.Equalf(t, string(c.content), string(want), "unexpected error: unexpected=%s, got=%v", string(c.content), string(want)) }) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/pkg/policy/checker.go new/helmfile-0.158.1/pkg/policy/checker.go --- old/helmfile-0.158.0/pkg/policy/checker.go 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/pkg/policy/checker.go 2023-11-01 04:55:55.000000000 +0100 @@ -37,7 +37,9 @@ if k == "environments" || k == "releases" || k == "---" { if _, ok := resultKeys[k]; !ok { result = append(result, k) - resultKeys[k] = nil + if k != "---" { + resultKeys[k] = nil + } } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/pkg/policy/checker_test.go new/helmfile-0.158.1/pkg/policy/checker_test.go --- old/helmfile-0.158.0/pkg/policy/checker_test.go 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/pkg/policy/checker_test.go 2023-11-01 04:55:55.000000000 +0100 @@ -42,6 +42,14 @@ isStrict: false, }, { + name: "no error when has --- between releases and environments, and --- on top of helmfile.yaml.gotmpl", + filePath: "helmfile.yaml.gotmpl", + content: []byte("---\nenvironments:\n---\nreleases:\n"), + v1mode: false, + expectedErr: false, + isStrict: false, + }, + { name: "error when both releases and environments", filePath: "helmfile.yaml.gotmpl", content: []byte("environments:\nreleases:\n"), @@ -50,8 +58,8 @@ isStrict: false, }, { - name: "no error when both releases and environments for plain yaml on v1", - filePath: "helmfile.yaml.gotmpl", + name: "error when both releases and environments for plain yaml on v1", + filePath: "helmfile.yaml", content: []byte("environments:\nreleases:\n"), v1mode: true, expectedErr: true, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/pkg/state/state.go new/helmfile-0.158.1/pkg/state/state.go --- old/helmfile-0.158.0/pkg/state/state.go 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/pkg/state/state.go 2023-11-01 04:55:55.000000000 +0100 @@ -25,6 +25,7 @@ "go.uber.org/zap" "helm.sh/helm/v3/pkg/cli" + "github.com/helmfile/helmfile/pkg/argparser" "github.com/helmfile/helmfile/pkg/environment" "github.com/helmfile/helmfile/pkg/event" "github.com/helmfile/helmfile/pkg/filesystem" @@ -2446,6 +2447,16 @@ return flags } +func (st *HelmState) appendExtraDiffFlags(flags []string, opt *DiffOpts) []string { + switch { + case opt != nil && opt.DiffArgs != "": + flags = append(flags, argparser.CollectArgs(opt.DiffArgs)...) + case st.HelmDefaults.DiffArgs != nil: + flags = append(flags, argparser.CollectArgs(strings.Join(st.HelmDefaults.DiffArgs, " "))...) + } + return flags +} + // appendKeyringFlags append all the helm command-line flags related to keyring func (st *HelmState) appendKeyringFlags(flags []string, release *ReleaseSpec) []string { switch { @@ -2646,6 +2657,8 @@ if err != nil { return nil, files, err } + flags = st.appendExtraDiffFlags(flags, opt) + return append(flags, common...), files, nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/run.sh new/helmfile-0.158.1/test/integration/run.sh --- old/helmfile-0.158.0/test/integration/run.sh 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/test/integration/run.sh 2023-11-01 04:55:55.000000000 +0100 @@ -76,10 +76,13 @@ # TEST CASES---------------------------------------------------------------------------------------------------------- +. ${dir}/test-cases/happypath.sh +. ${dir}/test-cases/chartify-with-non-chart-dir.sh +. ${dir}/test-cases/diff-args.sh . ${dir}/test-cases/helmfile-double-fetch.sh +. ${dir}/test-cases/skip-diff-output.sh . ${dir}/test-cases/v1-subhelmfile-multi-bases-with-array-values.sh . ${dir}/test-cases/kustomized-fetch.sh -. ${dir}/test-cases/happypath.sh . ${dir}/test-cases/regression.sh . ${dir}/test-cases/secretssops.sh . ${dir}/test-cases/yaml-overwrite.sh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir/input/helmfiles/helmfile.yaml new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir/input/helmfiles/helmfile.yaml --- old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir/input/helmfiles/helmfile.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir/input/helmfiles/helmfile.yaml 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,3 @@ +releases: + - name: manifests + chart: ../manifests \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir/input/manifests/configmap.yaml new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir/input/manifests/configmap.yaml --- old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir/input/manifests/configmap.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir/input/manifests/configmap.yaml 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: configmap +data: + foo: "bar" + bar: "baz" \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir/output/diff-result new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir/output/diff-result --- old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir/output/diff-result 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir/output/diff-result 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,18 @@ +******************** + + Release was not present in Helm. Diff will show entire contents as new. + +******************** +helmfile-tests, configmap, ConfigMap (v1) has been added: +- ++ # Source: manifests/templates/configmap.yaml ++ # Source: manifests/templates/configmap.yaml ++ apiVersion: v1 ++ kind: ConfigMap ++ metadata: ++ name: configmap ++ namespace: helmfile-tests ++ data: ++ foo: "bar" ++ bar: "baz" + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir/output/diff-result-live new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir/output/diff-result-live --- old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir/output/diff-result-live 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir/output/diff-result-live 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,17 @@ +******************** + + Release was not present in Helm. Diff will show entire contents as new. + +******************** +helmfile-tests, configmap, ConfigMap (v1) has been added: +- ++ # Source: manifests/templates/configmap.yaml ++ # Source: manifests/templates/configmap.yaml ++ apiVersion: v1 ++ kind: ConfigMap ++ metadata: ++ name: configmap ++ namespace: helmfile-tests ++ data: ++ foo: "bar" ++ bar: "baz" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir/readme.md new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir/readme.md --- old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir/readme.md 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir/readme.md 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1 @@ +https://github.com/helmfile/helmfile/issues/1103 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir.sh new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir.sh --- old/helmfile-0.158.0/test/integration/test-cases/chartify-with-non-chart-dir.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/chartify-with-non-chart-dir.sh 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,24 @@ +chartify_with_non_chart_dirt_input_dir="${cases_dir}/chartify-with-non-chart-dir/input" +chartify_with_non_chart_dirt_output_dir="${cases_dir}/chartify-with-non-chart-dir/output" + +chartify_with_non_chart_dirt_tmp=$(mktemp -d) +chartify_with_non_chart_dirt_reverse=${chartify_with_non_chart_dirt_tmp}/chartify.with.non.chart.build.yaml + +case_title="chartify with non-chart dir" + +diff_out_file=${chartify_with_non_chart_dirt_output_dir}/diff-result + + +if [[ $EXTRA_HELMFILE_FLAGS == *--enable-live-output* ]]; then + diff_out_file=${chartify_with_non_chart_dirt_output_dir}/diff-result-live +fi + +test_start "$case_title" +info "Comparing ${case_title} diff for output ${chartify_with_non_chart_dirt_reverse} with ${diff_out_file}" +for i in $(seq 10); do + info "Comparing chartify-with-non-chart-dir diff log #$i" + ${helmfile} -f ${chartify_with_non_chart_dirt_input_dir}/helmfiles/helmfile.yaml diff | grep -v "^Comparing release" > ${chartify_with_non_chart_dirt_reverse} || fail "\"helmfile diff\" shouldn't fail" + diff -u ${diff_out_file} ${chartify_with_non_chart_dirt_reverse} || fail "\"helmfile diff\" should be consistent" + echo code=$? +done +test_pass "$case_title" \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/cli-overwrite-environment-values/input/config.yaml new/helmfile-0.158.1/test/integration/test-cases/cli-overwrite-environment-values/input/config.yaml --- old/helmfile-0.158.0/test/integration/test-cases/cli-overwrite-environment-values/input/config.yaml 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/test/integration/test-cases/cli-overwrite-environment-values/input/config.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +0,0 @@ -chartifyTempDir: environment_overwrite_values -helmfileArgs: -- template -- --state-values-set -- ns=test3 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/cli-overwrite-environment-values.sh new/helmfile-0.158.1/test/integration/test-cases/cli-overwrite-environment-values.sh --- old/helmfile-0.158.0/test/integration/test-cases/cli-overwrite-environment-values.sh 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/test/integration/test-cases/cli-overwrite-environment-values.sh 2023-11-01 04:55:55.000000000 +0100 @@ -1,5 +1,5 @@ -cli-overwrite-environment-values_input_dir="${cases_dir}/cli-overwrite-environment-values/input" -cli-overwrite-environment-values_output_dir="${cases_dir}/cli-overwrite-environment-values/output" +cli_overwrite_environment_values_input_dir="${cases_dir}/cli-overwrite-environment-values/input" +cli_overwrite_environment_values_output_dir="${cases_dir}/cli-overwrite-environment-values/output" cli_overwrite_environment_values_tmp=$(mktemp -d) cli_overwrite_environment_values_reverse=${cli_overwrite_environment_values_tmp}/cli.environment.override.build.yaml @@ -8,21 +8,21 @@ 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" + 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" - diff -u ${cli-overwrite-environment-values_output_dir}/output_v1.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" + ${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" + 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" + 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" - diff -u ${cli-overwrite-environment-values_output_dir}/output_v1.yaml ${cli_overwrite_environment_values_reverse} || fail "\"helmfile template\" should be consistent" + ${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" + 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}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/diff-args/input/helmfile.yaml new/helmfile-0.158.1/test/integration/test-cases/diff-args/input/helmfile.yaml --- old/helmfile-0.158.0/test/integration/test-cases/diff-args/input/helmfile.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/diff-args/input/helmfile.yaml 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,10 @@ +helmDefaults: + diffArgs: + - "--three-way-merge" +releases: + - name: uninstalled + chart: ../../../charts/httpbin + installed: false + - name: installed + chart: ../../../charts/httpbin + installed: true \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/diff-args/output/apply new/helmfile-0.158.1/test/integration/test-cases/diff-args/output/apply --- old/helmfile-0.158.0/test/integration/test-cases/diff-args/output/apply 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/diff-args/output/apply 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,77 @@ +Comparing release=installed, chart=../../../charts/httpbin +******************** + + Release was not present in Helm. Diff will show entire contents as new. + +******************** +helmfile-tests, installed-httpbin, Deployment (apps) has been added: +- ++ apiVersion: apps/v1 ++ kind: Deployment ++ metadata: ++ labels: ++ app: httpbin ++ chart: httpbin-0.1.0 ++ heritage: Helm ++ release: installed ++ name: installed-httpbin ++ namespace: helmfile-tests ++ spec: ++ replicas: 1 ++ selector: ++ matchLabels: ++ app: httpbin ++ strategy: {} ++ template: ++ metadata: ++ labels: ++ app: httpbin ++ release: installed ++ spec: ++ containers: ++ - image: docker.io/citizenstig/httpbin:latest ++ imagePullPolicy: IfNotPresent ++ livenessProbe: ++ httpGet: ++ path: / ++ port: 8000 ++ name: httpbin ++ ports: ++ - containerPort: 8000 ++ readinessProbe: ++ httpGet: ++ path: / ++ port: 8000 ++ resources: {} ++ status: {} +helmfile-tests, installed-httpbin, Service (v1) has been added: +- ++ apiVersion: v1 ++ kind: Service ++ metadata: ++ labels: ++ app: httpbin ++ chart: httpbin-0.1.0 ++ heritage: Helm ++ release: installed ++ name: installed-httpbin ++ namespace: helmfile-tests ++ spec: ++ ports: ++ - name: httpbin ++ port: 8000 ++ protocol: TCP ++ targetPort: 8000 ++ selector: ++ app: httpbin ++ release: installed ++ type: LoadBalancer + +Release "installed" does not exist. Installing it now. +NAME: installed +NAMESPACE: helmfile-tests +STATUS: deployed +REVISION: 1 +TEST SUITE: None + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/diff-args/output/apply-live new/helmfile-0.158.1/test/integration/test-cases/diff-args/output/apply-live --- old/helmfile-0.158.0/test/integration/test-cases/diff-args/output/apply-live 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/diff-args/output/apply-live 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,77 @@ +******************** + + Release was not present in Helm. Diff will show entire contents as new. + +******************** +helmfile-tests, installed-httpbin, Deployment (apps) has been added: +- ++ apiVersion: apps/v1 ++ kind: Deployment ++ metadata: ++ labels: ++ app: httpbin ++ chart: httpbin-0.1.0 ++ heritage: Helm ++ release: installed ++ name: installed-httpbin ++ namespace: helmfile-tests ++ spec: ++ replicas: 1 ++ selector: ++ matchLabels: ++ app: httpbin ++ strategy: {} ++ template: ++ metadata: ++ labels: ++ app: httpbin ++ release: installed ++ spec: ++ containers: ++ - image: docker.io/citizenstig/httpbin:latest ++ imagePullPolicy: IfNotPresent ++ livenessProbe: ++ httpGet: ++ path: / ++ port: 8000 ++ name: httpbin ++ ports: ++ - containerPort: 8000 ++ readinessProbe: ++ httpGet: ++ path: / ++ port: 8000 ++ resources: {} ++ status: {} +helmfile-tests, installed-httpbin, Service (v1) has been added: +- ++ apiVersion: v1 ++ kind: Service ++ metadata: ++ labels: ++ app: httpbin ++ chart: httpbin-0.1.0 ++ heritage: Helm ++ release: installed ++ name: installed-httpbin ++ namespace: helmfile-tests ++ spec: ++ ports: ++ - name: httpbin ++ port: 8000 ++ protocol: TCP ++ targetPort: 8000 ++ selector: ++ app: httpbin ++ release: installed ++ type: LoadBalancer +Error: identified at least one change, exiting with non-zero exit code (detailed-exitcode parameter enabled) +Error: plugin "diff" exited with error +Comparing release=installed, chart=../../../charts/httpbin +Release "installed" does not exist. Installing it now. +NAME: installed +NAMESPACE: helmfile-tests +STATUS: deployed +REVISION: 1 +TEST SUITE: None + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/diff-args/output/diff new/helmfile-0.158.1/test/integration/test-cases/diff-args/output/diff --- old/helmfile-0.158.0/test/integration/test-cases/diff-args/output/diff 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/diff-args/output/diff 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,69 @@ +Comparing release=installed, chart=../../../charts/httpbin +******************** + + Release was not present in Helm. Diff will show entire contents as new. + +******************** +helmfile-tests, installed-httpbin, Deployment (apps) has been added: +- ++ apiVersion: apps/v1 ++ kind: Deployment ++ metadata: ++ labels: ++ app: httpbin ++ chart: httpbin-0.1.0 ++ heritage: Helm ++ release: installed ++ name: installed-httpbin ++ namespace: helmfile-tests ++ spec: ++ replicas: 1 ++ selector: ++ matchLabels: ++ app: httpbin ++ strategy: {} ++ template: ++ metadata: ++ labels: ++ app: httpbin ++ release: installed ++ spec: ++ containers: ++ - image: docker.io/citizenstig/httpbin:latest ++ imagePullPolicy: IfNotPresent ++ livenessProbe: ++ httpGet: ++ path: / ++ port: 8000 ++ name: httpbin ++ ports: ++ - containerPort: 8000 ++ readinessProbe: ++ httpGet: ++ path: / ++ port: 8000 ++ resources: {} ++ status: {} +helmfile-tests, installed-httpbin, Service (v1) has been added: +- ++ apiVersion: v1 ++ kind: Service ++ metadata: ++ labels: ++ app: httpbin ++ chart: httpbin-0.1.0 ++ heritage: Helm ++ release: installed ++ name: installed-httpbin ++ namespace: helmfile-tests ++ spec: ++ ports: ++ - name: httpbin ++ port: 8000 ++ protocol: TCP ++ targetPort: 8000 ++ selector: ++ app: httpbin ++ release: installed ++ type: LoadBalancer + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/diff-args/output/diff-live new/helmfile-0.158.1/test/integration/test-cases/diff-args/output/diff-live --- old/helmfile-0.158.0/test/integration/test-cases/diff-args/output/diff-live 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/diff-args/output/diff-live 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,68 @@ +******************** + + Release was not present in Helm. Diff will show entire contents as new. + +******************** +helmfile-tests, installed-httpbin, Deployment (apps) has been added: +- ++ apiVersion: apps/v1 ++ kind: Deployment ++ metadata: ++ labels: ++ app: httpbin ++ chart: httpbin-0.1.0 ++ heritage: Helm ++ release: installed ++ name: installed-httpbin ++ namespace: helmfile-tests ++ spec: ++ replicas: 1 ++ selector: ++ matchLabels: ++ app: httpbin ++ strategy: {} ++ template: ++ metadata: ++ labels: ++ app: httpbin ++ release: installed ++ spec: ++ containers: ++ - image: docker.io/citizenstig/httpbin:latest ++ imagePullPolicy: IfNotPresent ++ livenessProbe: ++ httpGet: ++ path: / ++ port: 8000 ++ name: httpbin ++ ports: ++ - containerPort: 8000 ++ readinessProbe: ++ httpGet: ++ path: / ++ port: 8000 ++ resources: {} ++ status: {} +helmfile-tests, installed-httpbin, Service (v1) has been added: +- ++ apiVersion: v1 ++ kind: Service ++ metadata: ++ labels: ++ app: httpbin ++ chart: httpbin-0.1.0 ++ heritage: Helm ++ release: installed ++ name: installed-httpbin ++ namespace: helmfile-tests ++ spec: ++ ports: ++ - name: httpbin ++ port: 8000 ++ protocol: TCP ++ targetPort: 8000 ++ selector: ++ app: httpbin ++ release: installed ++ type: LoadBalancer +Comparing release=installed, chart=../../../charts/httpbin diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/diff-args/readme.md new/helmfile-0.158.1/test/integration/test-cases/diff-args/readme.md --- old/helmfile-0.158.0/test/integration/test-cases/diff-args/readme.md 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/diff-args/readme.md 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1 @@ +https://github.com/helmfile/helmfile/issues/1095 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/diff-args.sh new/helmfile-0.158.1/test/integration/test-cases/diff-args.sh --- old/helmfile-0.158.0/test/integration/test-cases/diff-args.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/diff-args.sh 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,28 @@ +diff_args_input_dir="${cases_dir}/diff-args/input" +diff_args_output_dir="${cases_dir}/diff-args/output" + +diff_args_tmp=$(mktemp -d) +diff_args_reverse=${diff_args_tmp}/diff.args.build.yaml + +case_title="diff args" +diff_out_file=${diff_args_output_dir}/diff +apply_out_file=${diff_args_output_dir}/apply +if [[ $EXTRA_HELMFILE_FLAGS == *--enable-live-output* ]]; then + apply_out_file=${diff_args_output_dir}/apply-live + diff_out_file=${diff_args_output_dir}/diff-live +fi + +test_start "$case_title" +info "Comparing ${case_title} diff for output ${diff_args_reverse} with ${diff_out_file}" +for i in $(seq 10); do + info "Comparing diff-args diff log #$i" + ${helmfile} -f ${diff_args_input_dir}/helmfile.yaml diff > ${diff_args_reverse} || fail "\"helmfile diff\" shouldn't fail" + diff -u ${diff_out_file} ${diff_args_reverse} || fail "\"helmfile diff\" should be consistent" + echo code=$? +done +info "Comparing ${case_title} apply for output ${diff_args_reverse} with ${apply_out_file}" +${helmfile} -f ${diff_args_input_dir}/helmfile.yaml apply | grep -vE "^(LAST DEPLOYED|installed)" > ${diff_args_reverse} || fail "\"helmfile apply\" shouldn't fail" +diff -u ${apply_out_file} ${diff_args_reverse} || fail "\"helmfile apply\" should be consistent" +echo "clean up diff args resources" +${helmfile} -f ${diff_args_input_dir}/helmfile.yaml destroy || fail "\"helmfile destroy\" shouldn't fail" +test_pass "$case_title" \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/input/helmfile.yaml new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/input/helmfile.yaml --- old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/input/helmfile.yaml 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/input/helmfile.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,36 +0,0 @@ -releases: -- name: foo - chart: ../../../charts/raw - values: - - templates: - - | - apiVersion: v1 - kind: ConfigMap - metadata: - name: {{`{{ .Release.Name }}`}}-1 - namespace: {{`{{ .Release.Namespace }}`}} - data: - foo: FOO - dep: - templates: - - | - apiVersion: v1 - kind: ConfigMap - metadata: - name: {{`{{ .Release.Name }}`}}-2 - namespace: {{`{{ .Release.Namespace }}`}} - data: - bar: BAR - suppressDiff: true -- name: baz - chart: ../../../charts/raw - values: - - templates: - - | - apiVersion: v1 - kind: ConfigMap - metadata: - name: {{`{{ .Release.Name }}`}}-3 - namespace: {{`{{ .Release.Namespace }}`}} - data: - baz: BAZ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/input/helmfile.yaml.gotmpl new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/input/helmfile.yaml.gotmpl --- old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/input/helmfile.yaml.gotmpl 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/input/helmfile.yaml.gotmpl 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,26 @@ +releases: +- name: foo + chart: ../../../charts/raw + values: + - templates: + - | + apiVersion: v1 + kind: ConfigMap + metadata: + name: {{`{{ .Release.Name }}`}}-1 + namespace: {{`{{ .Release.Namespace }}`}} + data: + foo: FOO + suppressDiff: true +- name: baz + chart: ../../../charts/raw + values: + - templates: + - | + apiVersion: v1 + kind: ConfigMap + metadata: + name: {{`{{ .Release.Name }}`}}-2 + namespace: {{`{{ .Release.Namespace }}`}} + data: + baz: BAZ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/output/diff-result new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/output/diff-result --- old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/output/diff-result 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/output/diff-result 2023-11-01 04:55:55.000000000 +0100 @@ -1,20 +1,18 @@ -Building dependency release=foo, chart=../../../charts/raw -Building dependency release=baz, chart=../../../charts/raw Comparing release=foo, chart=../../../charts/raw - Comparing release=baz, chart=../../../charts/raw ******************** Release was not present in Helm. Diff will show entire contents as new. ******************** -helmfile-tests, baz-3, ConfigMap (v1) has been added: -- +helmfile-tests, baz-2, ConfigMap (v1) has been added: +- + # Source: raw/templates/resources.yaml + apiVersion: v1 + kind: ConfigMap + metadata: -+ name: baz-3 ++ name: baz-2 + namespace: helmfile-tests + data: + baz: BAZ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/output/diff-result-live new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/output/diff-result-live --- old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/output/diff-result-live 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/output/diff-result-live 2023-11-01 04:55:55.000000000 +0100 @@ -1,18 +1,15 @@ -Live output is enabled -Building dependency release=foo, chart=../../../charts/raw -Building dependency release=baz, chart=../../../charts/raw ******************** Release was not present in Helm. Diff will show entire contents as new. ******************** -helmfile-tests, baz-3, ConfigMap (v1) has been added: -- +helmfile-tests, baz-2, ConfigMap (v1) has been added: +- + # Source: raw/templates/resources.yaml + apiVersion: v1 + kind: ConfigMap + metadata: -+ name: baz-3 ++ name: baz-2 + namespace: helmfile-tests + data: + baz: BAZ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/output/template-result new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/output/template-result --- old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/output/template-result 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/output/template-result 2023-11-01 04:55:55.000000000 +0100 @@ -1,6 +1,3 @@ -Building dependency release=foo, chart=../../../charts/raw -Building dependency release=baz, chart=../../../charts/raw -Templating release=foo, chart=../../../charts/raw --- # Source: raw/templates/resources.yaml apiVersion: v1 @@ -11,13 +8,13 @@ data: foo: FOO -Templating release=baz, chart=../../../charts/raw --- # Source: raw/templates/resources.yaml apiVersion: v1 kind: ConfigMap metadata: - name: baz-3 + name: baz-2 namespace: helmfile-tests data: baz: BAZ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/output/template-result-live new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/output/template-result-live --- old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output/output/template-result-live 2023-10-22 23:51:40.000000000 +0200 +++ new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output/output/template-result-live 1970-01-01 01:00:00.000000000 +0100 @@ -1,25 +0,0 @@ -Live output is enabled -Building dependency release=foo, chart=../../../charts/raw -Building dependency release=baz, chart=../../../charts/raw -Templating release=foo, chart=../../../charts/raw ---- -# Source: raw/templates/resources.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: foo-1 - namespace: helmfile-tests -data: - foo: FOO - -Templating release=baz, chart=../../../charts/raw ---- -# Source: raw/templates/resources.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: baz-3 - namespace: helmfile-tests -data: - baz: BAZ - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output.sh new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output.sh --- old/helmfile-0.158.0/test/integration/test-cases/skip-diff-output.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/helmfile-0.158.1/test/integration/test-cases/skip-diff-output.sh 2023-11-01 04:55:55.000000000 +0100 @@ -0,0 +1,32 @@ +skip_diff_output_input_dir="${cases_dir}/skip-diff-output/input" +skip_diff_output_output_dir="${cases_dir}/skip-diff-output/output" + +skip_diff_output_tmp=$(mktemp -d) +skip_diff_output_reverse=${skip_diff_output_tmp}/skip.diff.output.build.yaml + +case_title="skip diff output" + +diff_out_file=${skip_diff_output_output_dir}/diff-result +template_out_file=${skip_diff_output_output_dir}/template-result + +if [[ $EXTRA_HELMFILE_FLAGS == *--enable-live-output* ]]; then + diff_out_file=${skip_diff_output_output_dir}/diff-result-live +fi + +test_start "$case_title" +info "Comparing ${case_title} diff for output ${skip_diff_output_reverse} with ${diff_out_file}" +for i in $(seq 10); do + info "Comparing skip-diff-output diff log #$i" + ${helmfile} -f ${skip_diff_output_input_dir}/helmfile.yaml.gotmpl diff > ${skip_diff_output_reverse} || fail "\"helmfile diff\" shouldn't fail" + diff -u ${diff_out_file} ${skip_diff_output_reverse} || fail "\"helmfile diff\" should be consistent" + echo code=$? +done + +info "Comparing ${case_title} template for output ${skip_diff_output_reverse} with ${template_out_file}" +for i in $(seq 10); do + info "Comparing skip-diff-output template log #$i" + ${helmfile} -f ${skip_diff_output_input_dir}/helmfile.yaml.gotmpl template > ${skip_diff_output_reverse} || fail "\"helmfile template\" shouldn't fail" + diff -u ${template_out_file} ${skip_diff_output_reverse} || fail "\"helmfile template\" should be consistent" + echo code=$? +done +test_pass "$case_title" \ No newline at end of file ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/helmfile/vendor.tar.gz /work/SRC/openSUSE:Factory/.helmfile.new.17445/vendor.tar.gz differ: char 5, line 1