diff --git a/pkg/plugins/optional/helm/v1alpha/edit.go b/pkg/plugins/optional/helm/v1alpha/edit.go index f790c14d753..16a2cfe192f 100644 --- a/pkg/plugins/optional/helm/v1alpha/edit.go +++ b/pkg/plugins/optional/helm/v1alpha/edit.go @@ -31,6 +31,11 @@ var _ plugin.EditSubcommand = &editSubcommand{} type editSubcommand struct { config config.Config force bool + + IgnorePrometheus bool + IgnoreNetworkPolicy bool + IgnoreCertManager bool + IgnoreWebhook bool } //nolint:lll @@ -66,6 +71,11 @@ manifests in the chart align with the latest changes. func (p *editSubcommand) BindFlags(fs *pflag.FlagSet) { fs.BoolVar(&p.force, "force", false, "if true, regenerates all the files") + + fs.BoolVar(&p.IgnorePrometheus, "ignore-prometheus", false, "ignore scaffolding of prometheus monitor") + fs.BoolVar(&p.IgnoreNetworkPolicy, "ignore-networkPolicy", false, "ignore scaffolding of network policy") + fs.BoolVar(&p.IgnoreCertManager, "ignore-certmanager", false, "ignore scaffolding of cert-manager manifests") + fs.BoolVar(&p.IgnoreWebhook, "ignore-webhook", false, "ignore scaffolding of webhooks") } func (p *editSubcommand) InjectConfig(c config.Config) error { @@ -74,7 +84,14 @@ func (p *editSubcommand) InjectConfig(c config.Config) error { } func (p *editSubcommand) Scaffold(fs machinery.Filesystem) error { - scaffolder := scaffolds.NewInitHelmScaffolder(p.config, p.force) + ignoreFlags := map[string]bool{ + "ignore-prometheus": p.IgnorePrometheus, + "ignore-networkPolicy": p.IgnoreNetworkPolicy, + "ignore-certmanager": p.IgnoreCertManager, + "ignore-webhook": p.IgnoreWebhook, + } + scaffolder := scaffolds.NewInitHelmScaffolder(p.config, p.force, ignoreFlags) + scaffolder.InjectFS(fs) err := scaffolder.Scaffold() if err != nil { diff --git a/pkg/plugins/optional/helm/v1alpha/init.go b/pkg/plugins/optional/helm/v1alpha/init.go index c09d0051334..f9d56e7daf5 100644 --- a/pkg/plugins/optional/helm/v1alpha/init.go +++ b/pkg/plugins/optional/helm/v1alpha/init.go @@ -47,7 +47,14 @@ func (p *initSubcommand) InjectConfig(c config.Config) error { } func (p *initSubcommand) Scaffold(fs machinery.Filesystem) error { - scaffolder := scaffolds.NewInitHelmScaffolder(p.config, false) + ignoreFlags := map[string]bool{ + "ignore-prometheus": false, + "ignore-networkPolicy": false, + "ignore-certmanager": false, + "ignore-webhook": false, + } + + scaffolder := scaffolds.NewInitHelmScaffolder(p.config, false, ignoreFlags) scaffolder.InjectFS(fs) err := scaffolder.Scaffold() if err != nil { diff --git a/pkg/plugins/optional/helm/v1alpha/scaffolds/init.go b/pkg/plugins/optional/helm/v1alpha/scaffolds/init.go index 9fa00e64406..f93f2202393 100644 --- a/pkg/plugins/optional/helm/v1alpha/scaffolds/init.go +++ b/pkg/plugins/optional/helm/v1alpha/scaffolds/init.go @@ -50,13 +50,22 @@ type initScaffolder struct { fs machinery.Filesystem force bool + + IgnorePrometheus bool + IgnoreCertManager bool + IgnoreWebhook bool + IgnoreNetworkPolicy bool } // NewInitHelmScaffolder returns a new Scaffolder for HelmPlugin -func NewInitHelmScaffolder(cfg config.Config, force bool) plugins.Scaffolder { +func NewInitHelmScaffolder(cfg config.Config, force bool, ignoreFlags map[string]bool) plugins.Scaffolder { return &initScaffolder{ - config: cfg, - force: force, + config: cfg, + force: force, + IgnorePrometheus: ignoreFlags["ignore-prometheus"], + IgnoreCertManager: ignoreFlags["ignore-certmanager"], + IgnoreWebhook: ignoreFlags["ignore-webhook"], + IgnoreNetworkPolicy: ignoreFlags["ignore-networkPolicy"], } } @@ -92,17 +101,31 @@ func (s *initScaffolder) Scaffold() error { }, &templates.HelmIgnore{}, &charttemplates.HelmHelpers{}, - &manager.Deployment{ + } + + if !s.IgnoreWebhook { + buildScaffold = append(buildScaffold, &manager.Deployment{ Force: s.force, DeployImages: len(imagesEnvVars) > 0, HasWebhooks: hasWebhooks, - }, - &templatescertmanager.Certificate{HasWebhooks: hasWebhooks}, - &templatesmetrics.Service{}, - &prometheus.Monitor{}, + }) + } + + if !s.IgnoreCertManager { + buildScaffold = append(buildScaffold, &templatescertmanager.Certificate{ + HasWebhooks: hasWebhooks, + }) + } + + if !s.IgnoreNetworkPolicy { + buildScaffold = append(buildScaffold, &templatesmetrics.Service{}) + } + + if !s.IgnorePrometheus { + buildScaffold = append(buildScaffold, &prometheus.Monitor{}) } - if len(mutatingWebhooks) > 0 || len(validatingWebhooks) > 0 { + if !s.IgnoreWebhook && len(mutatingWebhooks) > 0 || len(validatingWebhooks) > 0 { buildScaffold = append(buildScaffold, &templateswebhooks.Template{ MutatingWebhooks: mutatingWebhooks, @@ -111,7 +134,7 @@ func (s *initScaffolder) Scaffold() error { ) } - if hasWebhooks { + if !s.IgnoreWebhook && hasWebhooks { buildScaffold = append(buildScaffold, &templateswebhooks.Service{}, )