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.

Important

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.

Note

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

Namespace objects.

policies

NetworkPolicy, PodDisruptionBudget, and PriorityClass objects.

identity

ServiceAccount objects.

configuration

Secret and ConfigMap objects.

storage

PersistentVolume, PersistentVolumeClaim, and StorageClass objects.

crds

CustomResourceDefinition objects.

roles

ClusterRole and Role objects.

bindings

ClusterRoleBinding and RoleBinding objects.

infrastructure

Service, Issuer, and Certificate objects.

deploy

Deployment objects.

scaling

VerticalPodAutoscaler objects.

publish

PrometheusRule, ServiceMonitor, PodMonitor, Ingress, Route, and console resources.

admission

ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.