To package a solution as a service that can be published in service catalogs, your service must run well in Kubernetes or Red Hat OpenShift and also be self-managing. The best way to make your service more self managing is to include an operator with it. Showing that your operator has passed Red Hat OpenShift Operator Certification signals to users of your service that it will be able to install itself, upgrade itself, and perform many other functions that an operations team would like the service to do to manage itself. It also shows that the operator and its service are built from components that Red Hat has certified to run well on all of OpenShift’s supported platforms, from bare metal to cloud.
This guide walks you through getting an operator certified by Red Hat, which includes the service’s container image, the operator’s container image, and the operator bundle. Because Red Hat documentation is the best source of information, this guide points you to the right documentation and also highlights some steps to watch out for that could hinder you from getting your operator certified.
Developing an operator for certification
Red Hat’s Certified Operator Build Guide provides guidance on how to develop and test an operator, designing it to pass certification as well.
There are three main technologies for implementing operators. Here’s guidance for each of them:
Once you have implemented your operator, you need to bundle it for certification.
Bundling your operator
To submit an operator for certification, you need to package your operator using the bundle format. An operator bundle is a single image file containing all of the operator: the service and operator images, the operator’s custom resource definition (CRD), and the cluster service version (CSV)–a manifest with the meta information that describes the operator and this particular version of the operator.
- Create the operator bundle image for your operator, as explained in Creating the Metadata Bundle.
This bundle is the file you will submit for certification.
At a high level, the steps for certifying an operator are:
- Certify the service’s container image
- Certify the operator’s container image
- Certify the operator bundle
- Preview in OperatorHub (optional)
These steps are described in detail in Red Hat’s certification guide: Partner Guide for OpenShift Operator and Container Certification.
Certify the service’s container image
Follow the process in Certify your container image with Red Hat container certification to build the container image for your service, upload it to a Container Image project, run the image scan, and verify that the image successfully passed certification.
Certify the operator’s container image
Follow the process in Certify your container image with Red Hat container certification to build the container image for your operator, upload it to a Container Image project, run the image scan, and verify that the image successfully passed certification.
Certify the operator bundle
Certify your Operator Image explains how to certify the entire operator–the service’s image, the operator’s image, and the operator’s resources and configuration–all wrapped together in a bundle.
The high-level steps are:
Create an image project for your operator bundle as explained in Creating Operator Bundle Image Project. Note that the certification project is an Operator Bundle Image (not a Container Image like before).
Complete the Certification Checklist as explained in The Certification Checklist. When complete, each item should have a green check mark.
View the scan results and verify that your operator passed certification, as explained in Bundle Image Scan & Results.
With this process, you have now certified your operator.
Preview in OperatorHub
Optionally, preview what your operator will look like in OperatorHub, as explained in Previewing your CSV on OperatorHub.io.
- Go to Operator Preview.
- Paste the contents of your bundle’s CSV YAML file into the browser.
- The browser displays what your operator will look like when listed in a catalog.
Make sure your operator looks like what you want your users to see when they browse OperatorHub and your operator.
Red Hat OpenShift Certified Operator Badges
Extending OpenShift Operator Certification through Badges and OpenShift Badge Overview explain Red Hat’s special badges for operators that serve certain special functions:
Container Networking Interface (CNI) — An operator for a service that implements a CNI plugin as a Kubernetes network plugin can earn a CNI operator badge through Red Hat’s CNI operator badge process.
Container Storage Interface (CSI) for file and block storage —- An operator for a service that implements a CSI plugin as a Kubernetes driver can earn a CSI operator badge through Red Hat’s CSI operator badge process.
Hopefully, this guide will help you understand how to submit an operator to Red Hat for certification. These steps include:
- Develop an operator implemented using Helm, Ansible, or Go, and package it as a bundle.
- Certify the service’s image, the operator’s image, and the operator bundle that contains the two images and meta-information about the operator, and optionally preview how the operator will appear in a catalog.
- Reviewed the badges that are available for operators that serve certain special functions.
With this information, you’ll be able to show your operator’s users that your operator meets Red Hat’s high quality standards.
Use these additional resources to build operators that will pass Red Hat Certification:
- Red Hat OpenShift Operator Certification (blog)
- Red Hat OpenShift Operator Certification for Red Hat Partners
- Red Hat OpenShift Operator Certification (Git Book)
- Red Hat OpenShift Operator Certification Data Sheet
- Red Hat Ecosystem Catalog: Certified OpenShift Operators
- OpenShift Certification Badges (blog) Certify your Operator Image Certified operator build guide