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.
- 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.
Make the work directory
openshift-install create install-config --dir=mycluster
- 1.Update the Network Type in the install-configa) Edit mycluster/install-config.yamlb) 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.
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.
- 3.Verify that a ClusterServiceVersion object referring to your Operator is created
- 4.Verify that the resources now have owner references to OLM