ClusterObjectSets deployment mechanism
ClusterObjectSets deploy cluster extensions through ordered phases, enabling safe upgrades by maintaining both old and new revisions until the new version succeeds.
|
|
OLM v1 ClusterObjectSets is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope. |
ClusterObjectSets are cluster-scoped APIs representing versioned resource sets organized into ordered phases. OLM v1 uses ClusterObjectSets to deploy Operator resources sequentially.
Benefits
- Phased rollouts
-
Resources deploy in a defined order by kind. For example, Custom Resource Definitions (CRDs) are created before deployments that use them.
- Safe upgrades
-
Both old and new revisions remain active until the new version succeeds, mitigating service disruption.
- Immutable revision records
-
Immutable revisions provide a clear deployment record.
- Large bundle support
-
References externalized secrets to bypass the etcd 1.5 MiB size limit, enabling large bundle deployments.
Relationship to the deploymentConfig API
OLM v1 applies deploymentConfig settings during the ClusterObjectSet process, modifying Operator manifests before organizing them into phases.
Deployment phases
Phases are system-determined groups that organize resources into ordered deployment stages based on their API group and kind. Objects are automatically assigned to well-known phases.
|
|
All objects within a phase are applied in no particular order. The next phase begins only after all objects in the current phase pass their readiness probes. |
The system assigns resources to the following phases in order:
namespaces-
Namespaceobjects. policies-
NetworkPolicy,PodDisruptionBudget, andPriorityClassobjects. identity-
ServiceAccountobjects. configuration-
SecretandConfigMapobjects. storage-
PersistentVolume,PersistentVolumeClaim, andStorageClassobjects. crds-
CustomResourceDefinitionobjects. roles-
ClusterRoleandRoleobjects. bindings-
ClusterRoleBindingandRoleBindingobjects. infrastructure-
Service,Issuer, andCertificateobjects. deploy-
Deploymentobjects. scaling-
VerticalPodAutoscalerobjects. publish-
PrometheusRule,ServiceMonitor,PodMonitor,Ingress,Route, and console resources. admission-
ValidatingWebhookConfigurationandMutatingWebhookConfigurationobjects.