go/v3 与 go/v4 的比较
本文档涵盖了从使用插件 go/v3(自 2021 年 4 月 28 日以来任何脚手架的默认选项)构建的项目迁移到下一个版本的 Golang 插件 go/v4 时的所有重大变更。
所有更改(无论是重大更改还是其他更改)的详细信息可以在以下位置找到:
常见变更
go/v4
项目使用 Kustomize v5x(而不是 v3x)- 请注意,
config/
目录下的一些清单已被更改,以不再使用已弃用的 Kustomize 功能,例如环境变量。 - 一个
kustomization.yaml
文件被创建在config/samples
目录下。这有助于简单灵活地生成示例清单:kustomize build config/samples
。 - 添加对 Apple Silicon M1 (darwin/arm64) 的支持。
- 移除对不再支持的 CRD/WebHooks Kubernetes API v1beta1 版本的支持,该版本自 k8s 1.22 起不再得到支持。
- 不再使用
"k8s.io/api/admission/v1beta1"
来搭建 webhook 测试文件,因为从 k8s1.25
开始,该 API 已不再提供。默认情况下,webhook 测试文件使用"k8s.io/api/admission/v1"
进行搭建,该 API 从 k8s1.20
起获得支持。 - 不再为 k8s 版本低于
1.16
提供向后兼容的支持。 - 将布局更改为以适应社区请求,遵循 标准 Go 项目布局,将 API 移动到一个名为
api
的新目录,控制器移到一个名为internal
的新目录,main.go
移动到一个名为cmd
的新目录。
新版本的 go/v4
插件简要说明:
有关此内容的更多详细信息,请查看 这里,但如果想了解要点,请查看以下内容
迁移到 Kubebuilder go/v4
如果您想升级您的脚手架以使用最新和最优秀的功能,请按照本指南进行操作,该指南将以最简单明了的方式介绍步骤,以便您能够升级您的项目,获取所有最新的变更和改进。
- 迁移指南 go/v3 到 go/v4 (推荐)
通过手动更新文件
如果您想在不更改脚手架的情况下使用最新版本的 Kubebuilder CLI,请查看以下指南,该指南将描述手动执行的步骤,以便仅升级您的项目版本并开始使用插件版本。
这种方式更复杂,容易出错,成功也无法得到保证。此外,按照这些步骤操作,您将无法获得默认生成项目文件中的改进和bug修复。