implementable
Before diving into this document, please review:
This document acts as a landing page for ongoing work in transitioning to the proposed Descoped Operator Model.
As part of the Operator Framework's effort to move towards Descoped Operators we must identify how OLM V1.0 will configure operators to reconcile events in specific namespaces based on available Role Based Access Controls (RBAC).
Today, OLM scopes
an operator to a set watched namespaces
through the operatorGroup resource. Historically, the operatorGroup supported OLM's multitenancy strategy by providing ways to:
watched namespaces
.watched namespaces
overlapped.This approach supported multiple installs of an operator at different versions, but lead to a poor user experience surrounding the operator's CustomResourceDefinitions. Consider the following painpoints:
Validating Webhooks
and Mutating Webhooks
becomes very difficult as their implementation details can change between version. OLM cannot simply install the latest version of these webhooks because they may not work with older versions of the operator. As such, there is a requirement that webhooks are backwards compatible with versions of the operator.Many of the painpoints listed above are improved significantly if an operator is treated as a cluster singleton. This does not necessarily mean that only one controller will be responsible for reconciling the events of a CRD accross a cluster, but it does imply that a single bundle will "own" the CRD, its versions, and webhooks.
As we move towards the proposed descoped model, we must define key initiatives