本项目是基于kubebuilder构建的,所以在开发之前请安装kubebuilder相关工具。
main.go: 服务的入口,主要用来初始化各个 controller 以及 controllerManager。
api/v1/: v1 版本的 api。
config/: 主要是 crd 以及 controller manager 相关的 Kubernetes manifests 文件。
controllers/: 各个 controller 的实现代码。
pkg/options/: 参数相关的代码。
pkg/provider/: 对 OneCloud 各个 Service 以及资源操作的逻辑代码。
pkg/util/: 工具代码。
kubebuilder create api --group onecloud --version v1 --kind AnsiblePlaybook更加详细的操作请参考kubebuilder book。
修改完代码之后,请执行make manifests以更新 manifests,执行make generate以更新自动生成的代码。
修改完代码之后,请执行make generate-doc以更新文档。