# k8s-operator **Repository Path**: newly-released_0/k8s-operator ## Basic Information - **Project Name**: k8s-operator - **Description**: Use kubebuilder develop k8s crd - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-05-16 - **Last Updated**: 2024-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # k8s-operator #### Description Use kubebuilder develop k8s crd ### 使用kubebuilder 开发operator - 下载kubebuilder ``` curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/$(go env GOOS)/$(go env GOARCH) chmod +x kubebuilder && mv kubebuilder /usr/local/bin/ ``` - create project ``` mkdir -p ~/projects/guestbook cd ~/projects/guestbook ``` - init project ``` kubebuilder init --domain my.domain --repo my.domain/guestbook example: kubebuilder init --domain isrc.dataplatform --repo isrc.dataplatform/productmanager ``` - create a api ``` kubebuilder create api --group webapp --version v1 --kind Guestbook ``` - create crd ``` make install ``` - create controller ``` 本地部署:make run 集群部署: build image: make docker-build docker-push IMG=/:tag 注意: 修改Dockerfile, FROM gcr.io/distroless/static:nonroot 改成 FROM golang:1.16 deploy controller to k8s: make deploy IMG=/:tag controller中有两个容器, 一个使用的是上面的build出来的image,另一个是gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0 这个image没有vpn拉不下来。 使用国内替代的镜像 docker pull katanomi/kubebuilder-kube-rbac-proxy:v0.8.0(修改文文件 config/default/xxx_proxy_xxx.yaml 文件中的image) ``` - create cr ``` kubectl apply -f config/sample/xxxx.yaml ``` - 其他的具体开发只需要关注controller.go 以及api目录下的文件即可