Skip to content

Commit 46cbabb

Browse files
authored
Create section_rhoso180_flasharray_configuration.rst
1 parent 052913a commit 46cbabb

File tree

1 file changed

+219
-0
lines changed

1 file changed

+219
-0
lines changed
Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
Deploying Pure Storage FlashArray Cinder driver in a Red Hat OpenStack Services on OpenShift 18.0
2+
=================================================================================================
3+
4+
.. _purestorage-flsharray-rhoso180:
5+
6+
Overview
7+
--------
8+
9+
This guide shows how to configure and deploy the Pure Storage FlashArray Cinder driver in a
10+
**Red Hat OpenStack Services on OpenShift (RHOSO) 18.0** deployment.
11+
After reading this, you'll be able to define the proper configuration and
12+
deploy single or multiple FlashArray Cinder back ends in a RHOSO cluster.
13+
14+
.. note::
15+
16+
For more information about RHOSO, please refer to its `documentation pages
17+
<https://docs.redhat.com/en/documentation/red_hat_openstack_services_on_openshift/18.0/html/deploying_red_hat_openstack_services_on_openshift/index>`_.
18+
19+
.. warning::
20+
21+
RHOSO18.0 is based on OpenStack 2023.1 (Antelope) release with a backport of the
22+
2023.2 (Bobcat) NVMe-TCP Cinder driver for Pure Storage. Other Pure Storage driver features
23+
included after the Antelope release may not be available in RHOSO18.0.
24+
25+
In Red Hat OpenStack Services on OpenShift 18.0, the FlashArray cinder volume drivers support
26+
the following dataplanes:
27+
28+
- iSCSI
29+
- FibreChannel [certification pending]
30+
- NVMe-TCP (support backported from OpenStack 2023.2 [Bobcat]) [certification pending]
31+
32+
Requirements
33+
------------
34+
35+
In order to deploy Pure Storage FlashArray Cinder back ends, you should have the
36+
following requirements satisfied:
37+
38+
- Pure Storage FlashArrays deployed and ready to be used as Cinder
39+
back ends. See :ref:`cinder_flasharray_prerequisites` for more details.
40+
41+
- RHOSO openstack control plane deployed where Cinder services will be configured.
42+
43+
44+
Deployment Steps
45+
----------------
46+
47+
Prepare the OpenStack Control Plane
48+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
49+
50+
The following steps need to be applied after the OpenStackControlPlane has been
51+
successfully deployed in your environment.
52+
53+
Use Certified Pure Storage Cinder Volume Image
54+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
55+
56+
Red Hat requires that you utilize the Certified Pure Storage Cinder Volume
57+
Image when deploying RHOSO18.0 with a Pure Storage FlashArray backend.
58+
59+
This container can be found in the `Red Hat Container Catalog <https://catalog.redhat.com/search?searchType=containers&partnerName=Pure%20Storage%2C%20Inc.&p=1>`__.
60+
61+
Ensure the certified image is added to the ``openstackversion`` CR. This is defined in the following YAML file (``openstack_version.yaml``):
62+
63+
.. code-block:: yaml
64+
:name: cinder-openstackversion
65+
66+
apiVersion: core.openstack.org/v1beta1
67+
kind: OpenStackVersion
68+
metadata:
69+
name: openstack
70+
spec:
71+
customContainerImages:
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
75+
76+
Save this file and update:
77+
78+
.. code-block:: bash
79+
:name: openstackversion-apply
80+
81+
$ oc apply -f openstack-version.yaml
82+
83+
Create a Secret file
84+
^^^^^^^^^^^^^^^^^^^^
85+
86+
It is necessary to create a secret file that will contain the access
87+
credential(s) for your backend Pure FlashArray(s) in your RHOSO deployment.
88+
89+
In this following example file (``pure-secrets.yaml``) secrets are provided for
90+
two backend FlashArrays. You need to define a unique secret for each of your backends.
91+
92+
.. code-block:: yaml
93+
:name: cinder-pure-secret
94+
95+
apiVersion: v1
96+
kind: Secret
97+
metadata:
98+
labels:
99+
service: cinder
100+
component: cinder-volume
101+
name: cinder-volume-pure-secrets1
102+
type: Opaque
103+
stringData:
104+
pure-secrets.conf: |
105+
[pure-iscsi]
106+
san_ip=<INSERT YOUR FA1 IP HERE>
107+
pure_api_token=<INSERT YOUR FA1 API TOKEN HERE>
108+
---
109+
apiVersion: v1
110+
kind: Secret
111+
metadata:
112+
labels:
113+
service: cinder
114+
component: cinder-volume
115+
name: cinder-volume-pure-secrets2
116+
type: Opaque
117+
stringData:
118+
pure-secrets.conf: |
119+
[pure-iscsi-2]
120+
san_ip=<INSERT YOUR FA2 IP HERE>
121+
pure_api_token=<INSERT YOUR FA2 API TOKEN HERE>
122+
123+
Save this file and apply:
124+
125+
.. code-block:: bash
126+
:name: secret-apply
127+
128+
$ oc apply -f ./pure-secrets.yaml
129+
130+
Update the OpenStack Control Plane
131+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
132+
133+
Open your OpenStackControlPlane CR file, ``openstack_control_plane.yaml``. Edit the CR file and add in the
134+
Pure Storage Cinder volume backend.
135+
136+
For example:
137+
138+
.. code-block:: yaml
139+
:name: cinder-pure-openstackcontrolplane
140+
141+
apiVersion: core.openstack.org/v1beta1
142+
kind: OpenStackControlPlane
143+
metadata:
144+
name: openstack
145+
spec:
146+
cinder:
147+
template:
148+
cinderVolumes:
149+
pure-iscsi:
150+
customServiceConfig: |
151+
[pure-iscsi]
152+
volume_backend_name=pure-iscsi
153+
volume_driver=cinder.volume.drivers.pure.PureISCSIDriver
154+
customServiceConfigSecrets:
155+
- cinder-volume-pure-secrets1
156+
networkAttachments:
157+
- storage
158+
- storageMgmt
159+
replicas: 1
160+
resources: {}
161+
pure-iscsi-2:
162+
customServiceConfig: |
163+
[pure-iscsi-2]
164+
volume_backend_name=pure-iscsi-2
165+
volume_driver=cinder.volume.drivers.pure.PureISCSIDriver
166+
customServiceConfigSecrets:
167+
- cinder-volume-pure-secrets2
168+
networkAttachments:
169+
- storage
170+
- storageMgmt
171+
replicas: 1
172+
resources: {}
173+
174+
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+
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+
182+
Save this file and update:
183+
184+
.. code-block:: bash
185+
:name: openstackversion-apply
186+
187+
$ oc apply -f openstack_control_plane.yaml
188+
189+
Test the Deployed Back Ends
190+
^^^^^^^^^^^^^^^^^^^^^^^^^^^
191+
192+
After RHOSO system is deployed, access the provided pod openstackclient from where you can
193+
run the OpenStack commands to check if the Cinder services are up:
194+
195+
.. code-block:: bash
196+
:name: cinder-service-list
197+
198+
$ oc rsh openstackclient
199+
sh-5.1$ openstack volume service list
200+
201+
202+
Run the following commands to create the volume types mapped to the deployed back ends:
203+
204+
.. code-block:: bash
205+
:name: create-volume-types
206+
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
211+
212+
Make sure that you're able to create Cinder volumes with the configured volume
213+
types:
214+
215+
.. code-block:: bash
216+
:name: create-volumes
217+
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

0 commit comments

Comments
 (0)