diff --git a/pkg/state/helmx.go b/pkg/state/helmx.go index fc128339..0f727e06 100644 --- a/pkg/state/helmx.go +++ b/pkg/state/helmx.go @@ -110,8 +110,13 @@ func (st *HelmState) appendWaitFlags(flags []string, release *ReleaseSpec, ops * // If the opt parameter is not nil and opt.DryRun is not empty, the "--dry-run" flag and the value of opt.DryRun are appended to the flags slice. // The updated flags slice is returned. func (st *HelmState) appendDryRunFlags(flags []string, opt *SyncOpts) []string { - if opt != nil && opt.DryRun != "" { - flags = append(flags, "--dry-run", opt.DryRun) + if helm.IsVersionAtLeast("3.13.0") { + switch { + case opt != nil && opt.DryRun != "": + flags = append(flags, "--dry-run", opt.DryRun) + case opt != nil && opt.DryRun != "": + flags = append(flags, "--dry-run", "client") + } } return flags } diff --git a/pkg/state/helmx_test.go b/pkg/state/helmx_test.go index 0a94c106..6c326cee 100644 --- a/pkg/state/helmx_test.go +++ b/pkg/state/helmx_test.go @@ -289,16 +289,45 @@ func TestAppendDryRunFlags(t *testing.T) { { name: "do dry-run on client", args: args{ +<<<<<<< Updated upstream dryRun: "client", +======= + flags: []string{}, + dry-run: "client", + helm: testutil.NewVersionHelmExec("3.13.0"), + expected: []string{"--dry-run", "client"}, + }, + }, + { + name: "empty dry-run means client", + args: args{ + flags: []string{}, + dry-run: "", + helm: testutil.NewVersionHelmExec("3.13.0"), +>>>>>>> Stashed changes expected: []string{"--dry-run", "client"}, }, }, { name: "do dry-run on server", args: args{ +<<<<<<< Updated upstream dryRun: "server", +======= + flags: []string{}, + dry-run: "server", + helm: testutil.NewVersionHelmExec("3.13.0"), +>>>>>>> Stashed changes expected: []string{"--dry-run", "server"}, }, + { + name: "no version below 3.13.0", + args: args{ + flags: []string{}, + dry-run: "server", + helm: testutil.NewVersionHelmExec("3.12.1"), + expected: []string{}, + }, }, } for _, tt := range tests {