Technical Prerequisites

Getting Software

Certification requires that you verify the functionality of your product on the target Red Hat platform. Through the partner program, Red Hat offers free (also know as Not-for-resale or NFR) subscriptions for products such as Red Hat OpenShift Container Platform. To request software access as a partner, follow these instructions. Once your access has been approved, you may download software from the Customer Portal.

The following are requirements for building container images such that they meet the certification criteria. This section includes both Container Application and Operator Images. Although Labels and Licenses are not required to successfully build a container, they are required for Red Hat Certification.

Licenses Requirements

You need to include any relevant licenses within the licenses/directory in your container images. This is important for the end user to be aware of the terms and conditions applicable to the software. Including opens source licensing information, if open source components are included in the image. Here are some examples:

Dockerfile Requirements

  1. The Base image must be (or must be based on) a supported Red Hat image, such as Red Hat Enterprise Linux or Red Hat Universal Base Image. Any third party or community supported images such as Ubuntu, Debian, Alpine, CentOS etc are not supported by Red Hat and cannot be certified.

  2. The following labels must exist: name, maintainer, vendor, version, release, summary & description.

Example Dockerfile for Container Application:

MAINTAINER NAME <[email protected]>
### Required OpenShift Labels
maintainer="[email protected]" \
vendor="COMPANY NAME" \
version="VERSION NUMBER" \
release="RELEASE NUMBER" \
### add licenses to this directory
COPY licenses /licenses
### Add necessary Red Hat repos here
RUN REPOLIST=rhel-7-server-rpms,rhel-7-server-optional-rpms \
### Add your package needs here
yum -y update-minimal --disablerepo "*" --enablerepo rhel-7-server-rpms --setopt=tsflags=nodocs \
--security --sec-severity=Important --sec-severity=Critical && \
yum -y install --disablerepo "*" --enablerepo ${REPOLIST} --setopt=tsflags=nodocs ${INSTALL_PKGS} && \
### Install your application here -- add all other necessary items to build your image

Example Dockerfile Operator Image:

### Required OpenShift Labels
LABEL name="Wordpress Operator" \
vendor="Bitnami" \
version="v0.0.1" \
release="1" \
summary="This is an example of a wordpress helm operator." \
description="This operator will deploy wordpress to the cluster."
# Required Licenses
COPY licenses /licenses
COPY helm-charts/ ${HOME}/helm-charts/
COPY watches.yaml ${HOME}/watches.yaml


An Operator is a method of packaging, deploying and managing a Kubernetes application. A Kubernetes application is an application that is both deployed on Kubernetes and managed using the Kubernetes APIs and kubectl/oc tooling. You can think of Operators as the runtime that manages this type of application on Kubernetes.

Certified Operator Build Guide

We have created another guide that you can find here. This guide is designed to take you step by step through the process of creating your operator using the Operator-SDK. There are examples for using both Helm and Ansible as well as more information on deploying a test environment for you to work with while developing your operator