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
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