Using Third Party Network Operators with OpenShift

This section outlines the requirements and steps for integrating third-party networking providers with the OpenShift installer.

Network Operators are a special breed because they are required to be functional very early on during installation. OpenShift 4 has a facility for injecting custom objects at install time. In this case, we will use it to install a compliant network operator.

Network operators also need to consume and update certain special objects. This is how they inform cluster components of the current network status.

A critical goal of this is to be able to update and manage the networking components over time. Therefore, the new network-operator must transition to OLM ownership once the cluster is running and OLM is installed.

Requirements for OpenShift-compliant network operator

  1. The network Operator needs to be certified with OpenShift 4 (Partner Guide for Red Hat OpenShift)

  2. Publish the network status to downstream consumers. Cluster installation will fail to progress until this happens.

    1. Determine the currently-deployed ClusterNetwork, ServiceNetwork, and pod-to-pod MTU

    2. Update Network.config.openshift.io/v1 cluster Status field accordingly. See Appendix B for an example.

  3. Optional but recommended: React to network configuration changes

    1. Set up a watch on Network.config.openshift.io/v1 cluster

    2. Reconcile any changes to Spec to the running state of the network

    3. Publish the current state to the Status field

    4. Deployment strategy should be set to RollingUpdate.

Steps to install third party networking operator

Add network-operator to install payload.

Make the work directory

mkdir mycluster

Create install-config

openshift-install create install-config --dir=mycluster

  1. Update the Network Type in the install-config

    a) Edit mycluster/install-config.yaml

    b) Replace OpenShiftSDN with the name of your network plugin. The value doesn’t matter. You should set it something meaningful to you and not to the “Cluster Network Operator” (CNO).

  2. Create OpenShift manifests

openshift-install create manifests --dir=mycluster

Add your operator’s manifests to the installer

At install-time, the installer will create any manifest files in mycluster/manifests/. So, copy all manifests needed to install your operator to that directory. See Appendix A - CNI Operator manifests for examples.

Create cluster:

openshift-install create cluster --dir=mycluster

This will deploy your cluster and apply the manifests of your CNI operator, leaving the Operator running but unmanaged.

Transition your operator to OLM ownership.

  1. Create OperatorGroup in the namespace of the operator - Appendix C

  2. Create subscription pointing to ISV catalog source and the desired operator - Appendix D

  3. Verify that a ClusterServiceVersion object referring to your Operator is created

  4. Verify that the resources now have owner references to OLM