单组到多组

让我们迁移 CronJob 示例.

要将您的项目布局更改为支持多组,请运行命令 kubebuilder edit --multigroup=true。一旦您切换到多组布局,新的 Kinds 将根据新布局生成,但需要额外的手动工作将旧 API 组迁移到新布局。

一般来说,我们将 API 组的前缀用作目录名称。我们可以检查 api/v1/groupversion_info.go 来了解这一点:

// +组名=batch.tutorial.kubebuilder.io
package v1

然后,我们将把现有的 API 移动到一个新的子目录中,子目录名称将以该组的名称命名。考虑到CronJob 示例,子目录名称为“batch“:

mkdir api/batch
mv api/* api/batch

在将 API 移动到新目录后,控制器也需要进行相应的调整。对于 go/v4:

mkdir internal/controller/batch
mv internal/controller/* internal/controller/batch/

同样的原则也适用于任何现有的 webhooks

mkdir internal/webhook/batch
mv internal/webhook/* internal/webhook/batch/

为新创建的群组所创建的任何新webhook,其相应的功能将被创建在子目录internal/webhook/<group>/下。