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.
Requirements for OpenShift-compliant network operator
- The network Operator needs to be certified with OpenShift 4 (Partner Guide for Red Hat OpenShift) 
- Publish the network status to downstream consumers. Cluster installation will fail to progress until this happens. - Determine the currently-deployed ClusterNetwork, ServiceNetwork, and pod-to-pod MTU 
- Update Network.config.openshift.io/v1 cluster Status field accordingly. See Appendix B for an example. 
 
- Optional but recommended: React to network configuration changes - Set up a watch on Network.config.openshift.io/v1 cluster 
- Reconcile any changes to Spec to the running state of the network 
- Publish the current state to the Status field 
- 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
- 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). 
- 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.
- Create OperatorGroup in the namespace of the operator - Appendix C 
- Create subscription pointing to ISV catalog source and the desired operator - Appendix D 
- Verify that a ClusterServiceVersion object referring to your Operator is created 
- Verify that the resources now have owner references to OLM 
Last updated
