diff --git a/go.mod b/go.mod index ebc590da..2de281cf 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/helmfile/helmfile go 1.25.4 require ( + al.essio.dev/pkg/shellescape v1.6.0 dario.cat/mergo v1.0.2 github.com/Masterminds/semver/v3 v3.4.0 github.com/Masterminds/sprig/v3 v3.3.0 @@ -110,7 +111,6 @@ require ( ) require ( - al.essio.dev/pkg/shellescape v1.6.0 // indirect cel.dev/expr v0.24.0 // indirect cloud.google.com/go/auth v0.17.0 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect diff --git a/pkg/state/state.go b/pkg/state/state.go index f3cb0887..38b92b22 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1441,18 +1441,26 @@ func (st *HelmState) processChartification(chartification *Chartify, release *Re chartifyOpts.TemplateArgs = fmt.Sprintf("--kube-context %s --dry-run=server", quotedContext) } else { // Only add --kube-context if not already present - if !strings.Contains(chartifyOpts.TemplateArgs, "--kube-context") { + // Check for the flag at word boundaries to avoid false matches + if !strings.Contains(chartifyOpts.TemplateArgs, "--kube-context ") && + !strings.HasPrefix(chartifyOpts.TemplateArgs, "--kube-context=") && + !strings.Contains(chartifyOpts.TemplateArgs, " --kube-context=") { chartifyOpts.TemplateArgs = fmt.Sprintf("--kube-context %s %s", quotedContext, chartifyOpts.TemplateArgs) } // Add --dry-run if not already present - if !strings.Contains(chartifyOpts.TemplateArgs, "--dry-run") { + // Check for the flag at word boundaries to avoid false matches + if !strings.Contains(chartifyOpts.TemplateArgs, "--dry-run ") && + !strings.HasPrefix(chartifyOpts.TemplateArgs, "--dry-run=") && + !strings.Contains(chartifyOpts.TemplateArgs, " --dry-run=") { chartifyOpts.TemplateArgs += " --dry-run=server" } } } else { if chartifyOpts.TemplateArgs == "" { chartifyOpts.TemplateArgs = "--dry-run=server" - } else if !strings.Contains(chartifyOpts.TemplateArgs, "--dry-run") { + } else if !strings.Contains(chartifyOpts.TemplateArgs, "--dry-run ") && + !strings.HasPrefix(chartifyOpts.TemplateArgs, "--dry-run=") && + !strings.Contains(chartifyOpts.TemplateArgs, " --dry-run=") { chartifyOpts.TemplateArgs += " --dry-run=server" } }