Learn

In this section we are going to provide some resources around what an operator is, and how to go about creating and certifying one to be included as part of the OpenShift platform.

Kubernetes Operators Overview

You are likely familiar with operators, particularly if you are already familiar with Kubernetes concepts.

An operator is a customized controller that contains human operational knowledge to deploy and manage containerized applications. Operators might simply be used as a method of deployment, or they may provide advanced capabilities such as lifecycle management, gathering metrics, log processing, self-healing and auto-scaling.

An operator follows a pattern of “observe, analyze, and act”. This means they take the desired state of the application on the cluster and compare it to the actual state. If there are discrepancies between the two states, then the operator (depending on its capability) will act to get back to that desired state.

The following three links are helpful resources for anyone beginning their journey of understanding operators and how they work:

More Information on Operators

We recommend certain tools when creating an operator. The Operator Framework GitHub repository gives you access the SDK (software development kit), helping you build a scaffolded version of your operator based off the logic you feed the command line utility. The SDK takes your logic and creates most of the boilerplate code necessary to interact with the Kubernetes API’s on your behalf. This prevents you from having to write the operator line by line from scratch, speeding up the development and maintenance for your operator.

Operator Lifecycle Manager (OLM) is, at a high level, an operator for all other operators. This is a tool that is shipped as part of every instance of OCP 4.x. You must integrate properly with OLM so your operator is displayed and deployed properly to the cluster. This is a major aspect of what we test against when we certify images and operators.

Our Developer program will take a look at how to specifically build operators to integrate with OpenShift Container Platform. In the modules provided, you will learn about creating operators using different logic (Helm, Ansible, Golang).

Last updated