This guide outlines the architecture of the OperatorHub.

Overview of the OperatorHub

The OperatorHub is available via the OpenShift Container Platform web console and is the interface that cluster administrators use to discover and install Operators. With one click, an Operator can be pulled from their off-cluster source, installed and subscribed on the cluster, and made ready for engineering teams to self-service manage the product across deployment environments using the Operator Lifecycle Manager (OLM).

Cluster administrators can choose from OperatorSources grouped into the following categories:

Category Description

Red Hat Operators

Red Hat products packaged and shipped by Red Hat. Supported by Red Hat.

Certified Operators

Products from leading independent software vendors (ISVs). Red Hat partners with ISVs to package and ship. Supported by the ISV.

Community Operators

Optionally-visible software maintained by relevant representatives in the operator-framework/community-operators GitHub repository. No official support.

Custom Operators

Operators you add to the cluster yourself. If you have not added any Custom Operators, the Custom category does not appear in the Web console on your OperatorHub.

The OperatorHub component is installed and run as an Operator by default on OpenShift Container Platform in the openshift-marketplace namespace.

OperatorHub architecture

The OperatorHub component’s Operator manages two Custom Resource Definitions (CRDs): an OperatorSource and a CatalogSourceConfig.

Although some OperatorSource and CatalogSourceConfig information is exposed through the OperatorHub user interface, those files are only used directly by those who are creating their own Operators.

OperatorSource

For each Operator, the OperatorSource is used to define the external data store used to store Operator bundles. A simple OperatorSource includes:

Field Description

type

To identify the data store as an application registry, type is set to appregistry.

endpoint

Currently, Quay is the external data store used by the OperatorHub, so the endpoint is set to https://quay.io/cnr for the Quay.io appregistry.

registryNamespace

For a Community Operator, this is set to community-operator.

displayName

Optionally set to a name that appears in the OperatorHub user interface for the Operator.

publisher

Optionally set to the person or organization publishing the Operator, so it can be displayed on the OperatorHub.

CatalogSourceConfig

An Operator’s CatalogSourceConfig is used to enable an Operator present in the OperatorSource on the cluster.

A simple CatalogSourceConfig must identify:

Field Description

targetNamespace

The location where the Operator would be deployed and updated, such as openshift-operators. This is a namespace that the OLM watches.

packages

A comma-separated list of packages that make up the content of the Operator.