Add catalog sources to OperatorHub

If you have followed my post OKD 4.5 small cluster on ESX you find that when you look at the OperatorHub in OKD you only see the community operators.

The problem appears to be that an out of the box OKD install only has the “Community Operators” enabled. The trick is to enable the rest.

Navigate to:

Administration | Cluster Settings | Global Configuration | OperatorHub

As you can see “community-operators” is the only enabled source. To enable sources you should be able to do:

For some reason that doesn’t seem to be working so you need to edit the YAML for OperatorHub

Initially the bottom of the yaml will look like:

spec:
  disableAllDefaultSources: true
  sources:
    - disabled: false
      name: community-operators
status:
  sources:
    - disabled: true
      name: redhat-marketplace
      status: Success
    - disabled: true
      name: redhat-operators
      status: Success
    - disabled: true
      name: certified-operators
      status: Success
    - disabled: false
      name: community-operators
      status: Success

You need to add the disable sources and modify the status. When you are finished this should look like:

spec:
  disableAllDefaultSources: true
  sources:
    - disabled: false
      name: community-operators
    - disabled: false
      name: redhat-marketplace
    - disabled: false
      name: redhat-operators
    - disabled: false
      name: certified-operators
status:
  sources:
    - disabled: false
      name: redhat-marketplace
      status: Success
    - disabled: false
      name: redhat-operators
      status: Success
    - disabled: false
      name: certified-operators
      status: Success
    - disabled: false
      name: community-operators
      status: Success

If you look at the pods for openshift-marketplace you will now see

if you give it a bit of time the pods will update and will list all the operators:

You will now also see all the provider types showing in OperatorHub

Adding operatorhub.io as a catalog source

Now you have all the default sources working a good extra one to add is OperatorHub.io, which is:

Operators have been publicized as a concept of Kubernetes native services in 2016 by CoreOS. Since then, significant momentum has built up in the Kubernetes community around the idea to put operational logic into software running on top of the cluster.

While there are several approaches to implement Operators yielding the same level of integration with Kubernetes, what has been missing is a central location to find the wide array of great Operators that have been built by the community. OperatorHub.io aims to be that central location.

In addition to a community-sourced index of Operators, OperatorHub.io also ensures that the set of Operators are packaged for easy deployment and management on any Kubernetes cluster. Contributors of Operators not only get a chance to publicize their work but provide end users an easy way to start using them. To that end the packaging of the Operators indexed in OperatorHub.io relies on the Operator Lifecycle Manager to install, manage and update Operators consistently on any Kubernetes cluster.

There is also an excellent page, from Red Hat, describing adding extra sources OpenShift 4.3: Managing Catalog Sources in the OpenShift Web Console

Steps

Again to go:

oc get opsrc -n openshift-marketplace

Then you will likely see

Administration | Cluster Settings | Global Configuration | OperatorHub

From her click on “Create Catalog Source”:

Populate it as:

Catalog source name: operatorhubio-operators
Display name: OperatorHub.io Operators
Publisher name: OperatorHub.io
Image (URL of container image): quay.io/operator-framework/upstream-community-operators:latest
Availability: Cluster-wide catalog source

So it looks like:

After a few minutes you will see it populated along with the other sources: