...

Text file src/sigs.k8s.io/controller-runtime/examples/README.md

Documentation: sigs.k8s.io/controller-runtime/examples

     1# Examples
     2
     3These two examples represent the usage of `controller-runtime` libraries for built-in Kubernetes resources as well as custom resources.
     4
     5### builtins/
     6
     7This example implements a custom controller and webhooks for the *existing* ReplicaSet resource.
     8
     9* `controller.go`: implements a reconciler for ReplicaSets
    10* `mutatingwebhook.go`: implements a mutating webhook that adds an annotation to every incoming Pod ("example-mutating-admission-webhook" = "foo")
    11* `validatingwebhook.go`: implements a validating webhook that checks to see if a Pod has the aforementioned annotation
    12* `main.go`
    13    1. Creates a new manager
    14    2. Creates a new controller that watches both ReplicaSets and Pods and reconciles the objects with the implemented reconciler
    15    3. Registers the mutating and validating webhooks with the manager
    16    4. Starts the manager
    17
    18### crd/
    19
    20This example implements a *new* Kubernetes resource, ChaosPod, and creates a custom controller that watches it and webhooks that mutate and validate.
    21
    22* `pkg/`
    23    * `resource.go`: defines the schema for the ChaosPod API and implements validate and mutate webhooks
    24    * `groupversion_info.go`: specifies the Group and Version for the ChaosPod API
    25    * `zz_generated.deepcopy.go`: deep copy functions generated by kubebuilder
    26* `main.go`
    27    1. Creates a new manager
    28    2. Adds ChaosPod resource to the manager's schema
    29    3. Implements a reconciler to execute the desired behavior of the ChaosPod API
    30    4. Creates a new controller that watches ChaosPods and reconciles the objects with the implemented reconciler
    31    5. Adds ChaosPod webhooks to manager
    32    6. Starts the manager
    33
    34## Deploying and Running
    35
    36To install and run the provided examples, see the Kubebuilder [Quick Start](https://book.kubebuilder.io/quick-start.html).

View as plain text