一、需求背景
使用kubebuilder开发了自己的crd后,别的服务需要掉api的接口,去创建该crd,但是缺少clientset包,使用起来很麻烦。 此时想到了code generator。
比较,参考:https://cloud.tencent.com/developer/article/1656317
code-generator类似,是一个码生成工具,用于为你的CRD生成kubernetes-style API实现。区别在于:
Kubebuilder不会生成informers、listers、clientsets,而code-generator会。
Kubebuilder会生成Controller、Admission Webhooks,而code-generator不会。
Kubebuilder会生成manifests yaml,而code-generator不会。
Kubebuilder还带有一些其他便利性设施。
Resource + Controller = Operator,因此你可以利用Kubebuilder编写你自己的Operator。
如果你不想做Operator,如果你不会直接or间接生成Pod,只是想存取CRD(把K8S当作数据库使用)。那你可以使用Kubebuilder生成CRD和manifests yaml,再使用code-generator生成informers、listers、clientsets。
二、操作
首先你有一个kubebuilder的工程,参考前边文章。
1、将code-generator下载到工程目录中
2、创建文件
doc.go
// +k8s:deepcopy-gen=package
// Package v1 is the v1alpha1 version of