Skip to content

Commit de4fafa

Browse files
authored
Merge pull request #47646 from bmcelvee/OSDOCS-3602-new
OSDOCS-3602: Document image registry distribution across availability zones
2 parents 00f0b10 + 9cf9eca commit de4fafa

File tree

2 files changed

+69
-16
lines changed

2 files changed

+69
-16
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * openshift_images/configuring-registry-operator.adoc
4+
5+
6+
[id="registry-operator-distribution-across-availability-zones_{context}"]
7+
= Image Registry Operator distribution across availability zones
8+
9+
The default configuration of the Image Registry Operator spreads image registry pods across topology zones to prevent delayed recovery times in case of a complete zone failure where all pods are impacted.
10+
11+
The Image Registry Operator defaults to the following when deployed with a zone-related topology constraint:
12+
13+
.Image Registry Operator deployed with a zone related topology constraint
14+
[source,yaml]
15+
----
16+
topologySpreadConstraints:
17+
- labelSelector:
18+
matchLabels:
19+
docker-registry: default
20+
maxSkew: 1
21+
topologyKey: kubernetes.io/hostname
22+
whenUnsatisfiable: DoNotSchedule
23+
- labelSelector:
24+
matchLabels:
25+
docker-registry: default
26+
maxSkew: 1
27+
topologyKey: node-role.kubernetes.io/worker
28+
whenUnsatisfiable: DoNotSchedule
29+
- labelSelector:
30+
matchLabels:
31+
docker-registry: default
32+
maxSkew: 1
33+
topologyKey: topology.kubernetes.io/zone
34+
whenUnsatisfiable: DoNotSchedule
35+
----
36+
37+
The Image Registry Operator defaults to the following when deployed without a zone-related topology constraint, which applies to bare metal and vSphere instances:
38+
39+
.Image Registry Operator deployed without a zone related topology constraint
40+
[source,yaml]
41+
----
42+
topologySpreadConstraints:
43+
- labelSelector:
44+
matchLabels:
45+
docker-registry: default
46+
maxSkew: 1
47+
topologyKey: kubernetes.io/hostname
48+
whenUnsatisfiable: DoNotSchedule
49+
- labelSelector:
50+
matchLabels:
51+
docker-registry: default
52+
maxSkew: 1
53+
topologyKey: node-role.kubernetes.io/worker
54+
whenUnsatisfiable: DoNotSchedule
55+
----
56+
57+
A cluster administrator can override the default `topologySpreadConstraints` by configuring the `configs.imageregistry.operator.openshift.io/cluster` spec file. In that case, only the constraints you provide apply.

registry/configuring-registry-operator.adoc

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,31 +9,20 @@ toc::[]
99
[id="image-registry-on-cloud"]
1010
== Image Registry on cloud platforms and OpenStack
1111

12-
The Image Registry Operator installs a single instance of the {product-title}
13-
registry, and manages all registry configuration, including setting up
14-
registry storage.
12+
The Image Registry Operator installs a single instance of the {product-title} registry, and manages all registry configuration, including setting up registry storage.
1513

1614
[NOTE]
1715
====
18-
Storage is only automatically configured when you install an
19-
installer-provisioned infrastructure cluster on AWS, GCP, Azure, or OpenStack.
16+
Storage is only automatically configured when you install an installer-provisioned infrastructure cluster on AWS, GCP, Azure, or OpenStack.
2017
2118
When you install or upgrade an installer-provisioned infrastructure cluster on AWS or Azure, the Image Registry Operator sets the `spec.storage.managementState` parameter to `Managed`. If the `spec.storage.managementState` parameter is set to `Unmanaged`, the Image Registry Operator takes no action related to storage.
2219
====
2320

24-
After the control plane deploys, the Operator will create a default
25-
`configs.imageregistry.operator.openshift.io` resource instance based on
26-
configuration detected in the cluster.
21+
After the control plane deploys, the Operator creates a default `configs.imageregistry.operator.openshift.io` resource instance based on configuration detected in the cluster.
2722

28-
If insufficient information is available to define a complete
29-
`configs.imageregistry.operator.openshift.io` resource, the incomplete resource
30-
will be defined and the Operator will update the resource status with
31-
information about what is missing.
32-
33-
The Image Registry Operator runs in the `openshift-image-registry` namespace,
34-
and manages the registry instance in that location as well. All configuration
35-
and workload resources for the registry reside in that namespace.
23+
If insufficient information is available to define a complete `configs.imageregistry.operator.openshift.io` resource, the incomplete resource is defined and the Operator updates the resource status with information about what is missing.
3624

25+
The Image Registry Operator runs in the `openshift-image-registry` namespace, and manages the registry instance in that location as well. All configuration and workload resources for the registry reside in that namespace.
3726

3827
[IMPORTANT]
3928
====
@@ -51,6 +40,13 @@ However, the `managementState` of the Image Registry Operator alters the behavio
5140

5241
include::modules/registry-removed.adoc[leveloffset=+2]
5342

43+
include::modules/registry-operator-distribution-across-availability-zones.adoc[leveloffset=+1]
44+
45+
[role="_additional-resources"]
46+
== Additional resources
47+
48+
* xref:../nodes/scheduling/nodes-scheduler-pod-topology-spread-constraints.adoc#nodes-scheduler-pod-topology-spread-constraints[Configuring pod topology spread constraints]
49+
5450
include::modules/registry-operator-configuration-resource-overview.adoc[leveloffset=+1]
5551

5652
include::modules/registry-operator-default-crd.adoc[leveloffset=+1]

0 commit comments

Comments
 (0)