From 22f462729c773562a717ae1f719e633cf866cd0d Mon Sep 17 00:00:00 2001 From: pabhi18 Date: Thu, 26 Jun 2025 21:00:18 +0530 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20=20add=20ignore=20f?= =?UTF-8?q?lags=20for=20selective=20scaffolding=20in=20edit=20command?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/plugins/optional/helm/v1alpha/edit.go | 22 ++++++++- pkg/plugins/optional/helm/v1alpha/init.go | 10 ++++- .../optional/helm/v1alpha/scaffolds/init.go | 45 ++++++++++++++----- 3 files changed, 65 insertions(+), 12 deletions(-) diff --git a/pkg/plugins/optional/helm/v1alpha/edit.go b/pkg/plugins/optional/helm/v1alpha/edit.go index f790c14d753..e50ddf6b5de 100644 --- a/pkg/plugins/optional/helm/v1alpha/edit.go +++ b/pkg/plugins/optional/helm/v1alpha/edit.go @@ -31,6 +31,12 @@ var _ plugin.EditSubcommand = &editSubcommand{} type editSubcommand struct { config config.Config force bool + + IgnoreSamples bool + IgnorePrometheus bool + IgnoreNetworkPolicy bool + IgnoreCertManager bool + IgnoreWebhook bool } //nolint:lll @@ -66,6 +72,12 @@ 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.IgnoreSamples, "ignore-samples", false, "ignore scaffolding of sample CRs") + 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 +86,15 @@ 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-samples": p.IgnoreSamples, + "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..df576599e98 100644 --- a/pkg/plugins/optional/helm/v1alpha/init.go +++ b/pkg/plugins/optional/helm/v1alpha/init.go @@ -47,7 +47,15 @@ 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-samples": false, + "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..d2f11269baf 100644 --- a/pkg/plugins/optional/helm/v1alpha/scaffolds/init.go +++ b/pkg/plugins/optional/helm/v1alpha/scaffolds/init.go @@ -50,13 +50,24 @@ type initScaffolder struct { fs machinery.Filesystem force bool + + IgnorePrometheus bool + IgnoreCertManager bool + IgnoreWebhook bool + IgnoreNetworkPolicy bool + IgnoreSamples 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"], + IgnoreSamples: ignoreFlags["ignore-samples"], } } @@ -92,17 +103,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 +136,7 @@ func (s *initScaffolder) Scaffold() error { ) } - if hasWebhooks { + if !s.IgnoreWebhook && hasWebhooks { buildScaffold = append(buildScaffold, &templateswebhooks.Service{}, ) From ff5d136bf9729ba1fabc19c782ffd2e198db7d0a Mon Sep 17 00:00:00 2001 From: pabhi18 Date: Thu, 26 Jun 2025 22:07:52 +0530 Subject: [PATCH 2/2] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Remove=20unused=20igno?= =?UTF-8?q?re-samples=20flag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/plugins/optional/helm/v1alpha/edit.go | 3 --- pkg/plugins/optional/helm/v1alpha/init.go | 1 - pkg/plugins/optional/helm/v1alpha/scaffolds/init.go | 2 -- 3 files changed, 6 deletions(-) diff --git a/pkg/plugins/optional/helm/v1alpha/edit.go b/pkg/plugins/optional/helm/v1alpha/edit.go index e50ddf6b5de..16a2cfe192f 100644 --- a/pkg/plugins/optional/helm/v1alpha/edit.go +++ b/pkg/plugins/optional/helm/v1alpha/edit.go @@ -32,7 +32,6 @@ type editSubcommand struct { config config.Config force bool - IgnoreSamples bool IgnorePrometheus bool IgnoreNetworkPolicy bool IgnoreCertManager bool @@ -73,7 +72,6 @@ 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.IgnoreSamples, "ignore-samples", false, "ignore scaffolding of sample CRs") 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") @@ -87,7 +85,6 @@ func (p *editSubcommand) InjectConfig(c config.Config) error { func (p *editSubcommand) Scaffold(fs machinery.Filesystem) error { ignoreFlags := map[string]bool{ - "ignore-samples": p.IgnoreSamples, "ignore-prometheus": p.IgnorePrometheus, "ignore-networkPolicy": p.IgnoreNetworkPolicy, "ignore-certmanager": p.IgnoreCertManager, diff --git a/pkg/plugins/optional/helm/v1alpha/init.go b/pkg/plugins/optional/helm/v1alpha/init.go index df576599e98..f9d56e7daf5 100644 --- a/pkg/plugins/optional/helm/v1alpha/init.go +++ b/pkg/plugins/optional/helm/v1alpha/init.go @@ -48,7 +48,6 @@ func (p *initSubcommand) InjectConfig(c config.Config) error { func (p *initSubcommand) Scaffold(fs machinery.Filesystem) error { ignoreFlags := map[string]bool{ - "ignore-samples": false, "ignore-prometheus": false, "ignore-networkPolicy": false, "ignore-certmanager": false, diff --git a/pkg/plugins/optional/helm/v1alpha/scaffolds/init.go b/pkg/plugins/optional/helm/v1alpha/scaffolds/init.go index d2f11269baf..f93f2202393 100644 --- a/pkg/plugins/optional/helm/v1alpha/scaffolds/init.go +++ b/pkg/plugins/optional/helm/v1alpha/scaffolds/init.go @@ -55,7 +55,6 @@ type initScaffolder struct { IgnoreCertManager bool IgnoreWebhook bool IgnoreNetworkPolicy bool - IgnoreSamples bool } // NewInitHelmScaffolder returns a new Scaffolder for HelmPlugin @@ -67,7 +66,6 @@ func NewInitHelmScaffolder(cfg config.Config, force bool, ignoreFlags map[string IgnoreCertManager: ignoreFlags["ignore-certmanager"], IgnoreWebhook: ignoreFlags["ignore-webhook"], IgnoreNetworkPolicy: ignoreFlags["ignore-networkPolicy"], - IgnoreSamples: ignoreFlags["ignore-samples"], } }