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/v4 - (Default scaffold with Kubebuilder init)go/v4Scaffold composite by base.go.kubebuilder.io/v4 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
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 be extended

The following plugins are useful for other tools and External Plugins which are looking to extend the Kubebuilder functionality.

You can use the kustomize plugin, which is responsible for scaffolding the kustomize files under config/. The base language plugins are responsible for scaffolding the necessary Golang files, allowing you to create your own plugins for other languages (e.g., Operator-SDK enables users to work with Ansible/Helm) or add additional functionality.

For example, Operator-SDK has a plugin which integrates the projects with OLM by adding its own features on top.

PluginKeyDescription
kustomize.common.kubebuilder.io/v2kustomize/v2Responsible for scaffolding all kustomize files under the config/ directory
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)