Certified Operator Build Guide
  • Introduction
  • What is an Operator?
  • Pre-Requisites
  • Helm Operators
    • Building a Helm Operator
      • Using a Single Image Variable (Red Hat Marketplace)
      • Dockerfile Requirements
      • Update the Controller Manager
      • Building and Pushing Image
  • Ansible Operators
    • Building an Ansible Operator
      • Using a Single Image Variable (Red Hat Marketplace)
      • Dockerfile Requirements
      • Update the Controller Manager
      • Building and Pushing Image
  • Golang Operator Gotcha's
    • Writing to the Status Subresource
  • OpenShift Deployment
    • Operator Metadata
      • Update CRDs from v1beta1
      • Creating the Metadata Bundle
      • Adjusting the ClusterServiceVersion
      • Reviewing your Metadata Bundle
      • Metadata Bundle Image
        • Managing OpenShift Versions
    • Installing an OpenShift Environment
    • Deploying onto OpenShift
  • Troubleshooting and Resources
    • Creating an Ansible Role From a Helm Chart
    • Security Context Constraints
    • Connect Metadata Test Results
    • Red Hat Marketplace Requirements
  • Appendix
    • What if I've already published a Community Operator?
      • Consuming Applications from RHCC
      • Applying Security Context Constraints
      • Choosing a Unique Package Name
      • Assembling the Metadata Bundle
    • Community Operators
    • AWS OpenShift 4 Cluster Quick Start Guide
    • Using Third Party Network Operators with OpenShift
      • Appendix A - CNI Operator Manifests
      • Appendix B - Cluster Network Status
      • Appendix C - Operator Group Manifest
      • Appendix D - Subscription Manifest
    • Bundle Maintenance After Migration
    • Frequently Asked Questions (FAQ)
    • Multi-Arch Operator Certification
      • Glossary of Terms
      • Requirements and Limitations
      • Building a Multi-Arch Operator Image
      • Scanning and Publishing
      • Updating the Bundle Image
Powered by GitBook
On this page
  • Requirements for OpenShift-compliant network operator
  • Steps to install third party networking operator
  • Add network-operator to install payload.
  • Transition your operator to OLM ownership.
  1. Appendix

Using Third Party Network Operators with OpenShift

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

PreviousAWS OpenShift 4 Cluster Quick Start GuideNextAppendix A - CNI Operator Manifests

Last updated 5 years ago

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

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

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. Verify that a ClusterServiceVersion object referring to your Operator is created

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

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 for examples.

Create OperatorGroup in the namespace of the operator -

Create subscription pointing to ISV catalog source and the desired operator -

Partner Guide for Red Hat OpenShift
Appendix B
Appendix A - CNI Operator manifests
Appendix C
Appendix D