创建k8s自定义资源的controller

自定义资源

api group: github.com
version: v1alpha1
resource name: MyResource

创建目录

mkdir $GOPATH/src/github.com/crd-code-generation
mkdir -p pkg/apis/myresource/v1alpha1

# 创建三个文件,需要自己写
touch pkg/apis/myresource/v1alpha1/register.go
touch pkg/apis/myresource/v1alpha1/doc.go
touch pkg/apis/myresource/v1alpha1/types.go

使用code-gen

Git clone https://github.com/kubernetes/code-generator.git
export GOPROXY=https://goproxy.io
export GO111MODULE=on
go mod vendor -v
export GOPATH="/Users/xxx/go”
go get -u k8s.io/apimachinery

bash generate-groups.sh all ../../github.com/crd-code-generation/pkg/client ../../github.com/crd-code-generation/pkg/apis aol:v1alpha1

# 上面生成的client目录是空的,退出到上上级目录执行才能成功生成client
bash k8s.io/code-generator/generate-groups.sh client,lister,informer github.com/crd-code-generation/pkg/client github.com/crd-code-generation/pkg/apis aol:v1alpha1

参考文档
https://medium.com/@trstringer/create-kubernetes-controllers-for-core-and-custom-resources-62fc35ad64a3
https://blog.openshift.com/kubernetes-deep-dive-code-generation-customresources/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容