diff --git a/cmd/apply.go b/cmd/apply.go index 6b5a23f4..84209400 100644 --- a/cmd/apply.go +++ b/cmd/apply.go @@ -67,6 +67,7 @@ func NewApplyCmd(globalCfg *config.GlobalImpl) *cobra.Command { 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") + f.StringVar(&applyOptions.TemplateArgs, "template-args", "--dry-run=server", `pass extra args to helm template during chartify pre-render (default: --dry-run=server)`) return cmd } diff --git a/cmd/sync.go b/cmd/sync.go index 3bd80e6f..d9336826 100644 --- a/cmd/sync.go +++ b/cmd/sync.go @@ -53,6 +53,7 @@ func NewSyncCmd(globalCfg *config.GlobalImpl) *cobra.Command { 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") + f.StringVar(&syncOptions.TemplateArgs, "template-args", "--dry-run=server", `pass extra args to helm template during chartify pre-render (default: --dry-run=server)`) return cmd } diff --git a/pkg/app/app.go b/pkg/app/app.go index b7b99a1a..0aea82e9 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -371,8 +371,7 @@ func (a *App) Sync(c SyncConfigProvider) error { IncludeTransitiveNeeds: c.IncludeNeeds(), Validate: c.Validate(), Concurrency: c.Concurrency(), - // Ensure lookup during chartify pre-render connects to cluster - TemplateArgs: "--dry-run=server", + TemplateArgs: c.TemplateArgs(), }, func() { ok, errs = a.sync(run, c) }) @@ -409,8 +408,8 @@ func (a *App) Apply(c ApplyConfigProvider) error { Validate: c.Validate(), Concurrency: c.Concurrency(), IncludeTransitiveNeeds: c.IncludeNeeds(), - // Ensure lookup during chartify pre-render connects to cluster - TemplateArgs: "--dry-run=server", + // Use user-provided template args; default is set via flag ("--dry-run=server") + TemplateArgs: c.TemplateArgs(), }, func() { matched, updated, es := a.apply(run, c) diff --git a/pkg/app/config.go b/pkg/app/config.go index a3d76d7e..8caea3c8 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -117,6 +117,7 @@ type SyncConfigProvider interface { IncludeTransitiveNeeds() bool SyncReleaseLabels() bool + TemplateArgs() string DAGConfig diff --git a/pkg/config/apply.go b/pkg/config/apply.go index 3f22d59b..a4a760d2 100644 --- a/pkg/config/apply.go +++ b/pkg/config/apply.go @@ -72,6 +72,8 @@ type ApplyOptions struct { TakeOwnership bool SyncReleaseLabels bool + // TemplateArgs for chartify pre-render (default provided by CLI flag) + TemplateArgs string } // NewApply creates a new Apply @@ -253,9 +255,9 @@ func (a *ApplyImpl) SuppressOutputLineRegex() []string { return a.ApplyOptions.SuppressOutputLineRegex } -// TemplateArgs returns extra args for helm template; not applicable to apply, return empty. +// TemplateArgs returns extra args for helm template func (a *ApplyImpl) TemplateArgs() string { - return "" + return a.ApplyOptions.TemplateArgs } // SyncArgs returns the SyncArgs. diff --git a/pkg/config/sync.go b/pkg/config/sync.go index 8d68aba8..ddb7fcd0 100644 --- a/pkg/config/sync.go +++ b/pkg/config/sync.go @@ -46,6 +46,9 @@ type SyncOptions struct { TakeOwnership bool // SyncReleaseLabels is the sync release labels flag SyncReleaseLabels bool + // TemplateArgs are extra args appended to helm template during chartify pre-render for sync + // Defaults to "--dry-run=server" via flag. + TemplateArgs string } // NewSyncOptions creates a new Apply @@ -180,3 +183,7 @@ func (t *SyncImpl) TakeOwnership() bool { func (t *SyncImpl) SyncReleaseLabels() bool { return t.SyncOptions.SyncReleaseLabels } + +func (t *SyncImpl) TemplateArgs() string { + return t.SyncOptions.TemplateArgs +}