Kustomize v2
(默认脚手架)
Kustomize 插件允许您为使用语言基础插件 base.go.kubebuilder.io/v4
的所有 kustomize 清单搭建框架。此插件用于在 go/v4
插件(默认脚手架)构建的项目中生成 config/
目录下的清单。
像 Operator-sdk 这样的项目使用 Kubebuilder 项目作为库,并提供了与其他语言(如 Ansible 和 Helm)协作的选项。Kustomize 插件帮助它们在不同语言之间保持一致的配置。它还简化了在默认脚手架基础上执行更改的插件的创建,消除了在多个语言插件之间进行手动更新的需要。这种方法允许创建与不同项目和语言配合使用的“辅助“插件。
如何使用它
如果您希望您的语言插件使用 kustomize,请使用 Bundle Plugin 来指定您的语言插件由特定于语言的插件和 kustomize 组成,以用于其配置,如下所示:
import (
...
kustomizecommonv2 "sigs.k8s.io/kubebuilder/v4/pkg/plugins/common/kustomize/v2"
golangv4 "sigs.k8s.io/kubebuilder/v4/pkg/plugins/golang/v4"
...
)
// 为由 Kubebuilder go/v4 创建的 Golang 项目提供的捆绑插件gov4Bundle, _ := plugin.NewBundle(plugin.WithName(golang.DefaultNameQualifier),
plugin.WithVersion(plugin.Version{Number: 4}),
plugin.WithPlugins(kustomizecommonv2.Plugin{}, golangv4.Plugin{}), // 搭建 config/ 目录和所有 kustomize 文件)
您还可以单独使用 kustomize/v2,通过:
kubebuilder init --plugins=kustomize/v2
$ ls -la
total 24
drwxr-xr-x 6 camilamacedo86 staff 192 31 Mar 09:56 .
drwxr-xr-x 11 camilamacedo86 staff 352 29 Mar 21:23 ..
-rw------- 1 camilamacedo86 staff 129 26 Mar 12:01 .dockerignore
-rw------- 1 camilamacedo86 staff 367 26 Mar 12:01 .gitignore
-rw------- 1 camilamacedo86 staff 94 31 Mar 09:56 PROJECT
drwx------ 6 camilamacedo86 staff 192 31 Mar 09:56 config
或与基础语言插件结合使用:
# 提供与 go/v4 插件相同的结构,但使用 kustomize/v2 进行组合。kubebuilder init --plugins=kustomize/v2,base.go.kubebuilder.io/v4 --domain example.org --repo example.org/guestbook-operator
子命令
kustomize 插件实现了以下子命令:
- 初始化 (
$ kubebuilder init [选项]
) - 创建 API (
$ kubebuilder create api [OPTIONS]
) - 创建 webhook (
$ kubebuilder create api [选项]
)
受影响的文件
以下架构将由此插件创建或更新:
config/*
进一步的资源
- 检查 kustomize 的 插件实现
- 查看kustomize 文档
- 请查看kustomize 仓库。