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/*

进一步的资源