可用插件

本节介绍 Kubebuilder 项目所支持并内置的插件。

脚手架生成整套项目

以下插件可用于借助工具一次性脚手架生成整个项目:

插件Key说明
go.kubebuilder.io/v4(Kubebuilder init 的默认脚手架)go/v4base.go.kubebuilder.io/v4kustomize.common.kubebuilder.io/v2 组合而成,负责 Golang 项目及其配置的脚手架生成。

增加可选特性

以下插件可用于生成代码并利用可选特性:

插件Key说明
autoupdate.kubebuilder.io/v1-alphaautoupdate/v1-alpha可选辅助插件,脚手架生成一个定时任务,帮助你的项目自动跟进生态变更,显著降低人工维护成本。
deploy-image.go.kubebuilder.io/v1-alphadeploy-image/v1-alpha可选辅助插件,可脚手架 API 与 Controller,并内置代码实现以部署并管理一个镜像(Operand)。
grafana.kubebuilder.io/v1-alphagrafana/v1-alpha可选辅助插件,可为 controller-runtime 导出的默认指标脚手架生成 Grafana Dashboard 清单。
helm.kubebuilder.io/v1-alphahelm/v1-alpha可选辅助插件,可在 dist 目录下脚手架生成 Helm Chart 用于项目分发。

供扩展使用

以下插件适用于其他工具及外部插件,用于扩展 Kubebuilder 的功能。

你可以使用 kustomize 插件来脚手架生成 config/ 下的 kustomize 文件;基础语言插件负责生成 Golang 相关文件。 这样你就能为其它语言创建自己的插件(例如 Operator-SDK 让用户可以使用 Ansible/Helm),或是在其上叠加更多能力。

例如 Operator-SDK 提供了与 OLM 集成的插件,为项目添加了其自有的能力。

插件Key说明
kustomize.common.kubebuilder.io/v2kustomize/v2负责脚手架生成 config/ 目录下的全部 kustomize 文件
base.go.kubebuilder.io/v4base/v4负责脚手架生成所有 Golang 相关文件。该插件与其它插件组合后形成 go/v4