github.com/jmrodri/operator-sdk@v0.5.0/doc/project_layout.md (about)

     1  # Project Scaffolding Layout
     2  
     3  The `operator-sdk` CLI generates a number of packages for each project. The following table describes a basic rundown of each generated file/directory.
     4  
     5  
     6  | File/Folders   | Purpose                           |
     7  | :---           | :--- |
     8  | 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/...`  . |
     9  | 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.|
    10  | 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`. |
    11  | build | Contains the `Dockerfile` and build scripts used to build the operator. |
    12  | deploy | Contains various YAML manifests for registering CRDs, setting up [RBAC][RBAC], and deploying the operator as a Deployment.
    13  | Gopkg.toml Gopkg.lock | The [Go Dep][dep] manifests that describe the external dependencies of this operator. |
    14  | vendor | The golang [vendor][Vendor] folder that contains the local copies of the external dependencies that satisfy the imports of this project. [Go Dep][dep] manages the vendor directly. |
    15  
    16  [RBAC]: https://kubernetes.io/docs/reference/access-authn-authz/rbac/
    17  [Vendor]: https://golang.org/cmd/go/#hdr-Vendor_Directories
    18  [dep]: https://github.com/golang/dep