Skip to content

Commit 72be77e

Browse files
authored
[ShiftStack: OSDOCS-2025] Full availability zone Cinder volumes (#32120)
* Add OSP full AZ Cinder volumes docs Addresses OSDOCS-2025
1 parent a8099cb commit 72be77e

File tree

4 files changed

+150
-0
lines changed

4 files changed

+150
-0
lines changed

_topic_map.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,6 +1157,8 @@ Topics:
11571157
# File: configuring-registry-storage-openstack-user-infrastructure
11581158
- Name: Configuring the registry for Azure user-provisioned infrastructure
11591159
File: configuring-registry-storage-azure-user-infrastructure
1160+
- Name: Configuring the registry for OpenStack
1161+
File: configuring-registry-storage-osp
11601162
- Name: Configuring the registry for bare metal
11611163
File: configuring-registry-storage-baremetal
11621164
- Name: Configuring the registry for vSphere

modules/installation-configuration-parameters.adoc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -692,6 +692,10 @@ Optional {rh-openstack} configuration parameters are described in the following
692692
On clusters that use Kuryr, {rh-openstack} Octavia does not support availability zones. Load balancers and, if you are using the Amphora provider driver, {product-title} services that rely on Amphora VMs, are not created according to the value of this property.
693693
|A list of strings. For example, `["zone-1", "zone-2"]`.
694694

695+
|`compute.platform.openstack.rootVolume.zones`
696+
|For compute machines, the availability zone to install root volumes on. If you do not set a value for this parameter, the installer selects the default availability zone.
697+
|A list of strings, for example `["zone-1", "zone-2"]`.
698+
695699
|`controlPlane.platform.openstack.additionalNetworkIDs`
696700
|Additional networks that are associated with control plane machines. Allowed address pairs are not created for additional networks.
697701
|A list of one or more UUIDs as strings. For example, `fa806b2f-ac49-4bce-b9db-124bc64209bf`.
@@ -706,6 +710,10 @@ On clusters that use Kuryr, {rh-openstack} Octavia does not support availability
706710
On clusters that use Kuryr, {rh-openstack} Octavia does not support availability zones. Load balancers and, if you are using the Amphora provider driver, {product-title} services that rely on Amphora VMs, are not created according to the value of this property.
707711
|A list of strings. For example, `["zone-1", "zone-2"]`.
708712

713+
|`controlPlane.platform.openstack.rootVolume.zones`
714+
|For control plane machines, the availability zone to install root volumes on. If you do not set this value, the installer selects the default availability zone.
715+
|A list of strings, for example `["zone-1", "zone-2"]`.
716+
709717
|`platform.openstack.clusterOSImage`
710718
|The location from which the installer downloads the {op-system} image.
711719

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * registry/configuring_registry_storage/configuring-registry-storage.adoc
4+
5+
[id="installation-registry-osp-creating-custom-pvc_{context}"]
6+
= Configuring an image registry with custom storage on clusters that run on {rh-openstack}
7+
8+
After you install a cluster on {rh-openstack-first}, you can use a Cinder volume that is in a specific availability zone for registry storage.
9+
10+
.Procedure
11+
12+
. Create a YAML file that specifies the storage class and availability zone to use. For example:
13+
+
14+
[source,yaml]
15+
----
16+
apiVersion: storage.k8s.io/v1
17+
kind: StorageClass
18+
metadata:
19+
name: custom-csi-storageclass
20+
provisioner: cinder.csi.openstack.org
21+
volumeBindingMode: WaitForFirstConsumer
22+
allowVolumeExpansion: true
23+
parameters:
24+
availability: <availability_zone_name>
25+
----
26+
+
27+
[NOTE]
28+
====
29+
{product-title} does not verify the existence of the availability zone you choose. Verify the name of the availability zone before you apply the configuration.
30+
====
31+
32+
. From a command line, apply the configuration:
33+
+
34+
[source,terminal]
35+
----
36+
$ oc apply -f <storage_class_file_name>
37+
----
38+
+
39+
.Example output
40+
[source,terminal]
41+
----
42+
storageclass.storage.k8s.io/custom-csi-storageclass created
43+
----
44+
45+
. Create a YAML file that specifies a persistent volume claim (PVC) that uses your storage class and the `openshift-image-registry` namespace. For example:
46+
+
47+
[source,yaml]
48+
----
49+
apiVersion: v1
50+
kind: PersistentVolumeClaim
51+
metadata:
52+
name: csi-pvc-imageregistry
53+
namespace: openshift-image-registry <1>
54+
annotations:
55+
imageregistry.openshift.io: "true"
56+
spec:
57+
accessModes:
58+
- ReadWriteOnce
59+
volumeMode: Block
60+
resources:
61+
requests:
62+
storage: 100Gi <2>
63+
storageClassName: <your_custom_storage_class> <3>
64+
----
65+
<1> Enter the namespace `openshift-image-registry`. This namespace allows the Cluster Image Registry Operator to consume the PVC.
66+
<2> Optional: Adjust the volume size.
67+
<3> Enter the name of the storage class that you created.
68+
69+
. From a command line, apply the configuration:
70+
+
71+
[source,terminal]
72+
----
73+
$ oc apply -f <pvc_file_name>
74+
----
75+
+
76+
.Example output
77+
[source,terminal]
78+
----
79+
persistentvolumeclaim/csi-pvc-imageregistry created
80+
----
81+
82+
. Replace the original persistent volume claim in the image registry configuration with the new claim:
83+
+
84+
[source,terminal]
85+
----
86+
$ oc patch configs.imageregistry.operator.openshift.io/cluster --type 'json' -p='[{"op": "replace", "path": "/spec/storage/pvc/claim", "value": "csi-pvc-imageregistry"}]'
87+
----
88+
+
89+
.Example output
90+
[source,terminal]
91+
----
92+
config.imageregistry.operator.openshift.io/cluster patched
93+
----
94+
+
95+
Over the next several minutes, the configuration is updated.
96+
97+
.Verification
98+
99+
To confirm that the registry is using the resources that you defined:
100+
101+
. Verify that the PVC claim value is identical to the name that you provided in your PVC definition:
102+
+
103+
[source,terminal]
104+
----
105+
$ oc get configs.imageregistry.operator.openshift.io/cluster -o yaml
106+
----
107+
+
108+
.Example output
109+
[source,terminal]
110+
----
111+
...
112+
status:
113+
...
114+
managementState: Managed
115+
pvc:
116+
claim: csi-pvc-imageregistry
117+
...
118+
----
119+
120+
. Verify that the status of the PVC is `Bound`:
121+
+
122+
[source,terminal]
123+
----
124+
$ oc get pvc -n openshift-image-registry csi-pvc-imageregistry
125+
----
126+
+
127+
.Example output
128+
[source,terminal]
129+
----
130+
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
131+
csi-pvc-imageregistry Bound pvc-72a8f9c9-f462-11e8-b6b6-fa163e18b7b5 100Gi RWO custom-csi-storageclass 11m
132+
----
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[id="configuring-registry-storage-openstack"]
2+
= Configuring the registry for {rh-openstack}
3+
include::modules/common-attributes.adoc[]
4+
:context: configuring-registry-storage-openstack
5+
6+
toc::[]
7+
8+
include::modules/installation-registry-osp-creating-custom-pvc.adoc[leveloffset=+1]

0 commit comments

Comments
 (0)