Project Scaffolding Layout for Operator SDK
The operator-sdk
CLI generates a number of packages for each project. The following table describes a basic rundown of each generated file/directory.
File/Folders | Purpose |
---|---|
cmd | Contains manager/main.go which is the main program of the operator. This instantiates a new manager which registers all custom resource definitions under pkg/apis/… and starts all controllers under pkg/controllers/… . |
pkg/apis | Contains the directory tree that defines the APIs of the Custom Resource Definitions(CRD). Users are expected to edit the pkg/apis/<group>/<version>/<kind>_types.go files to define the API for each resource type and import these packages in their controllers to watch for these resource types. |
pkg/controller | This pkg contains the controller implementations. Users are expected to edit the pkg/controller/<kind>/<kind>_controller.go to define the controller’s reconcile logic for handling a resource type of the specified kind . |
build | Contains the Dockerfile and build scripts used to build the operator. |
deploy | Contains various YAML manifests for registering CRDs, setting up RBAC, and deploying the operator as a Deployment. |
go.mod go.sum | The Go mod manifests that describe the external dependencies of this operator. |
vendor | The golang vendor directory that contains local copies of external dependencies that satisfy Go imports in this project. Go modules manages the vendor directory directly. This directory will not exist unless the project is initialized with the —vendor flag, or go mod vendor is run in the project root. |
Last modified January 1, 0001
当前内容版权归 operatorframework 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 operatorframework .