- golang :
1.20.1
- kubebuilder:
3.9.0
- kubernetes :
1.22.4
- 创建项目,并初始化
$ mkdir -p github.com/tomoncle/k8s-operator-nginx
$ cd github.com/tomoncle/k8s-operator-nginx
# init repo
$ kubebuilder init --domain github.com --repo github.com/tomoncle/k8s-operator-nginx
# init api
$ kubebuilder create api --group devops --version v1 --kind Nginx
- 修改 go.mod 配置文件,替换 k8s.io/api 版本
// 修复 kubebuilder 3.9 和kubernetes 1.22.4 版本结合报错问题
replace k8s.io/api v0.26.0 => k8s.io/api v0.25.0
- 生成deepcopy文件
$ make generate
- 生成crd、rbac、prometheus等配置文件
$ make manifests
- 安装
$ make install
- 运行controller
$ make run
- 卸载
$ make uninstall
编写:config/samples/devops_v1_nginx.yaml
- 安装:
$ kubectl apply -f config/samples/
- 卸载:
$ kubectl delete -f config/samples/
//+kubebuilder:validation:Required
// 用于标记该字段是必填项。
//+optional
// 用于标记该字段是可选项