Introduction

Welcome to Red Hat Connect for Technology Partners. This guide provides instructions on how to create certified operators. The purpose of this guide is to develop and test the functionality of your operator. Once testing is complete you can complete certification by going to our Partner Guide.

Please note to create a certified operator you will need to have a certified container application on the Red Hat Container Catalog. More information on how to certify your container application can be found here.

  • Before you get started, make sure you go through the Pre-Requisites section.

  • If you have an existing helm chart for your application and would like to create a Helm Operator, you can get started: here.

  • If you would like to create a new operator for your application we recommend creating an Ansible Operator; you can get started: here.

  • If you have a go-lang operator, we have documented common issues under the section Go-Lang Operator Gotchas.

  • To test the deployment of your operator on OpenShift, go to Deploying onto OpenShift.

Operator Capability Level

You can think of the Operator Capability Level model as a visual sizing guide as to which toolkit you should use to build your operator. Once you've decided which phases (or feature sets) are being targeted, this model helps you decide which framework(s) you can use to achieve that goal.

Use Cases ideal for operator development

  • stateful applications (such as databases)

  • clustered or high-availability applications (clustered databases, key-value stores such as etcd, in-memory cache clusters such as Redis)

  • multiservice applications (an application which needs dependent services to come online first)

  • microservices (numerous small components that together make up a cohesive product or app)

Use cases less ideal for operator development

  • stateless apps (most web apps or front-ends)

  • infrastructure/host agents (monitoring agents or log forwarders)

Operators are intended for use cases where there are more complex or stateful applications. Kubernetes already handles stateless applications (with pods and deployments) and host agents (Daemonsets) rather well. With that being said, those "less than ideal" use cases can still benefit from an operator. The ideal toolkit for building an operator for stateless applications and host agents is either Helm or Ansible, both of which allow for a quick, simple development cycle using the operator-sdk. This provides you with the ability to leverage the marketplace that's built into OpenShift 4.x and provide end users with a one click install experience on OpenShift.