Developing an Operator Framework for Kubernetes

Operators are a concept that allow the integration of application specific knowledge into Kubernetes. An operator extends the Kubernetes API by creating a custom resource and it’s implementation in form of a custom controller. The operator needs to be notified on changes of API objects in order to adjust the cluster state accordingly. After creation, the operator has to be deployed to the cluster, which requires configuration of the RBAC integrated in Kubernetes. A framework can help during the creation of such an operator by automating the creation of custom resources, as well as, handling API interactions. By also generating required deployment artifacts the operational complexity of and operator can be minimized. To facilitate reuse, operators might want to form hierarchies and reuse already implemented concepts. This requires to model dependencies between them and check them during runtime, as operators can join and leave the cluster arbitrarily.