快速上手
安装
如果你有 Homebrew,可以通过 brew install kubebuilder 一键安装。
没有的话可以通过下面的脚本安装 kubebuilder 二进制到 PATH 下:
# download kubebuilder and install locally.
curl -L -o kubebuilder "https://go.kubebuilder.io/dl/latest/$(go env GOOS)/$(go env GOARCH)"
chmod +x kubebuilder && sudo mv kubebuilder /usr/local/bin/
创建项目
mkdir -p ~/projects/guestbook
cd ~/projects/guestbook
kubebuilder init --domain my.domain --repo my.domain/guestbook
domain是指 API Group 的域名后缀,比如要创建的 API 的 Group 是test.my.domain,那么domain就是my.domain。repo是 go 项目的 go module 名称,相当于go mod init的参数。
创建 API
假设要创建的 API 的 apiVersion 是 webapp.my.domain/v1alpha1,kind 是 Guestbook,那么命令如下:
kubebuilder create api --group webapp --version v1alpha1 --kind Guestbook
group是 API Group 的前缀,完整 API Group 是这个group参数加上前面kubebuilder init时指定的domain,前面指定的是my.domain,所以完整的 API Group 是webapp.my.domain。version是 API 的版本,比如v1alpha1。kind是 API 的 Kind,比如Guestbook。
生成代码和 YAML
创建或修改 API 后:
- 执行
make manifests可生成相关 YAML,在config目录下。 - 执行
make generate可生成相关代码,在api目录下,主要是更新zz_generated.deepcopy.go。