In preparation for submitting your operator for inclusion into the Open Marketplace, there are some technical requirements for CAO that need to be addressed beforehand.
The main technical requirement for all operators is that they must support the ability to run in an offline or disconnected OpenShift environment, with no direct access to the internet from nodes. The way this is addressed is by changing the operator to use an environment variable as the application/operand image source instead of hard coding or using a user-set variable (from the CR/values.yaml).
To satisfy this requirement, you'll need to:
- Remove any reference of image locations from the operator code.
- I.e. if you have hard coded references to images in your operator for downloads.
- Add the env vars to the with RELATED_IMAGE_<identifier> to the operator CSV.
- Example: clusterserviceversion.yaml
- Reference the env variable in the operator source code.'
- Example: ubinoop_controller.go
- Update your operator images and metadata in Red Hat's Container Certification tool at connect.redhat.com.
The engineering team has also provided a repo with this info as well as an example operator. Here is a link to that repo: https://github.com/zachncst/om-env-example/blob/master/README.md