Available plugins

This section describes the plugins supported and shipped in with the Kubebuilder project.

To scaffold the projects

The following plugins are useful to scaffold the whole project with the tool.

PluginKeyDescription
go.kubebuilder.io/v2 - (Deprecated)go/v2Golang plugin responsible for scaffolding the legacy layout provided with Kubebuilder CLI >= 2.0.0 and < 3.0.0.
go.kubebuilder.io/v3 - (Default scaffold with Kubebuilder init)go/v3Default scaffold used for creating a project when no plugin(s) are provided. Responsible for scaffolding Golang projects and its configurations.
go.kubebuilder.io/v4-alpha - (Add Apple Silicon Support)go/v4Scaffold composite by base.go.kubebuilder.io/v3 and kustomize.common.kubebuilder.io/v2. Responsible for scaffolding Golang projects and its configurations.

To add optional features

The following plugins are useful to generate code and take advantage of optional features

PluginKeyDescription
declarative.go.kubebuilder.io/v1 - (Deprecated) declarative/v1Optional plugin used to scaffold APIs/controllers using the kubebuilder-declarative-pattern project.
grafana.kubebuilder.io/v1-alphagrafana/v1-alphaOptional helper plugin which can be used to scaffold Grafana Manifests Dashboards for the default metrics which are exported by controller-runtime.
deploy-image.go.kubebuilder.io/v1-alphadeploy-image/v1-alphaOptional helper plugin which can be used to scaffold APIs and controller with code implementation to Deploy and Manage an Operand(image).

To help projects using Kubebuilder as Lib to composite new solutions and plugins

Then, see that you can use the kustomize plugin, which is responsible for to scaffold the kustomize files under config/, as the base language plugins which are responsible for to scaffold the Golang files to create your own plugins to work with another languages (i.e. Operator-SDK does to allow users work with Ansible/Helm) or to add helpers on top, such as Operator-SDK does to add their features to integrate the projects with OLM.

PluginKeyDescription
kustomize.common.kubebuilder.io/v1kustomize/v1 (Deprecated)Responsible for scaffolding all manifests to configure projects with kustomize(v3). (create and update the config/ directory). This plugin is used in the composition to create the plugin (go/v3).
kustomize.common.kubebuilder.io/v2kustomize/v2It has the same purpose of kustomize/v1. However, it works with kustomize version v4 and addresses the required changes for future kustomize configurations. It will probably be used with the future go/v4-alpha plugin.
base.go.kubebuilder.io/v3base/v3Responsible for scaffolding all files that specifically require Golang. This plugin is used in composition to create the plugin (go/v3)
base.go.kubebuilder.io/v4base/v4Responsible for scaffolding all files which specifically requires Golang. This plugin is used in the composition to create the plugin (go/v4)