diff --git a/cmd/main.go b/cmd/main.go index 7311a7e7881..d5219208e0d 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -22,22 +22,33 @@ import ( "sigs.k8s.io/kubebuilder/v3/pkg/cli" cfgv2 "sigs.k8s.io/kubebuilder/v3/pkg/config/v2" cfgv3 "sigs.k8s.io/kubebuilder/v3/pkg/config/v3" + "sigs.k8s.io/kubebuilder/v3/pkg/plugin" + kustomizecommonv1 "sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1" + "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang" declarativev1 "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/declarative/v1" - pluginv2 "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2" - pluginv3 "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3" + golangv2 "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2" + golangv3 "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3" ) func main() { + + // Bundle plugin which built the golang projects scaffold by Kubebuilder go/v3 + gov3Bundle, _ := plugin.NewBundle(golang.DefaultNameQualifier, plugin.Version{Number: 3}, + kustomizecommonv1.Plugin{}, + golangv3.Plugin{}, + ) + c, err := cli.New( cli.WithCommandName("kubebuilder"), cli.WithVersion(versionString()), cli.WithPlugins( - &pluginv2.Plugin{}, - &pluginv3.Plugin{}, + golangv2.Plugin{}, + gov3Bundle, + &kustomizecommonv1.Plugin{}, &declarativev1.Plugin{}, ), - cli.WithDefaultPlugins(cfgv2.Version, &pluginv2.Plugin{}), - cli.WithDefaultPlugins(cfgv3.Version, &pluginv3.Plugin{}), + cli.WithDefaultPlugins(cfgv2.Version, golangv2.Plugin{}), + cli.WithDefaultPlugins(cfgv3.Version, gov3Bundle), cli.WithDefaultProjectVersion(cfgv3.Version), cli.WithCompletion(), ) diff --git a/pkg/plugins/common/kustomize/v1/init.go b/pkg/plugins/common/kustomize/v1/init.go new file mode 100644 index 00000000000..1a8df24f5ba --- /dev/null +++ b/pkg/plugins/common/kustomize/v1/init.go @@ -0,0 +1,105 @@ +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1 + +import ( + "fmt" + "os" + "path/filepath" + "strings" + + "github.com/spf13/pflag" + + "sigs.k8s.io/kubebuilder/v3/pkg/config" + "sigs.k8s.io/kubebuilder/v3/pkg/internal/validation" + "sigs.k8s.io/kubebuilder/v3/pkg/machinery" + "sigs.k8s.io/kubebuilder/v3/pkg/plugin" + "sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds" +) + +var _ plugin.InitSubcommand = &initSubcommand{} + +type initSubcommand struct { + config config.Config + + // config options + domain string + name string + componentConfig bool +} + +func (p *initSubcommand) UpdateMetadata(cliMeta plugin.CLIMetadata, subcmdMeta *plugin.SubcommandMetadata) { + subcmdMeta.Description = `Initialize a common project including the following files: + - a "PROJECT" file that stores project configuration + - several YAML files for project deployment under the "config" directory +` + subcmdMeta.Examples = fmt.Sprintf(` # Initialize a common project with your domain and name in copyright + %[1]s init --plugins common/v3 --domain example.org + + # Initialize a common project defining an specific project version + %[1]s init --plugins common/v3 --project-version 3 +`, cliMeta.CommandName) +} + +func (p *initSubcommand) BindFlags(fs *pflag.FlagSet) { + fs.StringVar(&p.domain, "domain", "my.domain", "domain for groups") + fs.StringVar(&p.name, "project-name", "", "name of this project") + fs.BoolVar(&p.componentConfig, "component-config", false, + "create a versioned ComponentConfig file, may be 'true' or 'false'") +} + +func (p *initSubcommand) InjectConfig(c config.Config) error { + p.config = c + + if err := p.config.SetDomain(p.domain); err != nil { + return err + } + + // Assign a default project name + if p.name == "" { + dir, err := os.Getwd() + if err != nil { + return fmt.Errorf("error getting current directory: %v", err) + } + p.name = strings.ToLower(filepath.Base(dir)) + } + // Check if the project name is a valid k8s namespace (DNS 1123 label). + if err := validation.IsDNS1123Label(p.name); err != nil { + return fmt.Errorf("project name (%s) is invalid: %v", p.name, err) + } + if err := p.config.SetProjectName(p.name); err != nil { + return err + } + + if p.componentConfig { + if err := p.config.SetComponentConfig(); err != nil { + return err + } + } + + return nil +} + +func (p *initSubcommand) Scaffold(fs machinery.Filesystem) error { + scaffolder := scaffolds.NewInitScaffolder(p.config) + scaffolder.InjectFS(fs) + if err := scaffolder.Scaffold(); err != nil { + return err + } + + return nil +} diff --git a/pkg/plugins/common/kustomize/v1/plugin.go b/pkg/plugins/common/kustomize/v1/plugin.go new file mode 100644 index 00000000000..839294d677c --- /dev/null +++ b/pkg/plugins/common/kustomize/v1/plugin.go @@ -0,0 +1,50 @@ +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1 + +import ( + "sigs.k8s.io/kubebuilder/v3/pkg/config" + cfgv3 "sigs.k8s.io/kubebuilder/v3/pkg/config/v3" + "sigs.k8s.io/kubebuilder/v3/pkg/plugin" + "sigs.k8s.io/kubebuilder/v3/pkg/plugins" +) + +const pluginName = "kustomize.common." + plugins.DefaultNameQualifier + +var ( + pluginVersion = plugin.Version{Number: 1} + supportedProjectVersions = []config.Version{cfgv3.Version} +) + +var _ plugin.Init = Plugin{} + +// Plugin implements the plugin.Full interface +type Plugin struct { + initSubcommand +} + +// Name returns the name of the plugin +func (Plugin) Name() string { return pluginName } + +// Version returns the version of the plugin +func (Plugin) Version() plugin.Version { return pluginVersion } + +// SupportedProjectVersions returns an array with all project versions supported by the plugin +func (Plugin) SupportedProjectVersions() []config.Version { return supportedProjectVersions } + +// GetInitSubcommand will return the subcommand which is responsible for scaffolding init project +func (p Plugin) GetInitSubcommand() plugin.InitSubcommand { return &p.initSubcommand } diff --git a/pkg/plugins/common/kustomize/v1/scaffolds/init.go b/pkg/plugins/common/kustomize/v1/scaffolds/init.go new file mode 100644 index 00000000000..d6aa5e22773 --- /dev/null +++ b/pkg/plugins/common/kustomize/v1/scaffolds/init.go @@ -0,0 +1,84 @@ +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package scaffolds + +import ( + "fmt" + + "sigs.k8s.io/kubebuilder/v3/pkg/config" + "sigs.k8s.io/kubebuilder/v3/pkg/machinery" + "sigs.k8s.io/kubebuilder/v3/pkg/plugins" + "sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/kdefault" + "sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/manager" + "sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/prometheus" + "sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac" +) + +const ( + imageName = "controller:latest" +) + +var _ plugins.Scaffolder = &initScaffolder{} + +type initScaffolder struct { + config config.Config + + // fs is the filesystem that will be used by the scaffolder + fs machinery.Filesystem +} + +// NewInitScaffolder returns a new Scaffolder for project initialization operations +func NewInitScaffolder(config config.Config) plugins.Scaffolder { + return &initScaffolder{ + config: config, + } +} + +// InjectFS implements cmdutil.Scaffolder +func (s *initScaffolder) InjectFS(fs machinery.Filesystem) { + s.fs = fs +} + +// Scaffold implements cmdutil.Scaffolder +func (s *initScaffolder) Scaffold() error { + fmt.Println("Writing scaffold for you to edit...") + + // Initialize the machinery.Scaffold that will write the files to disk + scaffold := machinery.NewScaffold(s.fs, + machinery.WithConfig(s.config), + ) + + return scaffold.Execute( + &rbac.Kustomization{}, + &rbac.AuthProxyRole{}, + &rbac.AuthProxyRoleBinding{}, + &rbac.AuthProxyService{}, + &rbac.AuthProxyClientRole{}, + &rbac.RoleBinding{}, + &rbac.LeaderElectionRole{}, + &rbac.LeaderElectionRoleBinding{}, + &rbac.ServiceAccount{}, + &manager.Kustomization{}, + &manager.Config{Image: imageName}, + &manager.ControllerManagerConfig{}, + &kdefault.Kustomization{}, + &kdefault.ManagerAuthProxyPatch{}, + &kdefault.ManagerConfigPatch{}, + &prometheus.Kustomization{}, + &prometheus.Monitor{}, + ) +} diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/kdefault/kustomization.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/kdefault/kustomization.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/kdefault/kustomization.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/kdefault/kustomization.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/kdefault/manager_auth_proxy_patch.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/kdefault/manager_auth_proxy_patch.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/kdefault/manager_auth_proxy_patch.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/kdefault/manager_auth_proxy_patch.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/kdefault/manager_config_patch.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/kdefault/manager_config_patch.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/kdefault/manager_config_patch.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/kdefault/manager_config_patch.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/manager/config.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/manager/config.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/manager/config.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/manager/config.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/manager/controller_manager_config.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/manager/controller_manager_config.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/manager/controller_manager_config.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/manager/controller_manager_config.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/manager/kustomization.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/manager/kustomization.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/manager/kustomization.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/manager/kustomization.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/prometheus/kustomization.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/prometheus/kustomization.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/prometheus/kustomization.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/prometheus/kustomization.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/prometheus/monitor.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/prometheus/monitor.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/prometheus/monitor.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/prometheus/monitor.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/auth_proxy_client_role.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/auth_proxy_client_role.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/auth_proxy_client_role.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/auth_proxy_client_role.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/auth_proxy_role.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/auth_proxy_role.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/auth_proxy_service.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/auth_proxy_service.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/auth_proxy_service.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/auth_proxy_service.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/kustomization.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/kustomization.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/kustomization.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/kustomization.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/leader_election_role.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/leader_election_role.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/leader_election_role.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/leader_election_role.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/role_binding.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/role_binding.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/role_binding.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/role_binding.go diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/service_account.go b/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/service_account.go similarity index 100% rename from pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac/service_account.go rename to pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac/service_account.go diff --git a/pkg/plugins/golang/declarative/v1/api.go b/pkg/plugins/golang/declarative/v1/api.go index 5421c4398ab..3c247cbf121 100644 --- a/pkg/plugins/golang/declarative/v1/api.go +++ b/pkg/plugins/golang/declarative/v1/api.go @@ -29,7 +29,7 @@ import ( "sigs.k8s.io/kubebuilder/v3/pkg/plugin" "sigs.k8s.io/kubebuilder/v3/pkg/plugin/util" "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/declarative/v1/internal/templates" - goPluginV3 "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3" + goPluginV2 "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2" ) const ( @@ -134,10 +134,13 @@ func (p *createAPISubcommand) Scaffold(fs machinery.Filesystem) error { } // Ensure that we are pinning sigs.k8s.io/kubebuilder-declarative-pattern version - kbDeclarativePattern := kbDeclarativePatternForV2 + // Just pin an old value for go/v2. It shows fine for now. However, we should improve/change it + // if we see that more rules based on the plugins version are required. + kbDeclarativePattern := kbDeclarativePatternForV3 for _, pluginKey := range p.config.GetPluginChain() { - if pluginKey == plugin.KeyFor(goPluginV3.Plugin{}) { - kbDeclarativePattern = kbDeclarativePatternForV3 + if pluginKey == plugin.KeyFor(goPluginV2.Plugin{}) || pluginKey == "go.kubebuilder.io/v2" { + kbDeclarativePattern = kbDeclarativePatternForV2 + break } } err = util.RunCmd("Get declarative pattern", "go", "get", diff --git a/pkg/plugins/golang/declarative/v1/plugin.go b/pkg/plugins/golang/declarative/v1/plugin.go index c4d0d327c79..7310688f68d 100644 --- a/pkg/plugins/golang/declarative/v1/plugin.go +++ b/pkg/plugins/golang/declarative/v1/plugin.go @@ -25,7 +25,7 @@ import ( "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang" ) -const pluginName = "declarative." + golang.DefaultGoNameQualifier +const pluginName = "declarative." + golang.DefaultNameQualifier var ( pluginVersion = plugin.Version{Number: 1} diff --git a/pkg/plugins/golang/domain.go b/pkg/plugins/golang/domain.go index fd4075465c2..09226085605 100644 --- a/pkg/plugins/golang/domain.go +++ b/pkg/plugins/golang/domain.go @@ -1,9 +1,12 @@ /* Copyright 2020 The Kubernetes Authors. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -15,5 +18,5 @@ package golang import "sigs.k8s.io/kubebuilder/v3/pkg/plugins" -// DefaultGoNameQualifier is the suffix appended to all kubebuilder plugin names for Golang operators. -const DefaultGoNameQualifier = "go." + plugins.DefaultNameQualifier +// DefaultNameQualifier is the suffix appended to all kubebuilder plugin names for Golang operators. +const DefaultNameQualifier = "go." + plugins.DefaultNameQualifier diff --git a/pkg/plugins/golang/v3/init.go b/pkg/plugins/golang/v3/init.go index 3c9883e7254..296f11872f5 100644 --- a/pkg/plugins/golang/v3/init.go +++ b/pkg/plugins/golang/v3/init.go @@ -25,7 +25,6 @@ import ( "github.com/spf13/pflag" "sigs.k8s.io/kubebuilder/v3/pkg/config" - "sigs.k8s.io/kubebuilder/v3/pkg/internal/validation" "sigs.k8s.io/kubebuilder/v3/pkg/machinery" "sigs.k8s.io/kubebuilder/v3/pkg/plugin" "sigs.k8s.io/kubebuilder/v3/pkg/plugin/util" @@ -44,11 +43,8 @@ type initSubcommand struct { license string owner string - // config options - domain string - repo string - name string - componentConfig bool + // go config options + repo string // flags fetchDeps bool @@ -86,21 +82,13 @@ func (p *initSubcommand) BindFlags(fs *pflag.FlagSet) { fs.StringVar(&p.owner, "owner", "", "owner to add to the copyright") // project args - fs.StringVar(&p.domain, "domain", "my.domain", "domain for groups") fs.StringVar(&p.repo, "repo", "", "name to use for go module (e.g., github.com/user/repo), "+ "defaults to the go package of the current working directory.") - fs.StringVar(&p.name, "project-name", "", "name of this project") - fs.BoolVar(&p.componentConfig, "component-config", false, - "create a versioned ComponentConfig file, may be 'true' or 'false'") } func (p *initSubcommand) InjectConfig(c config.Config) error { p.config = c - if err := p.config.SetDomain(p.domain); err != nil { - return err - } - // Try to guess repository if flag is not set. if p.repo == "" { repoPath, err := golang.FindCurrentRepo() @@ -113,28 +101,6 @@ func (p *initSubcommand) InjectConfig(c config.Config) error { return err } - // Assign a default project name - if p.name == "" { - dir, err := os.Getwd() - if err != nil { - return fmt.Errorf("error getting current directory: %v", err) - } - p.name = strings.ToLower(filepath.Base(dir)) - } - // Check if the project name is a valid k8s namespace (DNS 1123 label). - if err := validation.IsDNS1123Label(p.name); err != nil { - return fmt.Errorf("project name (%s) is invalid: %v", p.name, err) - } - if err := p.config.SetProjectName(p.name); err != nil { - return err - } - - if p.componentConfig { - if err := p.config.SetComponentConfig(); err != nil { - return err - } - } - return nil } diff --git a/pkg/plugins/golang/v3/plugin.go b/pkg/plugins/golang/v3/plugin.go index e54b3841473..3ad89267e4b 100644 --- a/pkg/plugins/golang/v3/plugin.go +++ b/pkg/plugins/golang/v3/plugin.go @@ -20,10 +20,10 @@ import ( "sigs.k8s.io/kubebuilder/v3/pkg/config" cfgv3 "sigs.k8s.io/kubebuilder/v3/pkg/config/v3" "sigs.k8s.io/kubebuilder/v3/pkg/plugin" - "sigs.k8s.io/kubebuilder/v3/pkg/plugins" + "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang" ) -const pluginName = "go." + plugins.DefaultNameQualifier +const pluginName = "base." + golang.DefaultNameQualifier var ( pluginVersion = plugin.Version{Number: 3} diff --git a/pkg/plugins/golang/v3/scaffolds/init.go b/pkg/plugins/golang/v3/scaffolds/init.go index 76dca0426f6..09a809519a1 100644 --- a/pkg/plugins/golang/v3/scaffolds/init.go +++ b/pkg/plugins/golang/v3/scaffolds/init.go @@ -18,17 +18,12 @@ package scaffolds import ( "fmt" - "github.com/spf13/afero" "sigs.k8s.io/kubebuilder/v3/pkg/config" "sigs.k8s.io/kubebuilder/v3/pkg/machinery" "sigs.k8s.io/kubebuilder/v3/pkg/plugins" "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates" - "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates/config/kdefault" - "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates/config/manager" - "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates/config/prometheus" - "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates/config/rbac" "sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates/hack" ) @@ -102,18 +97,6 @@ func (s *initScaffolder) Scaffold() error { ) return scaffold.Execute( - &rbac.Kustomization{}, - &rbac.AuthProxyRole{}, - &rbac.AuthProxyRoleBinding{}, - &rbac.AuthProxyService{}, - &rbac.AuthProxyClientRole{}, - &rbac.RoleBinding{}, - &rbac.LeaderElectionRole{}, - &rbac.LeaderElectionRoleBinding{}, - &rbac.ServiceAccount{}, - &manager.Kustomization{}, - &manager.Config{Image: imageName}, - &manager.ControllerManagerConfig{}, &templates.Main{}, &templates.GoMod{ControllerRuntimeVersion: ControllerRuntimeVersion}, &templates.GitIgnore{}, @@ -126,10 +109,5 @@ func (s *initScaffolder) Scaffold() error { }, &templates.Dockerfile{}, &templates.DockerIgnore{}, - &kdefault.Kustomization{}, - &kdefault.ManagerAuthProxyPatch{}, - &kdefault.ManagerConfigPatch{}, - &prometheus.Kustomization{}, - &prometheus.Monitor{}, ) }