Repository: operator-framework/operator-sdk
Pull request #4215 (2020-11-10 12:28:58)

Update kubebuilder to commit b6a0bf1b6040
**Description of the change:**
- Update kubebuilder dependency (See: https://github.com/kubernetes-sigs/kubebuilder/compare/9c02d557f01b...c158f4fa4207)
- Align SDK with Kubebuilder and address bug fixes

**Motivation for the change:**
- Solve tech-debt and keep both projects aligned


jmrodri: I retitled this PR it used to be called `Update kb 9c02d557f01b-to-b6a0bf1b6040` I changed it to `Update kubebuilder to commit b6a0bf1b6040`
openshift-ci-robot: New changes are detected. LGTM label has been removed.
jberkhahn: would be nice to wait until [1711](https://github.com/kubernetes-sigs/kubebuilder/pull/1711) is merged, but oh well :/
camilamacedo86: Hi @johananl, 

 > would be nice to wait until 1711 is merged, but oh well :/

I cannot see any no reason for we wait for any specific new fix or change in the Kubebuilder side.
See that the idea is we keep both aligned. If we do not keeping doing this update then, when we do that we will need to perform so many changes to bump that it will be very complex to get done.  

johananl: @camilamacedo86 wrong tag ;-) Tagging @jberkhahn.
openshift-ci-robot: New changes are detected. LGTM label has been removed.

Patch:
diff --git a/changelog/fragments/update-kb-from-9c02d557f01b-to-c158f4fa4207.yaml b/changelog/fragments/update-kb-from-9c02d557f01b-to-c158f4fa4207.yaml
new file mode 100644
index 00000000..d96e11e3
--- /dev/null
+++ b/changelog/fragments/update-kb-from-9c02d557f01b-to-c158f4fa4207.yaml
@@ -0,0 +1,8 @@
+# entries is a list of entries to include in
+# release notes and/or the migration guide
+entries:
+  - description: >
+      (go/v2) Fixed controller imports scaffolded by `create api` when `--resource=false`
+            ([kubebuilder#1770](https://github.com/kubernetes-sigs/kubebuilder/pull/1770))
+    kind: "bugfix"
+    breaking: false
diff --git a/go.mod b/go.mod
index 129750c2..4ec6a3bc 100644
--- a/go.mod
+++ b/go.mod
@@ -34,7 +34,7 @@ require (
 	rsc.io/letsencrypt v0.0.3 // indirect
 	sigs.k8s.io/controller-runtime v0.6.3
 	sigs.k8s.io/controller-tools v0.3.0
-	sigs.k8s.io/kubebuilder v1.0.9-0.20201030182622-9c02d557f01b
+	sigs.k8s.io/kubebuilder/v2 v2.3.2-0.20201111001842-c158f4fa4207
 	sigs.k8s.io/yaml v1.2.0
 )
 
diff --git a/go.sum b/go.sum
index 01a32370..8278f546 100644
--- a/go.sum
+++ b/go.sum
@@ -1229,8 +1229,8 @@ sigs.k8s.io/controller-runtime v0.6.3 h1:SBbr+inLPEKhvlJtrvDcwIpm+uhDvp63Bl72xYJ
 sigs.k8s.io/controller-runtime v0.6.3/go.mod h1:WlZNXcM0++oyaQt4B7C2lEE5JYRs8vJUzRP4N4JpdAY=
 sigs.k8s.io/controller-tools v0.3.0 h1:y3YD99XOyWaXkiF1kd41uRvfp/64teWcrEZFuHxPhJ4=
 sigs.k8s.io/controller-tools v0.3.0/go.mod h1:enhtKGfxZD1GFEoMgP8Fdbu+uKQ/cq1/WGJhdVChfvI=
-sigs.k8s.io/kubebuilder v1.0.9-0.20201030182622-9c02d557f01b h1:IDxyhHz2vQ5DRRp0azVMPC5rtSWz3ziFDWWnjC+TH5Q=
-sigs.k8s.io/kubebuilder v1.0.9-0.20201030182622-9c02d557f01b/go.mod h1:NatUhFMh/ci8gR+qETvZBIlZ4RTQoNa+9uei7okpgcY=
+sigs.k8s.io/kubebuilder/v2 v2.3.2-0.20201111001842-c158f4fa4207 h1:JtlaBrtWymJbh6ea+TJUZkzBb0x0dMKV+P0+ZPaldxk=
+sigs.k8s.io/kubebuilder/v2 v2.3.2-0.20201111001842-c158f4fa4207/go.mod h1:J/D/179LBZhQOhRvmMRNbje/Bk+PjbN0/fzUupmO7+U=
 sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0=
 sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU=
 sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
diff --git a/hack/generate/samples/internal/ansible/memcached.go b/hack/generate/samples/internal/ansible/memcached.go
index 76b9808d..2a4252c0 100644
--- a/hack/generate/samples/internal/ansible/memcached.go
+++ b/hack/generate/samples/internal/ansible/memcached.go
@@ -20,7 +20,7 @@ import (
 	"strings"
 
 	log "github.com/sirupsen/logrus"
-	kbtestutils "sigs.k8s.io/kubebuilder/test/e2e/utils"
+	kbtestutils "sigs.k8s.io/kubebuilder/v2/test/e2e/utils"
 
 	"github.com/operator-framework/operator-sdk/hack/generate/samples/internal/pkg"
 	"github.com/operator-framework/operator-sdk/internal/testutils"
diff --git a/hack/generate/samples/internal/ansible/molecule.go b/hack/generate/samples/internal/ansible/molecule.go
index 5c960b35..bf00dc11 100644
--- a/hack/generate/samples/internal/ansible/molecule.go
+++ b/hack/generate/samples/internal/ansible/molecule.go
@@ -20,7 +20,7 @@ import (
 	"path/filepath"
 	"strings"
 
-	kbtestutils "sigs.k8s.io/kubebuilder/test/e2e/utils"
+	kbtestutils "sigs.k8s.io/kubebuilder/v2/test/e2e/utils"
 
 	"github.com/operator-framework/operator-sdk/hack/generate/samples/internal/pkg"
 	"github.com/operator-framework/operator-sdk/internal/testutils"
diff --git a/hack/generate/samples/internal/go/memcached_with_webhooks.go b/hack/generate/samples/internal/go/memcached_with_webhooks.go
index cf925b82..c88d141e 100644
--- a/hack/generate/samples/internal/go/memcached_with_webhooks.go
+++ b/hack/generate/samples/internal/go/memcached_with_webhooks.go
@@ -21,7 +21,7 @@ import (
 	"strings"
 
 	log "github.com/sirupsen/logrus"
-	kbtestutils "sigs.k8s.io/kubebuilder/test/e2e/utils"
+	kbtestutils "sigs.k8s.io/kubebuilder/v2/test/e2e/utils"
 
 	"github.com/operator-framework/operator-sdk/hack/generate/samples/internal/pkg"
 	"github.com/operator-framework/operator-sdk/internal/testutils"
diff --git a/hack/generate/samples/internal/pkg/utils.go b/hack/generate/samples/internal/pkg/utils.go
index 6af0efc4..98bd05e6 100644
--- a/hack/generate/samples/internal/pkg/utils.go
+++ b/hack/generate/samples/internal/pkg/utils.go
@@ -22,7 +22,7 @@ import (
 	"regexp"
 
 	log "github.com/sirupsen/logrus"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 
 	"github.com/operator-framework/operator-sdk/internal/annotations/metrics"
 )
diff --git a/internal/annotations/metrics/metrics.go b/internal/annotations/metrics/metrics.go
index 8c0869c2..1d2ce567 100644
--- a/internal/annotations/metrics/metrics.go
+++ b/internal/annotations/metrics/metrics.go
@@ -18,7 +18,7 @@ import (
 	"regexp"
 	"strings"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 
 	sdkversion "github.com/operator-framework/operator-sdk/internal/version"
 )
diff --git a/internal/cmd/operator-sdk/cli/cli.go b/internal/cmd/operator-sdk/cli/cli.go
index 5cced668..453c2648 100644
--- a/internal/cmd/operator-sdk/cli/cli.go
+++ b/internal/cmd/operator-sdk/cli/cli.go
@@ -32,7 +32,7 @@ import (
 	log "github.com/sirupsen/logrus"
 	"github.com/spf13/cobra"
 	"github.com/spf13/viper"
-	"sigs.k8s.io/kubebuilder/pkg/cli"
+	"sigs.k8s.io/kubebuilder/v2/pkg/cli"
 )
 
 var commands = []*cobra.Command{
diff --git a/internal/cmd/operator-sdk/generate/bundle/bundle.go b/internal/cmd/operator-sdk/generate/bundle/bundle.go
index a0326cee..e002254a 100644
--- a/internal/cmd/operator-sdk/generate/bundle/bundle.go
+++ b/internal/cmd/operator-sdk/generate/bundle/bundle.go
@@ -25,7 +25,7 @@ import (
 
 	"github.com/operator-framework/api/pkg/apis/scorecard/v1alpha3"
 	"github.com/operator-framework/operator-registry/pkg/lib/bundle"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 	"sigs.k8s.io/yaml"
 
 	metricsannotations "github.com/operator-framework/operator-sdk/internal/annotations/metrics"
diff --git a/internal/cmd/operator-sdk/generate/internal/genutil.go b/internal/cmd/operator-sdk/generate/internal/genutil.go
index 3a6dfcf9..00062e33 100644
--- a/internal/cmd/operator-sdk/generate/internal/genutil.go
+++ b/internal/cmd/operator-sdk/generate/internal/genutil.go
@@ -28,7 +28,7 @@ import (
 	apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
 	"k8s.io/apimachinery/pkg/util/validation"
 	"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 	"sigs.k8s.io/yaml"
 )
 
diff --git a/internal/cmd/operator-sdk/generate/kustomize/manifests.go b/internal/cmd/operator-sdk/generate/kustomize/manifests.go
index 8c0061a5..c0d35b55 100644
--- a/internal/cmd/operator-sdk/generate/kustomize/manifests.go
+++ b/internal/cmd/operator-sdk/generate/kustomize/manifests.go
@@ -21,7 +21,7 @@ import (
 	log "github.com/sirupsen/logrus"
 	"github.com/spf13/cobra"
 	"github.com/spf13/pflag"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 
 	genutil "github.com/operator-framework/operator-sdk/internal/cmd/operator-sdk/generate/internal"
 	gencsv "github.com/operator-framework/operator-sdk/internal/generate/clusterserviceversion"
diff --git a/internal/cmd/operator-sdk/generate/packagemanifests/packagemanifests.go b/internal/cmd/operator-sdk/generate/packagemanifests/packagemanifests.go
index aac1db46..9f7abe63 100644
--- a/internal/cmd/operator-sdk/generate/packagemanifests/packagemanifests.go
+++ b/internal/cmd/operator-sdk/generate/packagemanifests/packagemanifests.go
@@ -20,7 +20,7 @@ import (
 	"os"
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 
 	genutil "github.com/operator-framework/operator-sdk/internal/cmd/operator-sdk/generate/internal"
 	gencsv "github.com/operator-framework/operator-sdk/internal/generate/clusterserviceversion"
diff --git a/internal/generate/clusterserviceversion/clusterserviceversion.go b/internal/generate/clusterserviceversion/clusterserviceversion.go
index 686e301e..b74b3e02 100644
--- a/internal/generate/clusterserviceversion/clusterserviceversion.go
+++ b/internal/generate/clusterserviceversion/clusterserviceversion.go
@@ -25,7 +25,7 @@ import (
 	operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
 	"github.com/operator-framework/operator-registry/pkg/lib/bundle"
 	"k8s.io/apimachinery/pkg/runtime/schema"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 
 	metricsannotations "github.com/operator-framework/operator-sdk/internal/annotations/metrics"
 	"github.com/operator-framework/operator-sdk/internal/generate/clusterserviceversion/bases"
diff --git a/internal/kubebuilder/cmdutil/cmdutil.go b/internal/kubebuilder/cmdutil/cmdutil.go
index 602bc707..1999b912 100644
--- a/internal/kubebuilder/cmdutil/cmdutil.go
+++ b/internal/kubebuilder/cmdutil/cmdutil.go
@@ -16,7 +16,7 @@ limitations under the License.
 
 package cmdutil
 
-import "sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
+import "sigs.k8s.io/kubebuilder/v2/pkg/plugin/scaffold"
 
 // RunOptions represent the types used to implement the different commands
 type RunOptions interface {
diff --git a/internal/kubebuilder/machinery/errors.go b/internal/kubebuilder/machinery/errors.go
index aef82aeb..31dcc101 100644
--- a/internal/kubebuilder/machinery/errors.go
+++ b/internal/kubebuilder/machinery/errors.go
@@ -20,7 +20,7 @@ import (
 	"errors"
 	"fmt"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 // This file contains the errors returned by the scaffolding machinery
diff --git a/internal/kubebuilder/machinery/scaffold.go b/internal/kubebuilder/machinery/scaffold.go
index 632740b0..9d653784 100644
--- a/internal/kubebuilder/machinery/scaffold.go
+++ b/internal/kubebuilder/machinery/scaffold.go
@@ -26,8 +26,8 @@ import (
 	"text/template"
 
 	"golang.org/x/tools/imports"
-	"sigs.k8s.io/kubebuilder/pkg/model"
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/kubebuilder/filesystem"
 )
diff --git a/internal/plugins/ansible/v1/api.go b/internal/plugins/ansible/v1/api.go
index 15134fe6..96cfdbc5 100644
--- a/internal/plugins/ansible/v1/api.go
+++ b/internal/plugins/ansible/v1/api.go
@@ -19,10 +19,10 @@ import (
 	"strings"
 
 	"github.com/spf13/pflag"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/model/resource"
-	"sigs.k8s.io/kubebuilder/pkg/plugin"
-	"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/resource"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin/scaffold"
 
 	"github.com/operator-framework/operator-sdk/internal/kubebuilder/cmdutil"
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/scaffolds"
@@ -39,18 +39,18 @@ const (
 	crdVersionV1beta1 = "v1beta1"
 )
 
-type createAPIPlugin struct {
+type createAPIPSubcommand struct {
 	config        *config.Config
 	createOptions scaffolds.CreateOptions
 }
 
 var (
-	_ plugin.CreateAPI   = &createAPIPlugin{}
-	_ cmdutil.RunOptions = &createAPIPlugin{}
+	_ plugin.CreateAPISubcommand = &createAPIPSubcommand{}
+	_ cmdutil.RunOptions         = &createAPIPSubcommand{}
 )
 
 // UpdateContext injects documentation for the command
-func (p *createAPIPlugin) UpdateContext(ctx *plugin.Context) {
+func (p *createAPIPSubcommand) UpdateContext(ctx *plugin.Context) {
 	ctx.Description = `Scaffold a Kubernetes API in which the controller is an Ansible role or playbook.
 
     - generates a Custom Resource Definition and sample
@@ -89,7 +89,7 @@ func (p *createAPIPlugin) UpdateContext(ctx *plugin.Context) {
 	)
 }
 
-func (p *createAPIPlugin) BindFlags(fs *pflag.FlagSet) {
+func (p *createAPIPSubcommand) BindFlags(fs *pflag.FlagSet) {
 	fs.SortFlags = false
 
 	fs.StringVar(&p.createOptions.GVK.Group, groupFlag, "", "resource group")
@@ -100,11 +100,11 @@ func (p *createAPIPlugin) BindFlags(fs *pflag.FlagSet) {
 	fs.BoolVarP(&p.createOptions.GenerateRole, "generate-role", "", false, "Generate an Ansible role skeleton.")
 }
 
-func (p *createAPIPlugin) InjectConfig(c *config.Config) {
+func (p *createAPIPSubcommand) InjectConfig(c *config.Config) {
 	p.config = c
 }
 
-func (p *createAPIPlugin) Run() error {
+func (p *createAPIPSubcommand) Run() error {
 	if err := cmdutil.Run(p); err != nil {
 		return err
 	}
@@ -118,12 +118,12 @@ func (p *createAPIPlugin) Run() error {
 }
 
 // SDK phase 2 plugins.
-func (p *createAPIPlugin) runPhase2() error {
+func (p *createAPIPSubcommand) runPhase2() error {
 	gvk := p.createOptions.GVK
 	return manifests.RunCreateAPI(p.config, config.GVK{Group: gvk.Group, Version: gvk.Version, Kind: gvk.Kind})
 }
 
-func (p *createAPIPlugin) Validate() error {
+func (p *createAPIPSubcommand) Validate() error {
 	if p.createOptions.CRDVersion != crdVersionV1 && p.createOptions.CRDVersion != crdVersionV1beta1 {
 		return fmt.Errorf("value of --%s must be either %q or %q", crdVersionFlag, crdVersionV1, crdVersionV1beta1)
 	}
@@ -152,10 +152,10 @@ func (p *createAPIPlugin) Validate() error {
 	return nil
 }
 
-func (p *createAPIPlugin) GetScaffolder() (scaffold.Scaffolder, error) {
+func (p *createAPIPSubcommand) GetScaffolder() (scaffold.Scaffolder, error) {
 	return scaffolds.NewCreateAPIScaffolder(p.config, p.createOptions), nil
 }
 
-func (p *createAPIPlugin) PostScaffold() error {
+func (p *createAPIPSubcommand) PostScaffold() error {
 	return nil
 }
diff --git a/internal/plugins/ansible/v1/init.go b/internal/plugins/ansible/v1/init.go
index 72d65824..7e26f731 100644
--- a/internal/plugins/ansible/v1/init.go
+++ b/internal/plugins/ansible/v1/init.go
@@ -22,9 +22,9 @@ import (
 
 	"github.com/spf13/pflag"
 	"k8s.io/apimachinery/pkg/util/validation"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/plugin"
-	"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin/scaffold"
 
 	"github.com/operator-framework/operator-sdk/internal/kubebuilder/cmdutil"
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/scaffolds"
@@ -32,9 +32,9 @@ import (
 	"github.com/operator-framework/operator-sdk/internal/plugins/scorecard"
 )
 
-type initPlugin struct {
+type initSubcommand struct {
 	config    *config.Config
-	apiPlugin createAPIPlugin
+	apiPlugin createAPIPSubcommand
 
 	// If true, run the `create api` plugin.
 	doCreateAPI bool
@@ -44,12 +44,12 @@ type initPlugin struct {
 }
 
 var (
-	_ plugin.Init        = &initPlugin{}
-	_ cmdutil.RunOptions = &initPlugin{}
+	_ plugin.InitSubcommand = &initSubcommand{}
+	_ cmdutil.RunOptions    = &initSubcommand{}
 )
 
 // UpdateContext injects documentation for the command
-func (p *initPlugin) UpdateContext(ctx *plugin.Context) {
+func (p *initSubcommand) UpdateContext(ctx *plugin.Context) {
 	ctx.Description = `
 Initialize a new Ansible-based operator project.
 
@@ -95,20 +95,20 @@ Optionally creates a new API, using the same flags as "create api"
 	p.commandName = ctx.CommandName
 }
 
-func (p *initPlugin) BindFlags(fs *pflag.FlagSet) {
+func (p *initSubcommand) BindFlags(fs *pflag.FlagSet) {
 	fs.SortFlags = false
 	fs.StringVar(&p.config.Domain, "domain", "my.domain", "domain for groups")
 	fs.StringVar(&p.config.ProjectName, "project-name", "", "name of this project, the default being directory name")
 	p.apiPlugin.BindFlags(fs)
 }
 
-func (p *initPlugin) InjectConfig(c *config.Config) {
+func (p *initSubcommand) InjectConfig(c *config.Config) {
 	c.Layout = pluginKey
 	p.config = c
 	p.apiPlugin.config = p.config
 }
 
-func (p *initPlugin) Run() error {
+func (p *initSubcommand) Run() error {
 	if err := cmdutil.Run(p); err != nil {
 		return err
 	}
@@ -122,7 +122,7 @@ func (p *initPlugin) Run() error {
 }
 
 // SDK phase 2 plugins.
-func (p *initPlugin) runPhase2() error {
+func (p *initSubcommand) runPhase2() error {
 	if err := manifests.RunInit(p.config); err != nil {
 		return err
 	}
@@ -139,7 +139,7 @@ func (p *initPlugin) runPhase2() error {
 	return nil
 }
 
-func (p *initPlugin) Validate() error {
+func (p *initSubcommand) Validate() error {
 	// Check if the project name is a valid k8s namespace (DNS 1123 label).
 	if p.config.ProjectName == "" {
 		dir, err := os.Getwd()
@@ -160,7 +160,7 @@ func (p *initPlugin) Validate() error {
 	return nil
 }
 
-func (p *initPlugin) GetScaffolder() (scaffold.Scaffolder, error) {
+func (p *initSubcommand) GetScaffolder() (scaffold.Scaffolder, error) {
 	var (
 		apiScaffolder scaffold.Scaffolder
 		err           error
@@ -174,7 +174,7 @@ func (p *initPlugin) GetScaffolder() (scaffold.Scaffolder, error) {
 	return scaffolds.NewInitScaffolder(p.config, apiScaffolder), nil
 }
 
-func (p *initPlugin) PostScaffold() error {
+func (p *initSubcommand) PostScaffold() error {
 	if !p.doCreateAPI {
 		fmt.Printf("Next: define a resource with:\n$ %s create api\n", p.commandName)
 	}
diff --git a/internal/plugins/ansible/v1/plugin.go b/internal/plugins/ansible/v1/plugin.go
index 33e79ba2..fd7f8f67 100644
--- a/internal/plugins/ansible/v1/plugin.go
+++ b/internal/plugins/ansible/v1/plugin.go
@@ -15,8 +15,8 @@
 package ansible
 
 import (
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/plugin"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins"
 )
@@ -30,17 +30,18 @@ var (
 )
 
 var (
-	_ plugin.Base             = Plugin{}
-	_ plugin.InitPluginGetter = Plugin{}
+	_ plugin.Plugin    = Plugin{}
+	_ plugin.Init      = Plugin{}
+	_ plugin.CreateAPI = Plugin{}
 )
 
 type Plugin struct {
-	initPlugin
-	createAPIPlugin
+	initSubcommand
+	createAPIPSubcommand
 }
 
-func (Plugin) Name() string                           { return pluginName }
-func (Plugin) Version() plugin.Version                { return pluginVersion }
-func (Plugin) SupportedProjectVersions() []string     { return supportedProjectVersions }
-func (p Plugin) GetInitPlugin() plugin.Init           { return &p.initPlugin }
-func (p Plugin) GetCreateAPIPlugin() plugin.CreateAPI { return &p.createAPIPlugin }
+func (Plugin) Name() string                                         { return pluginName }
+func (Plugin) Version() plugin.Version                              { return pluginVersion }
+func (Plugin) SupportedProjectVersions() []string                   { return supportedProjectVersions }
+func (p Plugin) GetInitSubcommand() plugin.InitSubcommand           { return &p.initSubcommand }
+func (p Plugin) GetCreateAPISubcommand() plugin.CreateAPISubcommand { return &p.createAPIPSubcommand }
diff --git a/internal/plugins/ansible/v1/scaffolds/api.go b/internal/plugins/ansible/v1/scaffolds/api.go
index f3b46068..334b52f4 100644
--- a/internal/plugins/ansible/v1/scaffolds/api.go
+++ b/internal/plugins/ansible/v1/scaffolds/api.go
@@ -21,11 +21,11 @@ import (
 	"errors"
 
 	"k8s.io/apimachinery/pkg/runtime/schema"
-	"sigs.k8s.io/kubebuilder/pkg/model"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
-	"sigs.k8s.io/kubebuilder/pkg/model/resource"
-	"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/resource"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin/scaffold"
 
 	"github.com/operator-framework/operator-sdk/internal/kubebuilder/machinery"
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
diff --git a/internal/plugins/ansible/v1/scaffolds/init.go b/internal/plugins/ansible/v1/scaffolds/init.go
index 8a36534b..b0947dae 100644
--- a/internal/plugins/ansible/v1/scaffolds/init.go
+++ b/internal/plugins/ansible/v1/scaffolds/init.go
@@ -18,9 +18,9 @@ limitations under the License.
 package scaffolds
 
 import (
-	"sigs.k8s.io/kubebuilder/pkg/model"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin/scaffold"
 
 	"github.com/operator-framework/operator-sdk/internal/kubebuilder/machinery"
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/scaffolds/internal/templates"
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/crd/crd.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/crd/crd.go
index b03ac74d..a8921873 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/crd/crd.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/crd/crd.go
@@ -20,7 +20,7 @@ import (
 	"path/filepath"
 
 	"github.com/kr/text"
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &CRD{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/crd/kustomization.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/crd/kustomization.go
index 917caddd..a3281e96 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/crd/kustomization.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/crd/kustomization.go
@@ -21,7 +21,7 @@ import (
 	"fmt"
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomization{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/kdefault/auth_proxy_patch.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/kdefault/auth_proxy_patch.go
index 2abb40cc..df600ad9 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/kdefault/auth_proxy_patch.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/kdefault/auth_proxy_patch.go
@@ -20,7 +20,7 @@ package kdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &AuthProxyPatch{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/kdefault/kustomization.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/kdefault/kustomization.go
index 71e4dbd7..3fe665b7 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/kdefault/kustomization.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/kdefault/kustomization.go
@@ -20,7 +20,7 @@ package kdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomize{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/manager/kustomization.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/manager/kustomization.go
index 84af806d..1318302e 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/manager/kustomization.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/manager/kustomization.go
@@ -19,7 +19,7 @@ package manager
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomization{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/manager/manager.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/manager/manager.go
index e4084882..9a076261 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/manager/manager.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/manager/manager.go
@@ -20,7 +20,7 @@ package manager
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Manager{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/prometheus/kustomization.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/prometheus/kustomization.go
index a630cddc..c72539da 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/prometheus/kustomization.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/prometheus/kustomization.go
@@ -19,7 +19,7 @@ package prometheus
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomization{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/prometheus/monitor.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/prometheus/monitor.go
index 03fe1f3a..23e309c3 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/prometheus/monitor.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/prometheus/monitor.go
@@ -19,7 +19,7 @@ package prometheus
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &ServiceMonitor{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_client_clusterrole.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_client_clusterrole.go
index 39cda25a..a3cbb04c 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_client_clusterrole.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_client_clusterrole.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &ClientClusterRole{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role.go
index f05e7767..761ea8bc 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &AuthProxyRole{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go
index d0d43cf0..8342bf58 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &AuthProxyRoleBinding{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_service.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_service.go
index 31a66347..03857ba1 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_service.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/auth_proxy_service.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &AuthProxyService{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/crd_editor_rbac.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/crd_editor_rbac.go
index 44c28e88..39f18cb7 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/crd_editor_rbac.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/crd_editor_rbac.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &CRDEditorRole{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/crd_viewer_rbac.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/crd_viewer_rbac.go
index 2591e509..fb8efa12 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/crd_viewer_rbac.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/crd_viewer_rbac.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &CRDViewerRole{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/kustomization.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/kustomization.go
index f3de8307..9d5711cd 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/kustomization.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/kustomization.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomization{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/leader_election_role.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/leader_election_role.go
index d8b0aaa6..b220d947 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/leader_election_role.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/leader_election_role.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &LeaderElectionRole{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go
index 875fff93..00124b77 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &LeaderElectionRoleBinding{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/role.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/role.go
index 5ceb6a06..fa04ccb8 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/role.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/role.go
@@ -20,7 +20,7 @@ import (
 	"path/filepath"
 	"text/template"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &ManagerRole{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/role_binding.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/role_binding.go
index 7afd1a31..0e83dfce 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/role_binding.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/rbac/role_binding.go
@@ -20,7 +20,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &RoleBinding{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/samples/cr_sample.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/samples/cr_sample.go
index 2dc60284..54fb2958 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/samples/cr_sample.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/samples/cr_sample.go
@@ -22,7 +22,7 @@ import (
 	"strings"
 	"text/template"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &CR{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/dockerfile.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/dockerfile.go
index 0ded63ef..974d360a 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/dockerfile.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/dockerfile.go
@@ -17,7 +17,7 @@ package templates
 import (
 	"errors"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/gitignore.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/gitignore.go
index e309be02..745db8da 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/gitignore.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/gitignore.go
@@ -18,7 +18,7 @@ limitations under the License.
 package templates
 
 import (
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &GitIgnore{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/makefile.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/makefile.go
index eed94ddd..2a927b26 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/makefile.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/makefile.go
@@ -20,7 +20,7 @@ package templates
 import (
 	"errors"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Makefile{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/converge.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/converge.go
index 33449b2f..04f2d42b 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/converge.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/converge.go
@@ -17,7 +17,7 @@ package mdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Converge{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/create.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/create.go
index 861d4320..270347d6 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/create.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/create.go
@@ -17,7 +17,7 @@ package mdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Create{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/destroy.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/destroy.go
index 1f34f95f..476bfde2 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/destroy.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/destroy.go
@@ -17,7 +17,7 @@ package mdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Destroy{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/kustomize.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/kustomize.go
index c66d86b4..41d27279 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/kustomize.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/kustomize.go
@@ -17,7 +17,7 @@ package mdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomize{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/molecule.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/molecule.go
index 3108d2bc..e98b60cf 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/molecule.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/molecule.go
@@ -17,7 +17,7 @@ package mdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Molecule{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/prepare.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/prepare.go
index 56cb7b3f..bd4da756 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/prepare.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/prepare.go
@@ -17,7 +17,7 @@ package mdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Prepare{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/verify.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/verify.go
index 985dd872..2370425c 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/verify.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/verify.go
@@ -17,7 +17,7 @@ package mdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Verify{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/converge.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/converge.go
index b3adfad8..f0669170 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/converge.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/converge.go
@@ -17,7 +17,7 @@ package mkind
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Converge{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/create.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/create.go
index 78b4721a..1221e190 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/create.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/create.go
@@ -17,7 +17,7 @@ package mkind
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Create{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/destroy.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/destroy.go
index 40839480..68f1fb8a 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/destroy.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/destroy.go
@@ -17,7 +17,7 @@ package mkind
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Destroy{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/molecule.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/molecule.go
index ad4a2f7e..7a2f789d 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/molecule.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mkind/molecule.go
@@ -17,7 +17,7 @@ package mkind
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Molecule{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/playbooks/placeholder.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/playbooks/placeholder.go
index b2923d67..6dec7eef 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/playbooks/placeholder.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/playbooks/placeholder.go
@@ -15,7 +15,7 @@
 package playbooks
 
 import (
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/playbooks/playbook.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/playbooks/playbook.go
index b7e038a3..8fd47cee 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/playbooks/playbook.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/playbooks/playbook.go
@@ -17,7 +17,7 @@ package playbooks
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 type Playbook struct {
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/requirements.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/requirements.go
index a7ff6a89..b2e1e7f0 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/requirements.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/requirements.go
@@ -15,7 +15,7 @@
 package templates
 
 import (
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 // RequirementsYml - A requirements file for Ansible collection dependencies
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/defaults_main.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/defaults_main.go
index 1d85cf01..457ad0c1 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/defaults_main.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/defaults_main.go
@@ -17,7 +17,7 @@ package roles
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/files_dir.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/files_dir.go
index 5685f904..b06c3834 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/files_dir.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/files_dir.go
@@ -17,7 +17,7 @@ package roles
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/handlers_main.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/handlers_main.go
index 8a3a8019..88cf11ec 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/handlers_main.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/handlers_main.go
@@ -17,7 +17,7 @@ package roles
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/meta_main.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/meta_main.go
index 6986c8b2..2a73731c 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/meta_main.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/meta_main.go
@@ -17,7 +17,7 @@ package roles
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/placeholder.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/placeholder.go
index cc957e61..ffcfd197 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/placeholder.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/placeholder.go
@@ -15,7 +15,7 @@
 package roles
 
 import (
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/readme.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/readme.go
index 7f337466..b5cf1d61 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/readme.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/readme.go
@@ -17,7 +17,7 @@ package roles
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/tasks_main.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/tasks_main.go
index 1130177c..60c596e0 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/tasks_main.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/tasks_main.go
@@ -17,7 +17,7 @@ package roles
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/templates_dir.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/templates_dir.go
index bd67873e..cdb38fdf 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/templates_dir.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/templates_dir.go
@@ -17,7 +17,7 @@ package roles
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/vars_main.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/vars_main.go
index f77ea8ec..10cf23c3 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/vars_main.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/roles/vars_main.go
@@ -17,7 +17,7 @@ package roles
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/ansible/v1/constants"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/watches.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/watches.go
index 9274567c..cca37d2f 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/watches.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/watches.go
@@ -19,7 +19,7 @@ import (
 	"fmt"
 	"text/template"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Watches{}
diff --git a/internal/plugins/golang/v2/api.go b/internal/plugins/golang/v2/api.go
index d209db02..8823b629 100644
--- a/internal/plugins/golang/v2/api.go
+++ b/internal/plugins/golang/v2/api.go
@@ -16,35 +16,37 @@ package v2
 
 import (
 	"github.com/spf13/pflag"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/plugin"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/manifests"
 )
 
-type createAPIPlugin struct {
-	plugin.CreateAPI
+type createAPISubcommand struct {
+	plugin.CreateAPISubcommand
 
 	config *config.Config
 }
 
-var _ plugin.CreateAPI = &createAPIPlugin{}
+var _ plugin.CreateAPISubcommand = &createAPISubcommand{}
 
-func (p *createAPIPlugin) UpdateContext(ctx *plugin.Context) { p.CreateAPI.UpdateContext(ctx) }
-func (p *createAPIPlugin) BindFlags(fs *pflag.FlagSet)       { p.CreateAPI.BindFlags(fs) }
+func (p *createAPISubcommand) UpdateContext(ctx *plugin.Context) {
+	p.CreateAPISubcommand.UpdateContext(ctx)
+}
+func (p *createAPISubcommand) BindFlags(fs *pflag.FlagSet) { p.CreateAPISubcommand.BindFlags(fs) }
 
-func (p *createAPIPlugin) InjectConfig(c *config.Config) {
-	p.CreateAPI.InjectConfig(c)
+func (p *createAPISubcommand) InjectConfig(c *config.Config) {
+	p.CreateAPISubcommand.InjectConfig(c)
 	p.config = c
 }
 
-func (p *createAPIPlugin) Run() error {
+func (p *createAPISubcommand) Run() error {
 	// Run() may add a new resource to the config, so we can compare resources before/after to get the new resource.
 	oldResources := make(map[config.GVK]struct{}, len(p.config.Resources))
 	for _, r := range p.config.Resources {
 		oldResources[r] = struct{}{}
 	}
-	if err := p.CreateAPI.Run(); err != nil {
+	if err := p.CreateAPISubcommand.Run(); err != nil {
 		return err
 	}
 
@@ -68,6 +70,6 @@ func (p *createAPIPlugin) Run() error {
 }
 
 // SDK phase 2 plugins.
-func (p *createAPIPlugin) runPhase2(gvk config.GVK) error {
+func (p *createAPISubcommand) runPhase2(gvk config.GVK) error {
 	return manifests.RunCreateAPI(p.config, gvk)
 }
diff --git a/internal/plugins/golang/v2/config.go b/internal/plugins/golang/v2/config.go
index 063ad939..d2de599e 100644
--- a/internal/plugins/golang/v2/config.go
+++ b/internal/plugins/golang/v2/config.go
@@ -14,7 +14,7 @@
 
 package v2
 
-import "sigs.k8s.io/kubebuilder/pkg/model/config"
+import "sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 
 // Config configures this plugin, and is saved in the project config file.
 type Config struct{}
diff --git a/internal/plugins/golang/v2/init.go b/internal/plugins/golang/v2/init.go
index 6d0eab21..1b9dc774 100644
--- a/internal/plugins/golang/v2/init.go
+++ b/internal/plugins/golang/v2/init.go
@@ -18,32 +18,32 @@ import (
 	"fmt"
 
 	"github.com/spf13/pflag"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/plugin"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/envtest"
 	"github.com/operator-framework/operator-sdk/internal/plugins/manifests"
 	"github.com/operator-framework/operator-sdk/internal/plugins/scorecard"
 )
 
-type initPlugin struct {
-	plugin.Init
+type initSubcommand struct {
+	plugin.InitSubcommand
 
 	config *config.Config
 }
 
-var _ plugin.Init = &initPlugin{}
+var _ plugin.InitSubcommand = &initSubcommand{}
 
-func (p *initPlugin) UpdateContext(ctx *plugin.Context) { p.Init.UpdateContext(ctx) }
-func (p *initPlugin) BindFlags(fs *pflag.FlagSet)       { p.Init.BindFlags(fs) }
+func (p *initSubcommand) UpdateContext(ctx *plugin.Context) { p.InitSubcommand.UpdateContext(ctx) }
+func (p *initSubcommand) BindFlags(fs *pflag.FlagSet)       { p.InitSubcommand.BindFlags(fs) }
 
-func (p *initPlugin) InjectConfig(c *config.Config) {
-	p.Init.InjectConfig(c)
+func (p *initSubcommand) InjectConfig(c *config.Config) {
+	p.InitSubcommand.InjectConfig(c)
 	p.config = c
 }
 
-func (p *initPlugin) Run() error {
-	if err := p.Init.Run(); err != nil {
+func (p *initSubcommand) Run() error {
+	if err := p.InitSubcommand.Run(); err != nil {
 		return err
 	}
 
@@ -64,7 +64,7 @@ func (p *initPlugin) Run() error {
 }
 
 // SDK phase 2 plugins.
-func (p *initPlugin) runPhase2() error {
+func (p *initSubcommand) runPhase2() error {
 	if err := envtest.RunInit(p.config); err != nil {
 		return err
 	}
diff --git a/internal/plugins/golang/v2/plugin.go b/internal/plugins/golang/v2/plugin.go
index eb2792fc..a4dbffe6 100644
--- a/internal/plugins/golang/v2/plugin.go
+++ b/internal/plugins/golang/v2/plugin.go
@@ -17,8 +17,8 @@ package v2
 import (
 	"github.com/operator-framework/operator-sdk/internal/plugins"
 
-	"sigs.k8s.io/kubebuilder/pkg/plugin"
-	kbgov2 "sigs.k8s.io/kubebuilder/pkg/plugin/v2"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin"
+	kbgov2 "sigs.k8s.io/kubebuilder/v2/pkg/plugin/v2"
 )
 
 // Plugin name/version used in this file will also be used in phase 2 plugins when we can
@@ -35,11 +35,8 @@ var (
 )
 
 var (
-	_ plugin.Base                      = Plugin{}
-	_ plugin.InitPluginGetter          = Plugin{}
-	_ plugin.CreateAPIPluginGetter     = Plugin{}
-	_ plugin.CreateWebhookPluginGetter = Plugin{}
-	_ plugin.EditPluginGetter          = Plugin{}
+	_ plugin.Plugin = Plugin{}
+	_ plugin.Full   = Plugin{}
 )
 
 // Plugin defines an Operator SDK Go scaffold and CLI plugin. Its current purpose is to
@@ -52,22 +49,22 @@ func (Plugin) SupportedProjectVersions() []string {
 	return (kbgov2.Plugin{}).SupportedProjectVersions()
 }
 
-func (p Plugin) GetInitPlugin() plugin.Init {
-	return &initPlugin{
-		Init: (kbgov2.Plugin{}).GetInitPlugin(),
+func (p Plugin) GetInitSubcommand() plugin.InitSubcommand {
+	return &initSubcommand{
+		InitSubcommand: (kbgov2.Plugin{}).GetInitSubcommand(),
 	}
 }
 
-func (p Plugin) GetCreateAPIPlugin() plugin.CreateAPI {
-	return &createAPIPlugin{
-		CreateAPI: (kbgov2.Plugin{}).GetCreateAPIPlugin(),
+func (p Plugin) GetCreateAPISubcommand() plugin.CreateAPISubcommand {
+	return &createAPISubcommand{
+		CreateAPISubcommand: (kbgov2.Plugin{}).GetCreateAPISubcommand(),
 	}
 }
 
-func (p Plugin) GetCreateWebhookPlugin() plugin.CreateWebhook {
-	return (kbgov2.Plugin{}).GetCreateWebhookPlugin()
+func (p Plugin) GetCreateWebhookSubcommand() plugin.CreateWebhookSubcommand {
+	return (kbgov2.Plugin{}).GetCreateWebhookSubcommand()
 }
 
-func (p Plugin) GetEditPlugin() plugin.Edit {
-	return (kbgov2.Plugin{}).GetEditPlugin()
+func (p Plugin) GetEditSubcommand() plugin.EditSubcommand {
+	return (kbgov2.Plugin{}).GetEditSubcommand()
 }
diff --git a/internal/plugins/helm/v1/api.go b/internal/plugins/helm/v1/api.go
index 83873cd6..179ba7d8 100644
--- a/internal/plugins/helm/v1/api.go
+++ b/internal/plugins/helm/v1/api.go
@@ -19,10 +19,10 @@ import (
 	"strings"
 
 	"github.com/spf13/pflag"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/model/resource"
-	"sigs.k8s.io/kubebuilder/pkg/plugin"
-	"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/resource"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin/scaffold"
 
 	"github.com/operator-framework/operator-sdk/internal/kubebuilder/cmdutil"
 	"github.com/operator-framework/operator-sdk/internal/plugins/helm/v1/chartutil"
@@ -30,19 +30,19 @@ import (
 	"github.com/operator-framework/operator-sdk/internal/plugins/manifests"
 )
 
-type createAPIPlugin struct {
+type createAPISubcommand struct {
 	config *config.Config
 
 	createOptions chartutil.CreateOptions
 }
 
 var (
-	_ plugin.CreateAPI   = &createAPIPlugin{}
-	_ cmdutil.RunOptions = &createAPIPlugin{}
+	_ plugin.CreateAPISubcommand = &createAPISubcommand{}
+	_ cmdutil.RunOptions         = &createAPISubcommand{}
 )
 
 // UpdateContext define plugin context
-func (p createAPIPlugin) UpdateContext(ctx *plugin.Context) {
+func (p createAPISubcommand) UpdateContext(ctx *plugin.Context) {
 	ctx.Description = `Scaffold a Kubernetes API that is backed by a Helm chart.
 `
 	ctx.Examples = fmt.Sprintf(`  $ %s create api \
@@ -101,7 +101,7 @@ const (
 )
 
 // BindFlags will set the flags for the plugin
-func (p *createAPIPlugin) BindFlags(fs *pflag.FlagSet) {
+func (p *createAPISubcommand) BindFlags(fs *pflag.FlagSet) {
 	p.createOptions = chartutil.CreateOptions{}
 	fs.SortFlags = false
 
@@ -117,12 +117,12 @@ func (p *createAPIPlugin) BindFlags(fs *pflag.FlagSet) {
 }
 
 // InjectConfig will inject the PROJECT file/config in the plugin
-func (p *createAPIPlugin) InjectConfig(c *config.Config) {
+func (p *createAPISubcommand) InjectConfig(c *config.Config) {
 	p.config = c
 }
 
 // Run will call the plugin actions according to the definitions done in RunOptions interface
-func (p *createAPIPlugin) Run() error {
+func (p *createAPISubcommand) Run() error {
 	if err := cmdutil.Run(p); err != nil {
 		return err
 	}
@@ -136,13 +136,13 @@ func (p *createAPIPlugin) Run() error {
 }
 
 // SDK phase 2 plugins.
-func (p *createAPIPlugin) runPhase2() error {
+func (p *createAPISubcommand) runPhase2() error {
 	gvk := p.createOptions.GVK
 	return manifests.RunCreateAPI(p.config, config.GVK{Group: gvk.Group, Version: gvk.Version, Kind: gvk.Kind})
 }
 
 // Validate perform the required validations for this plugin
-func (p *createAPIPlugin) Validate() error {
+func (p *createAPISubcommand) Validate() error {
 	if p.createOptions.CRDVersion != crdVersionV1 && p.createOptions.CRDVersion != crdVersionV1beta1 {
 		return fmt.Errorf("value of --%s must be either %q or %q", crdVersionFlag, crdVersionV1, crdVersionV1beta1)
 	}
@@ -182,11 +182,11 @@ func (p *createAPIPlugin) Validate() error {
 }
 
 // GetScaffolder returns scaffold.Scaffolder which will be executed due the RunOptions interface implementation
-func (p *createAPIPlugin) GetScaffolder() (scaffold.Scaffolder, error) {
+func (p *createAPISubcommand) GetScaffolder() (scaffold.Scaffolder, error) {
 	return scaffolds.NewAPIScaffolder(p.config, p.createOptions), nil
 }
 
 // PostScaffold runs all actions that should be executed after the default plugin scaffold
-func (p *createAPIPlugin) PostScaffold() error {
+func (p *createAPISubcommand) PostScaffold() error {
 	return nil
 }
diff --git a/internal/plugins/helm/v1/chartutil/chart.go b/internal/plugins/helm/v1/chartutil/chart.go
index 9a6e1fbc..55d9d2a9 100644
--- a/internal/plugins/helm/v1/chartutil/chart.go
+++ b/internal/plugins/helm/v1/chartutil/chart.go
@@ -32,7 +32,7 @@ import (
 	"helm.sh/helm/v3/pkg/getter"
 	"helm.sh/helm/v3/pkg/repo"
 	"k8s.io/apimachinery/pkg/runtime/schema"
-	"sigs.k8s.io/kubebuilder/pkg/model/resource"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/resource"
 )
 
 const (
diff --git a/internal/plugins/helm/v1/init.go b/internal/plugins/helm/v1/init.go
index 30cf0678..312b9434 100644
--- a/internal/plugins/helm/v1/init.go
+++ b/internal/plugins/helm/v1/init.go
@@ -22,9 +22,9 @@ import (
 
 	"github.com/spf13/pflag"
 	"k8s.io/apimachinery/pkg/util/validation"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/plugin"
-	"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin/scaffold"
 
 	"github.com/operator-framework/operator-sdk/internal/kubebuilder/cmdutil"
 	"github.com/operator-framework/operator-sdk/internal/plugins/helm/v1/chartutil"
@@ -33,9 +33,9 @@ import (
 	"github.com/operator-framework/operator-sdk/internal/plugins/scorecard"
 )
 
-type initPlugin struct {
+type initSubcommand struct {
 	config    *config.Config
-	apiPlugin createAPIPlugin
+	apiPlugin createAPISubcommand
 
 	// If true, run the `create api` plugin.
 	doCreateAPI bool
@@ -45,12 +45,12 @@ type initPlugin struct {
 }
 
 var (
-	_ plugin.Init        = &initPlugin{}
-	_ cmdutil.RunOptions = &initPlugin{}
+	_ plugin.InitSubcommand = &initSubcommand{}
+	_ cmdutil.RunOptions    = &initSubcommand{}
 )
 
 // UpdateContext define plugin context
-func (p *initPlugin) UpdateContext(ctx *plugin.Context) {
+func (p *initSubcommand) UpdateContext(ctx *plugin.Context) {
 	ctx.Description = `Initialize a new Helm-based operator project.
 
 Writes the following files:
@@ -125,7 +125,7 @@ Writes the following files:
 }
 
 // BindFlags will set the flags for the plugin
-func (p *initPlugin) BindFlags(fs *pflag.FlagSet) {
+func (p *initSubcommand) BindFlags(fs *pflag.FlagSet) {
 	fs.SortFlags = false
 	fs.StringVar(&p.config.Domain, "domain", "my.domain", "domain for groups")
 	fs.StringVar(&p.config.ProjectName, "project-name", "", "name of this project, the default being directory name")
@@ -133,7 +133,7 @@ func (p *initPlugin) BindFlags(fs *pflag.FlagSet) {
 }
 
 // InjectConfig will inject the PROJECT file/config in the plugin
-func (p *initPlugin) InjectConfig(c *config.Config) {
+func (p *initSubcommand) InjectConfig(c *config.Config) {
 	// v3 project configs get a 'layout' value.
 	c.Layout = pluginKey
 	p.config = c
@@ -141,7 +141,7 @@ func (p *initPlugin) InjectConfig(c *config.Config) {
 }
 
 // Run will call the plugin actions
-func (p *initPlugin) Run() error {
+func (p *initSubcommand) Run() error {
 	if err := cmdutil.Run(p); err != nil {
 		return err
 	}
@@ -155,7 +155,7 @@ func (p *initPlugin) Run() error {
 }
 
 // SDK phase 2 plugins.
-func (p *initPlugin) runPhase2() error {
+func (p *initSubcommand) runPhase2() error {
 	if err := manifests.RunInit(p.config); err != nil {
 		return err
 	}
@@ -173,7 +173,7 @@ func (p *initPlugin) runPhase2() error {
 }
 
 // Validate perform the required validations for this plugin
-func (p *initPlugin) Validate() error {
+func (p *initSubcommand) Validate() error {
 
 	// Check if the project name is a valid k8s namespace (DNS 1123 label).
 	if p.config.ProjectName == "" {
@@ -197,7 +197,7 @@ func (p *initPlugin) Validate() error {
 }
 
 // GetScaffolder returns scaffold.Scaffolder which will be executed due the RunOptions interface implementation
-func (p *initPlugin) GetScaffolder() (scaffold.Scaffolder, error) {
+func (p *initSubcommand) GetScaffolder() (scaffold.Scaffolder, error) {
 	var (
 		apiScaffolder scaffold.Scaffolder
 		err           error
@@ -212,7 +212,7 @@ func (p *initPlugin) GetScaffolder() (scaffold.Scaffolder, error) {
 }
 
 // PostScaffold will run the required actions after the default plugin scaffold
-func (p *initPlugin) PostScaffold() error {
+func (p *initSubcommand) PostScaffold() error {
 
 	if p.doCreateAPI {
 		return p.apiPlugin.PostScaffold()
diff --git a/internal/plugins/helm/v1/plugin.go b/internal/plugins/helm/v1/plugin.go
index e981fdd5..563e01df 100644
--- a/internal/plugins/helm/v1/plugin.go
+++ b/internal/plugins/helm/v1/plugin.go
@@ -15,8 +15,8 @@
 package v1
 
 import (
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/plugin"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins"
 )
@@ -30,18 +30,18 @@ var (
 )
 
 var (
-	_ plugin.Base                  = Plugin{}
-	_ plugin.InitPluginGetter      = Plugin{}
-	_ plugin.CreateAPIPluginGetter = Plugin{}
+	_ plugin.Plugin    = Plugin{}
+	_ plugin.Init      = Plugin{}
+	_ plugin.CreateAPI = Plugin{}
 )
 
 type Plugin struct {
-	initPlugin
-	createAPIPlugin
+	initSubcommand
+	createAPISubcommand
 }
 
-func (Plugin) Name() string                           { return pluginName }
-func (Plugin) Version() plugin.Version                { return pluginVersion }
-func (Plugin) SupportedProjectVersions() []string     { return supportedProjectVersions }
-func (p Plugin) GetInitPlugin() plugin.Init           { return &p.initPlugin }
-func (p Plugin) GetCreateAPIPlugin() plugin.CreateAPI { return &p.createAPIPlugin }
+func (Plugin) Name() string                                         { return pluginName }
+func (Plugin) Version() plugin.Version                              { return pluginVersion }
+func (Plugin) SupportedProjectVersions() []string                   { return supportedProjectVersions }
+func (p Plugin) GetInitSubcommand() plugin.InitSubcommand           { return &p.initSubcommand }
+func (p Plugin) GetCreateAPISubcommand() plugin.CreateAPISubcommand { return &p.createAPISubcommand }
diff --git a/internal/plugins/helm/v1/scaffolds/api.go b/internal/plugins/helm/v1/scaffolds/api.go
index bde661fa..7f653373 100644
--- a/internal/plugins/helm/v1/scaffolds/api.go
+++ b/internal/plugins/helm/v1/scaffolds/api.go
@@ -23,10 +23,10 @@ import (
 	"os"
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/model/resource"
-	"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/resource"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin/scaffold"
 
 	"github.com/operator-framework/operator-sdk/internal/kubebuilder/machinery"
 	"github.com/operator-framework/operator-sdk/internal/plugins/helm/v1/chartutil"
diff --git a/internal/plugins/helm/v1/scaffolds/init.go b/internal/plugins/helm/v1/scaffolds/init.go
index 6c37374a..2fedbaf1 100644
--- a/internal/plugins/helm/v1/scaffolds/init.go
+++ b/internal/plugins/helm/v1/scaffolds/init.go
@@ -20,9 +20,9 @@ package scaffolds
 import (
 	"os"
 
-	"sigs.k8s.io/kubebuilder/pkg/model"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/plugin/scaffold"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/plugin/scaffold"
 
 	"github.com/operator-framework/operator-sdk/internal/kubebuilder/machinery"
 	"github.com/operator-framework/operator-sdk/internal/plugins/helm/v1/chartutil"
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/crd/crd.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/crd/crd.go
index b03ac74d..a8921873 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/crd/crd.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/crd/crd.go
@@ -20,7 +20,7 @@ import (
 	"path/filepath"
 
 	"github.com/kr/text"
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &CRD{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/crd/kustomization.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/crd/kustomization.go
index 917caddd..a3281e96 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/crd/kustomization.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/crd/kustomization.go
@@ -21,7 +21,7 @@ import (
 	"fmt"
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomization{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/kdefault/auth_proxy_patch.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/kdefault/auth_proxy_patch.go
index 2abb40cc..df600ad9 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/kdefault/auth_proxy_patch.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/kdefault/auth_proxy_patch.go
@@ -20,7 +20,7 @@ package kdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &AuthProxyPatch{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/kdefault/kustomization.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/kdefault/kustomization.go
index 497a1f88..afbe8e0b 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/kdefault/kustomization.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/kdefault/kustomization.go
@@ -20,7 +20,7 @@ package kdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomization{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/manager/kustomization.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/manager/kustomization.go
index 84af806d..1318302e 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/manager/kustomization.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/manager/kustomization.go
@@ -19,7 +19,7 @@ package manager
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomization{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/manager/manager.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/manager/manager.go
index 79b6a075..6568b046 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/manager/manager.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/manager/manager.go
@@ -20,7 +20,7 @@ package manager
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Manager{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/prometheus/kustomization.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/prometheus/kustomization.go
index a630cddc..c72539da 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/prometheus/kustomization.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/prometheus/kustomization.go
@@ -19,7 +19,7 @@ package prometheus
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomization{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/prometheus/monitor.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/prometheus/monitor.go
index d32402f1..54a2bcab 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/prometheus/monitor.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/prometheus/monitor.go
@@ -19,7 +19,7 @@ package prometheus
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &ServiceMonitor{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role.go
index f05e7767..761ea8bc 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &AuthProxyRole{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go
index d0d43cf0..8342bf58 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_role_binding.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &AuthProxyRoleBinding{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_service.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_service.go
index 31a66347..03857ba1 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_service.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/auth_proxy_service.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &AuthProxyService{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/client_cluster_role.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/client_cluster_role.go
index 39cda25a..a3cbb04c 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/client_cluster_role.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/client_cluster_role.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &ClientClusterRole{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/crd_editor_rbac.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/crd_editor_rbac.go
index 44c28e88..39f18cb7 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/crd_editor_rbac.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/crd_editor_rbac.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &CRDEditorRole{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/crd_viewer_rbac.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/crd_viewer_rbac.go
index 2591e509..fb8efa12 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/crd_viewer_rbac.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/crd_viewer_rbac.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &CRDViewerRole{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/kustomization.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/kustomization.go
index f3de8307..9d5711cd 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/kustomization.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/kustomization.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomization{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/leader_election_role.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/leader_election_role.go
index d8b0aaa6..b220d947 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/leader_election_role.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/leader_election_role.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &LeaderElectionRole{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go
index 875fff93..00124b77 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/leader_election_role_binding.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &LeaderElectionRoleBinding{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/manager_role.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/manager_role.go
index ba920f76..14488342 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/manager_role.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/manager_role.go
@@ -32,7 +32,7 @@ import (
 	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 	"k8s.io/client-go/discovery"
 	crconfig "sigs.k8s.io/controller-runtime/pkg/client/config"
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 	"sigs.k8s.io/yaml"
 )
 
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/manager_role_binding.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/manager_role_binding.go
index ffa55352..fd02baa9 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/manager_role_binding.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/rbac/manager_role_binding.go
@@ -19,7 +19,7 @@ package rbac
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &ManagerRoleBinding{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/config/samples/crd_sample.go b/internal/plugins/helm/v1/scaffolds/internal/templates/config/samples/crd_sample.go
index 10daa6ad..c858a06c 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/config/samples/crd_sample.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/config/samples/crd_sample.go
@@ -24,7 +24,7 @@ import (
 	"text/template"
 
 	"helm.sh/helm/v3/pkg/chart"
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 	"sigs.k8s.io/yaml"
 )
 
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/dockerfile.go b/internal/plugins/helm/v1/scaffolds/internal/templates/dockerfile.go
index f02fc1b5..26a16949 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/dockerfile.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/dockerfile.go
@@ -17,7 +17,7 @@ package templates
 import (
 	"errors"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Dockerfile{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/gitignore.go b/internal/plugins/helm/v1/scaffolds/internal/templates/gitignore.go
index e309be02..745db8da 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/gitignore.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/gitignore.go
@@ -18,7 +18,7 @@ limitations under the License.
 package templates
 
 import (
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &GitIgnore{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/makefile.go b/internal/plugins/helm/v1/scaffolds/internal/templates/makefile.go
index 95adbe5d..f5af0f10 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/makefile.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/makefile.go
@@ -20,7 +20,7 @@ package templates
 import (
 	"errors"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Makefile{}
diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/watches.go b/internal/plugins/helm/v1/scaffolds/internal/templates/watches.go
index 4204820a..7e8256bd 100644
--- a/internal/plugins/helm/v1/scaffolds/internal/templates/watches.go
+++ b/internal/plugins/helm/v1/scaffolds/internal/templates/watches.go
@@ -17,7 +17,7 @@ package templates
 import (
 	"fmt"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Watches{}
diff --git a/internal/plugins/manifests/api.go b/internal/plugins/manifests/api.go
index 65534902..20f02eff 100644
--- a/internal/plugins/manifests/api.go
+++ b/internal/plugins/manifests/api.go
@@ -18,9 +18,9 @@ package manifests
 import (
 	"fmt"
 
-	"sigs.k8s.io/kubebuilder/pkg/model"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/kubebuilder/machinery"
 )
diff --git a/internal/plugins/manifests/init.go b/internal/plugins/manifests/init.go
index 65dd97f4..f8e78148 100644
--- a/internal/plugins/manifests/init.go
+++ b/internal/plugins/manifests/init.go
@@ -20,7 +20,7 @@ import (
 	"io/ioutil"
 	"os"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 
 	"github.com/operator-framework/operator-sdk/internal/util/projutil"
 )
diff --git a/internal/plugins/manifests/samples.go b/internal/plugins/manifests/samples.go
index 65e9ca5f..9aae7840 100644
--- a/internal/plugins/manifests/samples.go
+++ b/internal/plugins/manifests/samples.go
@@ -18,8 +18,8 @@ import (
 	"path/filepath"
 	"strings"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &kustomization{}
diff --git a/internal/plugins/scorecard/init.go b/internal/plugins/scorecard/init.go
index 6db3d251..7747d8bd 100644
--- a/internal/plugins/scorecard/init.go
+++ b/internal/plugins/scorecard/init.go
@@ -24,7 +24,7 @@ import (
 
 	"github.com/operator-framework/api/pkg/apis/scorecard/v1alpha3"
 	"k8s.io/apimachinery/pkg/runtime/schema"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 	"sigs.k8s.io/yaml"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/util/kustomize"
diff --git a/internal/util/projutil/project_util.go b/internal/util/projutil/project_util.go
index 57b2d5f7..455bb405 100644
--- a/internal/util/projutil/project_util.go
+++ b/internal/util/projutil/project_util.go
@@ -22,7 +22,7 @@ import (
 	"strings"
 
 	log "github.com/sirupsen/logrus"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 )
 
 const (
diff --git a/website/content/en/docs/cli/operator-sdk_edit.md b/website/content/en/docs/cli/operator-sdk_edit.md
index 4e6ed12e..63c908c3 100644
--- a/website/content/en/docs/cli/operator-sdk_edit.md
+++ b/website/content/en/docs/cli/operator-sdk_edit.md
@@ -7,7 +7,8 @@ This command will edit the project configuration
 
 ### Synopsis
 
-This command will edit the project configuration. You can have single or multi group project.
+Edit the project configuration.
+
 Note: unable to find configuration file, project must be initialized
 
 ```


Test patch:
diff --git a/internal/generate/clusterserviceversion/clusterserviceversion_test.go b/internal/generate/clusterserviceversion/clusterserviceversion_test.go
index f9d47a52..578bc764 100644
--- a/internal/generate/clusterserviceversion/clusterserviceversion_test.go
+++ b/internal/generate/clusterserviceversion/clusterserviceversion_test.go
@@ -30,7 +30,7 @@ import (
 	"github.com/operator-framework/api/pkg/operators/v1alpha1"
 	"github.com/operator-framework/operator-registry/pkg/lib/bundle"
 	appsv1 "k8s.io/api/apps/v1"
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 	"sigs.k8s.io/yaml"
 
 	metricsannotations "github.com/operator-framework/operator-sdk/internal/annotations/metrics"
diff --git a/internal/kubebuilder/machinery/scaffold_test.go b/internal/kubebuilder/machinery/scaffold_test.go
index e7112918..65d4222d 100644
--- a/internal/kubebuilder/machinery/scaffold_test.go
+++ b/internal/kubebuilder/machinery/scaffold_test.go
@@ -22,8 +22,8 @@ import (
 	. "github.com/onsi/ginkgo"
 	. "github.com/onsi/ginkgo/extensions/table"
 	. "github.com/onsi/gomega"
-	"sigs.k8s.io/kubebuilder/pkg/model"
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 
 	"github.com/operator-framework/operator-sdk/internal/kubebuilder/filesystem"
 )
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/debug_logs_patch.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/debug_logs_patch.go
index c7ea338b..f4622e5d 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/debug_logs_patch.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/debug_logs_patch.go
@@ -17,7 +17,7 @@ package testing
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &DebugLogsPatch{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/kustomization.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/kustomization.go
index a244e48f..37dc7ca4 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/kustomization.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/kustomization.go
@@ -17,7 +17,7 @@ package testing
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &Kustomization{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/manager_image.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/manager_image.go
index 5c6ffa4a..d25d8c77 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/manager_image.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/manager_image.go
@@ -17,7 +17,7 @@ package testing
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &ManagerImage{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/always_pull_patch.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/always_pull_patch.go
index 8ec7e02f..c0b5ce5a 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/always_pull_patch.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/always_pull_patch.go
@@ -17,7 +17,7 @@ package pullpolicy
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &AlwaysPullPatch{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/ifnotpresent_pull_patch.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/ifnotpresent_pull_patch.go
index fd8d067d..0a107451 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/ifnotpresent_pull_patch.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/ifnotpresent_pull_patch.go
@@ -17,7 +17,7 @@ package pullpolicy
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &IfNotPresentPullPatch{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/never_pull_patch.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/never_pull_patch.go
index f2f25855..8d762e2b 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/never_pull_patch.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/config/testing/pullpolicy/never_pull_patch.go
@@ -17,7 +17,7 @@ package pullpolicy
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &NeverPullPatch{}
diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/tasks_test_resource.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/tasks_test_resource.go
index a6951157..d6092541 100644
--- a/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/tasks_test_resource.go
+++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/molecule/mdefault/tasks_test_resource.go
@@ -17,7 +17,7 @@ package mdefault
 import (
 	"path/filepath"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/file"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/file"
 )
 
 var _ file.Template = &ResourceTest{}
diff --git a/internal/plugins/envtest/init.go b/internal/plugins/envtest/init.go
index 4e6e6b89..c0b599cb 100644
--- a/internal/plugins/envtest/init.go
+++ b/internal/plugins/envtest/init.go
@@ -22,7 +22,7 @@ import (
 	"os"
 	"strings"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 )
 
 // controllerRuntimeVersion version to be used to download the envtest setup script
diff --git a/internal/plugins/helm/v1/chartutil/chart_test.go b/internal/plugins/helm/v1/chartutil/chart_test.go
index 202bd68b..b489fa09 100644
--- a/internal/plugins/helm/v1/chartutil/chart_test.go
+++ b/internal/plugins/helm/v1/chartutil/chart_test.go
@@ -24,7 +24,7 @@ import (
 	"helm.sh/helm/v3/pkg/chart/loader"
 	"helm.sh/helm/v3/pkg/repo/repotest"
 	"k8s.io/apimachinery/pkg/runtime/schema"
-	"sigs.k8s.io/kubebuilder/pkg/model/resource"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/resource"
 
 	"github.com/operator-framework/operator-sdk/internal/plugins/helm/v1/chartutil"
 )
diff --git a/internal/testutils/olm.go b/internal/testutils/olm.go
index 31285e4d..f10ac2f8 100644
--- a/internal/testutils/olm.go
+++ b/internal/testutils/olm.go
@@ -20,7 +20,7 @@ import (
 	"path/filepath"
 	"strings"
 
-	"sigs.k8s.io/kubebuilder/pkg/model/config"
+	"sigs.k8s.io/kubebuilder/v2/pkg/model/config"
 )
 
 const (
diff --git a/internal/testutils/utils.go b/internal/testutils/utils.go
index 8a8283dd..ae7199f3 100644
--- a/internal/testutils/utils.go
+++ b/internal/testutils/utils.go
@@ -28,7 +28,7 @@ import (
 
 	. "github.com/onsi/ginkgo"
 	. "github.com/onsi/gomega"
-	kbtestutils "sigs.k8s.io/kubebuilder/test/e2e/utils"
+	kbtestutils "sigs.k8s.io/kubebuilder/v2/test/e2e/utils"
 )
 
 const BinaryName = "operator-sdk"
diff --git a/test/e2e-ansible/e2e_ansible_cluster_test.go b/test/e2e-ansible/e2e_ansible_cluster_test.go
index acb7ff83..8a2e639c 100644
--- a/test/e2e-ansible/e2e_ansible_cluster_test.go
+++ b/test/e2e-ansible/e2e_ansible_cluster_test.go
@@ -23,7 +23,7 @@ import (
 
 	. "github.com/onsi/ginkgo"
 	. "github.com/onsi/gomega"
-	kbtestutils "sigs.k8s.io/kubebuilder/test/e2e/utils"
+	kbtestutils "sigs.k8s.io/kubebuilder/v2/test/e2e/utils"
 
 	"github.com/operator-framework/operator-sdk/internal/testutils"
 )
diff --git a/test/e2e-ansible/e2e_ansible_suite_test.go b/test/e2e-ansible/e2e_ansible_suite_test.go
index 6ea680ff..c2256cca 100644
--- a/test/e2e-ansible/e2e_ansible_suite_test.go
+++ b/test/e2e-ansible/e2e_ansible_suite_test.go
@@ -21,7 +21,7 @@ import (
 	"strings"
 	"testing"
 
-	kbtestutils "sigs.k8s.io/kubebuilder/test/e2e/utils"
+	kbtestutils "sigs.k8s.io/kubebuilder/v2/test/e2e/utils"
 
 	. "github.com/onsi/ginkgo"
 	. "github.com/onsi/gomega"
diff --git a/test/e2e-go/e2e_go_cluster_test.go b/test/e2e-go/e2e_go_cluster_test.go
index 1511fb29..126cce37 100644
--- a/test/e2e-go/e2e_go_cluster_test.go
+++ b/test/e2e-go/e2e_go_cluster_test.go
@@ -25,7 +25,7 @@ import (
 
 	. "github.com/onsi/ginkgo"
 	. "github.com/onsi/gomega"
-	kbtestutils "sigs.k8s.io/kubebuilder/test/e2e/utils"
+	kbtestutils "sigs.k8s.io/kubebuilder/v2/test/e2e/utils"
 )
 
 var _ = Describe("operator-sdk", func() {
diff --git a/test/e2e-go/e2e_go_suite_test.go b/test/e2e-go/e2e_go_suite_test.go
index e5add77c..49e923db 100644
--- a/test/e2e-go/e2e_go_suite_test.go
+++ b/test/e2e-go/e2e_go_suite_test.go
@@ -23,7 +23,7 @@ import (
 
 	. "github.com/onsi/ginkgo"
 	. "github.com/onsi/gomega"
-	kbtestutils "sigs.k8s.io/kubebuilder/test/e2e/utils"
+	kbtestutils "sigs.k8s.io/kubebuilder/v2/test/e2e/utils"
 
 	"github.com/operator-framework/operator-sdk/internal/testutils"
 )
diff --git a/test/e2e-helm/e2e_helm_cluster_test.go b/test/e2e-helm/e2e_helm_cluster_test.go
index 23cdbdbb..1e89f145 100644
--- a/test/e2e-helm/e2e_helm_cluster_test.go
+++ b/test/e2e-helm/e2e_helm_cluster_test.go
@@ -23,7 +23,7 @@ import (
 
 	. "github.com/onsi/ginkgo"
 	. "github.com/onsi/gomega"
-	kbtestutils "sigs.k8s.io/kubebuilder/test/e2e/utils"
+	kbtestutils "sigs.k8s.io/kubebuilder/v2/test/e2e/utils"
 
 	"github.com/operator-framework/operator-sdk/internal/testutils"
 )