本文将介绍使用上一文中搭建的kubebuilder环境开发一个operator demo。
demo功能介绍:
新建一个crd,只有一个字段 image,当我们的controller watch到有对应的crd资源创建后,使用该image创建对应的deployment,进而拉起对应的pod。
1、选择一个目录,创建Unit目录后,去执行下边的命令
mkdir Unit
cd Unit
go mod init Unit
会生成go.mod文件
2、然后执行,domain可自己定义。
kubebuilder init --domain my.crd.com
执行成功截图
3、创建我们的api
kubebuilder create api --group custom --version v1 --kind Unit
各参数含义:
4、上述步骤都执行成功后,就已经有了一个基本的开发框架了。 我们只需要在controller中实现我们的设计即可。
5、controller开发,代码如下
func (r *UnitReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
ctx := context.Background()
log := r.Log.WithValues("unit", req.NamespacedName)
// your