diff --git a/main.go b/main.go index 6ed46a08..09aacdfe 100644 --- a/main.go +++ b/main.go @@ -282,6 +282,10 @@ func main() { Name: "include-crds", Usage: "include CRDs in the templated output", }, + cli.BoolFlag{ + Name: "skip-tests", + Usage: "skip tests from templated output", + }, cli.BoolFlag{ Name: "include-needs", Usage: `automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when when --selector/-l flag is not provided`, @@ -934,6 +938,10 @@ func (c configImpl) IncludeCRDs() bool { return c.c.Bool("include-crds") } +func (c configImpl) SkipTests() bool { + return c.c.Bool("skip-tests") +} + func (c configImpl) Logger() *zap.SugaredLogger { return c.c.App.Metadata["logger"].(*zap.SugaredLogger) } diff --git a/pkg/app/app.go b/pkg/app/app.go index 0ddf9e2c..03feea8b 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -1858,6 +1858,7 @@ func (a *App) template(r *Run, c TemplateConfigProvider) (bool, []error) { IncludeCRDs: c.IncludeCRDs(), OutputDirTemplate: c.OutputDirTemplate(), SkipCleanup: c.SkipCleanup(), + SkipTests: c.SkipTests(), } return subst.TemplateReleases(helm, c.OutputDir(), c.Values(), args, c.Concurrency(), c.Validate(), opts) })) diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index 549926b8..4ba6059b 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -2268,6 +2268,7 @@ type configImpl struct { skipCleanup bool skipCRDs bool skipDeps bool + skipTests bool skipNeeds bool includeNeeds bool @@ -2310,6 +2311,10 @@ func (c configImpl) SkipNeeds() bool { return c.skipNeeds } +func (c configImpl) SkipTests() bool { + return c.skipTests +} + func (c configImpl) IncludeNeeds() bool { return c.includeNeeds } diff --git a/pkg/app/config.go b/pkg/app/config.go index beda1fa7..c37f2c87 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -177,6 +177,7 @@ type TemplateConfigProvider interface { Validate() bool SkipDeps() bool SkipCleanup() bool + SkipTests() bool OutputDir() string IncludeCRDs() bool IncludeNeeds() bool diff --git a/pkg/state/state.go b/pkg/state/state.go index a8bcb49b..d54df955 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1307,6 +1307,7 @@ type TemplateOpts struct { SkipCleanup bool OutputDirTemplate string IncludeCRDs bool + SkipTests bool } type TemplateOpt interface{ Apply(*TemplateOpts) } @@ -1385,6 +1386,10 @@ func (st *HelmState) TemplateReleases(helm helmexec.Interface, outputDir string, flags = append(flags, "--include-crds") } + if opts.SkipTests { + flags = append(flags, "--skip-tests") + } + if len(errs) == 0 { if err := helm.TemplateRelease(release.Name, release.Chart, flags...); err != nil { errs = append(errs, err)