@@ -26,8 +26,8 @@ In Red Hat OpenStack Services on OpenShift 18.0, the FlashArray cinder volume dr
26
26
the following dataplanes:
27
27
28
28
- iSCSI
29
+ - NVMe-TCP (support backported from OpenStack 2023.2 [Bobcat])
29
30
- FibreChannel [certification pending]
30
- - NVMe-TCP (support backported from OpenStack 2023.2 [Bobcat]) [certification pending]
31
31
32
32
Requirements
33
33
------------
@@ -70,8 +70,10 @@ Ensure the certified image is added to the ``openstackversion`` CR. This is def
70
70
spec :
71
71
customContainerImages :
72
72
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.
75
77
76
78
Save this file and update:
77
79
@@ -102,7 +104,7 @@ two backend FlashArrays. You need to define a unique secret for each of your bac
102
104
type : Opaque
103
105
stringData :
104
106
pure-secrets.conf : |
105
- [pure-iscsi ]
107
+ [pure1 ]
106
108
san_ip=<INSERT YOUR FA1 IP HERE>
107
109
pure_api_token=<INSERT YOUR FA1 API TOKEN HERE>
108
110
---
@@ -116,7 +118,7 @@ two backend FlashArrays. You need to define a unique secret for each of your bac
116
118
type : Opaque
117
119
stringData :
118
120
pure-secrets.conf : |
119
- [pure-iscsi-2 ]
121
+ [pure2 ]
120
122
san_ip=<INSERT YOUR FA2 IP HERE>
121
123
pure_api_token=<INSERT YOUR FA2 API TOKEN HERE>
122
124
@@ -133,10 +135,10 @@ Update the OpenStack Control Plane
133
135
Open your OpenStackControlPlane CR file, ``openstack_control_plane.yaml ``. Edit the CR file and add in the
134
136
Pure Storage Cinder volume backend.
135
137
136
- For example:
138
+ ** iSCSI driver example:**
137
139
138
140
.. code-block :: yaml
139
- :name : cinder-pure -openstackcontrolplane
141
+ :name : cinder-pureiscsi -openstackcontrolplane
140
142
141
143
apiVersion : core.openstack.org/v1beta1
142
144
kind : OpenStackControlPlane
@@ -146,10 +148,10 @@ For example:
146
148
cinder :
147
149
template :
148
150
cinderVolumes :
149
- pure-iscsi :
151
+ pure1 :
150
152
customServiceConfig : |
151
- [pure-iscsi ]
152
- volume_backend_name=pure-iscsi
153
+ [pure1 ]
154
+ volume_backend_name=pure
153
155
volume_driver=cinder.volume.drivers.pure.PureISCSIDriver
154
156
customServiceConfigSecrets :
155
157
- cinder-volume-pure-secrets1
@@ -158,10 +160,10 @@ For example:
158
160
- storageMgmt
159
161
replicas : 1
160
162
resources : {}
161
- pure-iscsi-2 :
163
+ pure2 :
162
164
customServiceConfig : |
163
- [pure-iscsi-2 ]
164
- volume_backend_name=pure-iscsi-2
165
+ [pure2 ]
166
+ volume_backend_name=pure2
165
167
volume_driver=cinder.volume.drivers.pure.PureISCSIDriver
166
168
customServiceConfigSecrets :
167
169
- cinder-volume-pure-secrets2
@@ -171,13 +173,50 @@ For example:
171
173
replicas : 1
172
174
resources : {}
173
175
176
+ **NVMe-TCP driver example: **
174
177
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
178
180
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):
181
220
182
221
Save this file and update:
183
222
@@ -204,16 +243,16 @@ Run the following commands to create the volume types mapped to the deployed bac
204
243
.. code-block :: bash
205
244
:name: create-volume-types
206
245
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
211
250
212
251
Make sure that you're able to create Cinder volumes with the configured volume
213
252
types:
214
253
215
254
.. code-block :: bash
216
255
:name: create-volumes
217
256
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