How to customize container image references when using Operators/OLM?

5/12/2020

My team would like to use OLM (Operator Lifecycle Manager) to manage the deployment of Operators for the various microservices we are building. We will also have 3rd party microservices for which we will need to build Operators. Currently we are using the Operator SDK to create Helm based Operators and plan to move to Go based Operators.

Our microservice containers are not open source, and thus will not be made publicly available on a container registry. This means we will build/package them internally and create a utility to push them all to a customer's registry prior to installation time. There is a requirement that we support air gapped K8s environments which do not have access the the Internet (but do have network access to their own container registries).

CatalogSource containers contain manifests for the Operators which point to our original build registry. The Operator containers do the same for the microservice containers that they manage. Assuming we pushed all container (CatalogSources, Operators, microservices) to a customer registry, when we install OLM and subscribe to a channel, we would like all containers to be pulled from this new registry.

Question:

With OLM, how do we programmatically override the original container registry values (within CatalogSource/Operators/etc containers) and replace them with the new registry URL before an installation?

-- schotzi
kubernetes
operator-sdk
operators

0 Answers