@@ -26,8 +26,8 @@ In Red Hat OpenStack Services on OpenShift 18.0, the FlashArray cinder volume dr
2626the following dataplanes:
2727
2828- iSCSI
29+ - NVMe-TCP (support backported from OpenStack 2023.2 [Bobcat])
2930- FibreChannel [certification pending]
30- - NVMe-TCP (support backported from OpenStack 2023.2 [Bobcat]) [certification pending]
3131
3232Requirements
3333------------
@@ -70,8 +70,10 @@ Ensure the certified image is added to the ``openstackversion`` CR. This is def
7070 spec :
7171 customContainerImages :
7272 cinderVolumeImages :
73- pure-iscsi : registry.connect.redhat.com/purestorage/openstack-cinder-volume-pure-18-0:latest
74- pure-iscsi-2 : registry.connect.redhat.com/purestorage/openstack-cinder-volume-pure-18-0:latest
73+ pure1 : registry.connect.redhat.com/purestorage/openstack-cinder-volume-pure-18-0:latest
74+ pure2 : registry.connect.redhat.com/purestorage/openstack-cinder-volume-pure-18-0:latest
75+
76+ This example is for two Pure Storage backends - defined later in the OpenStackControlPlane CR.
7577
7678Save this file and update:
7779
@@ -102,7 +104,7 @@ two backend FlashArrays. You need to define a unique secret for each of your bac
102104 type : Opaque
103105 stringData :
104106 pure-secrets.conf : |
105- [pure-iscsi ]
107+ [pure1 ]
106108 san_ip=<INSERT YOUR FA1 IP HERE>
107109 pure_api_token=<INSERT YOUR FA1 API TOKEN HERE>
108110 ---
@@ -116,7 +118,7 @@ two backend FlashArrays. You need to define a unique secret for each of your bac
116118 type : Opaque
117119 stringData :
118120 pure-secrets.conf : |
119- [pure-iscsi-2 ]
121+ [pure2 ]
120122 san_ip=<INSERT YOUR FA2 IP HERE>
121123 pure_api_token=<INSERT YOUR FA2 API TOKEN HERE>
122124
@@ -133,10 +135,10 @@ Update the OpenStack Control Plane
133135Open your OpenStackControlPlane CR file, ``openstack_control_plane.yaml ``. Edit the CR file and add in the
134136Pure Storage Cinder volume backend.
135137
136- For example:
138+ ** iSCSI driver example:**
137139
138140.. code-block :: yaml
139- :name : cinder-pure -openstackcontrolplane
141+ :name : cinder-pureiscsi -openstackcontrolplane
140142
141143 apiVersion : core.openstack.org/v1beta1
142144 kind : OpenStackControlPlane
@@ -146,10 +148,10 @@ For example:
146148 cinder :
147149 template :
148150 cinderVolumes :
149- pure-iscsi :
151+ pure1 :
150152 customServiceConfig : |
151- [pure-iscsi ]
152- volume_backend_name=pure-iscsi
153+ [pure1 ]
154+ volume_backend_name=pure
153155 volume_driver=cinder.volume.drivers.pure.PureISCSIDriver
154156 customServiceConfigSecrets :
155157 - cinder-volume-pure-secrets1
@@ -158,10 +160,10 @@ For example:
158160 - storageMgmt
159161 replicas : 1
160162 resources : {}
161- pure-iscsi-2 :
163+ pure2 :
162164 customServiceConfig : |
163- [pure-iscsi-2 ]
164- volume_backend_name=pure-iscsi-2
165+ [pure2 ]
166+ volume_backend_name=pure2
165167 volume_driver=cinder.volume.drivers.pure.PureISCSIDriver
166168 customServiceConfigSecrets :
167169 - cinder-volume-pure-secrets2
@@ -171,13 +173,50 @@ For example:
171173 replicas : 1
172174 resources : {}
173175
176+ **NVMe-TCP driver example: **
174177
175- The above example is again for two backends. Also notice that the Cinder configuration
176- part of the deployment (notice that *pure-iscsi * / *pure-iscsi-2 * here must match the ones
177- used in the *OpenStackVersion * above):
178+ .. code-block :: yaml
179+ :name : cinder-purenvme-openstackcontrolplane
178180
179- Note that if you are using the NVMe volume driver an additional parameter of
180- ``pure_nvme_transport=tcp `` will needed to be added into the backend stanza(s).
181+ apiVersion : core.openstack.org/v1beta1
182+ kind : OpenStackControlPlane
183+ metadata :
184+ name : openstack
185+ spec :
186+ cinder :
187+ template :
188+ cinderVolumes :
189+ pure1 :
190+ customServiceConfig : |
191+ [pure1]
192+ volume_backend_name=pure
193+ volume_driver=cinder.volume.drivers.pure.PureNVMEDriver
194+ pure_nvme_transport=tcp
195+ customServiceConfigSecrets :
196+ - cinder-volume-pure-secrets1
197+ networkAttachments :
198+ - storage
199+ - storageMgmt
200+ replicas : 1
201+ resources : {}
202+ pure2 :
203+ customServiceConfig : |
204+ [pure2]
205+ volume_backend_name=pure2
206+ volume_driver=cinder.volume.drivers.pure.PureNVMEDriver
207+ pure_nvme_transport=tcp
208+ customServiceConfigSecrets :
209+ - cinder-volume-pure-secrets2
210+ networkAttachments :
211+ - storage
212+ - storageMgmt
213+ replicas : 1
214+ resources : {}
215+
216+
217+ The above examples are for two backends. Notice that the Cinder configuration
218+ part of the deployment (*pure1 * / *pure2 *) here must match the names
219+ used in the *OpenStackVersion * above):
181220
182221Save this file and update:
183222
@@ -204,16 +243,16 @@ Run the following commands to create the volume types mapped to the deployed bac
204243.. code-block :: bash
205244 :name: create-volume-types
206245
207- sh-5.1$ openstack volume type create pure-iscsi
208- sh-5.1$ openstack volume type set --property volume_backend_name=pure-iscsi pure-iscsi
209- sh-5.1$ openstack volume type create pure-iscsi-2
210- sh-5.1$ openstack volume type set --property volume_backend_name=pure-iscsi-2 pure-iscsi-2
246+ sh-5.1$ openstack volume type create pure1
247+ sh-5.1$ openstack volume type set --property volume_backend_name=pure1 pure1
248+ sh-5.1$ openstack volume type create pure2
249+ sh-5.1$ openstack volume type set --property volume_backend_name=pure2 pure2
211250
212251 Make sure that you're able to create Cinder volumes with the configured volume
213252types:
214253
215254.. code-block :: bash
216255 :name: create-volumes
217256
218- sh-5.1$ openstack volume create --type pure-iscsi --size 1 v1
219- sh-5.1$ openstack volume create --type pure-iscsi-2 --size 1 v2
257+ sh-5.1$ openstack volume create --type pure1 --size 1 v1
258+ sh-5.1$ openstack volume create --type pure2 --size 1 v2
0 commit comments