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.
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.
Make the work directory
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.
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.