deployment. • Event: defines eventing rules for a bot instance. • EventBinding: defines the set of events to be used by the bot. You select Events to be bound using labels and label selectors. Bot, Event and EventBinding
resource in kube that can be used in yaml to specify instances (eg Statefulsets, pre-official cron jobs, prometheus). • Controller: A service that listens for events and acts to converge the system to the desired state from the actual state. • Operator: A controller built with the listen-act pattern based on events from kubernetes on resources. Usually encapsulates a human as an expert system to operate a service. Definitions
custom resources. • Defining a CRD object creates a new custom resource with a name and schema that you specify. • Do not require programming CRD(CustomResourceDefinition)
Custom Controllers. • It enables developers to extend and add new functionalities, replace existent ones (like replacing kube-proxy for instance). • And of course, automate administration tasks as if they were a native Kubernetes component. Custom Controllers
manages (optional). • Controller for listening and dispatching events (uses informers, watchers and event handlers) -> runs as a k8s pod/deployment. • API classes to specify a model that represents the data in the CRD. • Internal Model Objects to manipulate the k8s client to create, update and delete resources based on state. • Events: • Added • Updated • Deleted Parts of the Operator
pod, modification of configmap, deletion of persistent volume). • List resources. • Get details about current resource state. • Creates custom controller. client-go https://github.com/kubernetes/client-go
• Code generation can be done using k8s code generation scripts. • Generation of typed: • Informers • Listers • Clientsets • This should be part of your build process. Code Generation https://github.com/kubernetes/code-generator