blob: 6b33e7a39ef4471f5e88097ded4e187db8cfbf80 [file] [log] [blame]
OlgaGusarenko74b53f22018-06-28 17:35:48 +03001=====
2Usage
3=====
Filip Pytlounda2a0792015-10-06 16:28:31 +02004
OlgaGusarenko74b53f22018-06-28 17:35:48 +03005Cinder provides an infrastructure for managing volumes in OpenStack.
6Originally, this project was the Nova component called ``nova-volume``
7and starting from the Folsom OpenStack release it has become an independent
8project.
Filip Pytlounda2a0792015-10-06 16:28:31 +02009
OlgaGusarenko74b53f22018-06-28 17:35:48 +030010This file provides the sample configurations for different use cases:
Filip Pytlounda2a0792015-10-06 16:28:31 +020011
OlgaGusarenko74b53f22018-06-28 17:35:48 +030012* Pillar sample of a basic Cinder configuration:
Filip Pytlounda2a0792015-10-06 16:28:31 +020013
OlgaGusarenko74b53f22018-06-28 17:35:48 +030014 The pillar structure defines ``cinder-api`` and ``cinder-scheduler`` inside
15 the ``controller`` role and ``cinder-volume`` inside the to ``volume``
16 role.
17
18 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +020019
20 cinder:
21 controller:
22 enabled: true
23 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030024 cinder_uid: 304
25 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030026 nas_secure_file_permissions: false
27 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030028 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
29 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010030 default_volume_type: 7k2SaS
stelucz1f3a82f2017-09-19 18:38:13 +020031 enable_force_upload: true
Damian Szeluga0918f5a2017-04-19 12:26:56 +020032 availability_zone_fallback: True
Oleksandr Pidrepnyi27e25fa2019-05-02 14:00:40 +030033 image_conversion_dir: /var/tmp/cinder/conversion
Ivan Berezovskiy3fe31942019-11-19 16:27:47 +040034 concurrency:
35 lock_path: '/var/lock/cinder'
Filip Pytlounda2a0792015-10-06 16:28:31 +020036 database:
37 engine: mysql
38 host: 127.0.0.1
39 port: 3306
40 name: cinder
41 user: cinder
42 password: pwd
43 identity:
44 engine: keystone
45 host: 127.0.0.1
46 port: 35357
47 tenant: service
48 user: cinder
49 password: pwd
50 message_queue:
51 engine: rabbitmq
52 host: 127.0.0.1
53 port: 5672
54 user: openstack
55 password: pwd
56 virtual_host: '/openstack'
root08402652018-12-28 15:04:23 +000057 client:
58 connection_params:
59 connect_retries: 50
60 connect_retry_delay: 1
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010061 backend:
62 7k2_SAS:
63 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010064 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010065 host: 192.168.0.1
66 port: 22
67 user: username
68 password: pass
69 connection: FC/iSCSI
70 multihost: true
71 multipath: true
72 pool: SAS7K2
Kirill Bespalov01614c02017-07-31 17:06:09 +030073 audit:
Petr Michaleca1c7ff12016-11-29 16:32:50 +010074 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010075 osapi_max_limit: 500
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +030076 barbican:
77 enabled: true
Filip Pytlounda2a0792015-10-06 16:28:31 +020078
79 cinder:
80 volume:
81 enabled: true
82 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030083 cinder_uid: 304
84 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030085 nas_secure_file_permissions: false
86 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030087 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
88 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010089 default_volume_type: 7k2SaS
Michael Polenchukf0d642e2018-07-27 09:55:14 +040090 enable_force_upload: true
91 my_ip: 192.168.0.254
Oleksandr Pidrepnyida465022019-04-26 18:44:05 +030092 image_conversion_dir: /var/tmp/cinder/conversion
Ivan Berezovskiy3fe31942019-11-19 16:27:47 +040093 concurrency:
94 lock_path: '/var/lock/cinder'
Filip Pytlounda2a0792015-10-06 16:28:31 +020095 database:
96 engine: mysql
97 host: 127.0.0.1
98 port: 3306
99 name: cinder
100 user: cinder
101 password: pwd
102 identity:
103 engine: keystone
104 host: 127.0.0.1
105 port: 35357
106 tenant: service
107 user: cinder
108 password: pwd
109 message_queue:
110 engine: rabbitmq
111 host: 127.0.0.1
112 port: 5672
113 user: openstack
114 password: pwd
115 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100116 backend:
117 7k2_SAS:
118 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100119 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100120 host: 192.168.0.1
121 port: 22
122 user: username
123 password: pass
124 connection: FC/iSCSI
125 multihost: true
126 multipath: true
127 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100128 audit:
129 enabled: false
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300130 barbican:
131 enabled: true
Ondrej Smola74af21b2017-04-28 12:30:24 +0200132
133
Vasyl Saienkoa5de7512018-07-12 17:28:36 +0300134Volume vmware related options:
135
136.. code-block:: yaml
137
138 cinder:
139 volume:
140 backend:
141 vmware:
142 engine: vmware
143 host_username: vmware
144 host_password: vmware
145 cluster_names: vmware_cluster01,vmware_cluster02
146
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300147* The CORS parameters enablement:
Vasyl Saienkoa5de7512018-07-12 17:28:36 +0300148
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300149 .. code-block:: yaml
Ondrej Smola74af21b2017-04-28 12:30:24 +0200150
151 cinder:
152 controller:
153 cors:
154 allowed_origin: https:localhost.local,http:localhost.local
155 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
156 allow_methods: GET,PUT,POST,DELETE,PATCH
157 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
158 allow_credentials: True
159 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200160
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300161* The client-side RabbitMQ HA setup for the controller:
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200162
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300163 .. code-block:: yaml
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200164
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300165 cinder:
166 controller:
167 ....
168 message_queue:
169 engine: rabbitmq
170 members:
171 - host: 10.0.16.1
172 - host: 10.0.16.2
173 - host: 10.0.16.3
174 user: openstack
175 password: pwd
176 virtual_host: '/openstack'
177 ....
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200178
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300179* The client-side RabbitMQ HA setup for the volume component
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200180
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300181 .. code-block:: yaml
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200182
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300183 cinder:
184 volume:
185 ....
186 message_queue:
187 engine: rabbitmq
188 members:
189 - host: 10.0.16.1
190 - host: 10.0.16.2
191 - host: 10.0.16.3
192 user: openstack
193 password: pwd
194 virtual_host: '/openstack'
195 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200196
Kirill Bespalov01614c02017-07-31 17:06:09 +0300197
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300198* Configuring TLS communications.
Kirill Bespalov01614c02017-07-31 17:06:09 +0300199
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300200 .. note:: By default, system-wide installed CA certs are used.
201 Therefore, the ``cacert_file`` and ``cacert`` parameters are
202 optional.
Kirill Bespalov01614c02017-07-31 17:06:09 +0300203
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300204 * RabbitMQ TLS:
Kirill Bespalov1550d6c2017-11-21 12:55:33 +0300205
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300206 .. code-block:: yaml
Kirill Bespalov1550d6c2017-11-21 12:55:33 +0300207
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300208 cinder:
209 controller, volume:
210 message_queue:
211 port: 5671
212 ssl:
213 enabled: True
214 (optional) cacert: cert body if the cacert_file does not exists
215 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
216 (optional) version: TLSv1_2
Kirill Bespalov01614c02017-07-31 17:06:09 +0300217
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300218 * MySQL TLS:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300219
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300220 .. code-block:: yaml
Kirill Bespalov01614c02017-07-31 17:06:09 +0300221
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300222 cinder:
223 controller:
224 database:
225 ssl:
226 enabled: True
227 (optional) cacert: cert body if the cacert_file does not exists
228 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov01614c02017-07-31 17:06:09 +0300229
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300230 * Openstack HTTPS API:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300231
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300232 .. code-block:: yaml
Kirill Bespalov01614c02017-07-31 17:06:09 +0300233
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300234 cinder:
235 controller, volume:
236 identity:
237 protocol: https
238 (optional) cacert_file: /etc/openstack/proxy.pem
239 glance:
240 protocol: https
241 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov01614c02017-07-31 17:06:09 +0300242
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300243* Cinder setup with zeroing deleted volumes:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300244
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300245 .. code-block:: yaml
Alexander Noskov62496fb2017-02-27 16:42:54 +0100246
Filip Pytlounda2a0792015-10-06 16:28:31 +0200247 cinder:
248 controller:
249 enabled: true
250 wipe_method: zero
251 ...
252
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300253* Cinder setup with shreding deleted volumes:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200254
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300255 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200256
257 cinder:
258 controller:
259 enabled: true
260 wipe_method: shred
261 ...
262
Oleksandr Pidrepnyida465022019-04-26 18:44:05 +0300263* Configure directory used for temporary storage during image conversion:
264
265 .. code-block:: yaml
266
267 cinder:
Oleksandr Pidrepnyi27e25fa2019-05-02 14:00:40 +0300268 controller:
269 image_conversion_dir: /var/tmp/cinder/conversion
Oleksandr Pidrepnyida465022019-04-26 18:44:05 +0300270 volume:
271 image_conversion_dir: /var/tmp/cinder/conversion
272 ...
273
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300274* Configuration of ``policy.json`` file:
Dmitry Ukov56c29072017-05-04 16:48:29 +0400275
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300276 .. code-block:: yaml
Dmitry Ukov56c29072017-05-04 16:48:29 +0400277
278 cinder:
279 controller:
280 ....
281 policy:
282 'volume:delete': 'rule:admin_or_owner'
283 # Add key without value to remove line from policy.json
284 'volume:extend':
285
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300286* Default Cinder backend ``lvm_type`` setup:
sgarbuz0901ebe2018-06-13 17:16:16 +0300287
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300288 .. code-block:: yaml
sgarbuz0901ebe2018-06-13 17:16:16 +0300289
290 cinder:
291 volume:
292 enabled: true
293 backend:
294 # Type of LVM volumes to deploy; (default, thin, or auto). Auto defaults to thin if thin is supported.
295 lvm_type: auto
296
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300297* Default Cinder setup with iSCSI target:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200298
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300299 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200300
301 cinder:
302 controller:
303 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200304 version: mitaka
305 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200306 database:
307 engine: mysql
308 host: 127.0.0.1
309 port: 3306
310 name: cinder
311 user: cinder
312 password: pwd
313 identity:
314 engine: keystone
315 host: 127.0.0.1
316 port: 35357
317 tenant: service
318 user: cinder
319 password: pwd
320 message_queue:
321 engine: rabbitmq
322 host: 127.0.0.1
323 port: 5672
324 user: openstack
325 password: pwd
326 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100327 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200328 lvmdriver-1:
329 engine: lvm
330 type_name: lvmdriver-1
331 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200332
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300333* Cinder setup for IBM Storwize:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200334
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300335 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200336
337 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100338 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200339 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100340 backend:
341 7k2_SAS:
342 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100343 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100344 host: 192.168.0.1
345 port: 22
346 user: username
347 password: pass
348 connection: FC/iSCSI
349 multihost: true
350 multipath: true
351 pool: SAS7K2
352 10k_SAS:
353 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100354 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100355 host: 192.168.0.1
356 port: 22
357 user: username
358 password: pass
359 connection: FC/iSCSI
360 multihost: true
361 multipath: true
362 pool: SAS10K
363 15k_SAS:
364 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100365 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100366 host: 192.168.0.1
367 port: 22
368 user: username
369 password: pass
370 connection: FC/iSCSI
371 multihost: true
372 multipath: true
373 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200374
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300375* Cinder setup with NFS:
Jiri Broulik88548db2017-03-31 12:21:37 +0200376
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300377 .. code-block:: yaml
Jiri Broulik88548db2017-03-31 12:21:37 +0200378
379 cinder:
380 controller:
381 enabled: true
382 default_volume_type: nfs-driver
383 backend:
384 nfs-driver:
385 engine: nfs
386 type_name: nfs-driver
387 volume_group: cinder-volume
388 path: /var/lib/cinder/nfs
389 devices:
390 - 172.16.10.110:/var/nfs/cinder
391 options: rw,sync
392
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300393* Cinder setup with NetApp:
Jiri Broulik88548db2017-03-31 12:21:37 +0200394
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300395 .. code-block:: yaml
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400396
397 cinder:
398 controller:
399 backend:
400 netapp:
401 engine: netapp
402 type_name: netapp
403 user: openstack
404 vserver: vm1
405 server_hostname: 172.18.2.3
406 password: password
407 storage_protocol: nfs
408 transport_type: https
409 lun_space_reservation: enabled
410 use_multipath_for_image_xfer: True
Dmitry Stremkouskiffa53c02017-09-15 19:47:21 +0300411 nas_secure_file_operations: false
412 nas_secure_file_permissions: false
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400413 devices:
414 - 172.18.1.2:/vol_1
415 - 172.18.1.2:/vol_2
416 - 172.18.1.2:/vol_3
417 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200418 linux:
419 system:
420 package:
421 nfs-common:
422 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400423
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300424* Cinder setup with Hitachi VPS:
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400425
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300426 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200427
428 cinder:
429 controller:
430 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100431 backend:
432 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100433 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100434 backend: hus100_backend
435 engine: hitachi_vsp
436 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200437
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300438* Cinder setup with Hitachi VPS with defined ``ldev`` range:
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100439
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300440 .. code-block:: yaml
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100441
442 cinder:
443 controller:
444 enabled: true
445 backend:
446 hus100_backend:
447 type_name: HUS100
448 backend: hus100_backend
449 engine: hitachi_vsp
450 connection: FC
451 ldev_range: 0-1000
452
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300453* Cinder setup with Ceph:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200454
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300455 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200456
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300457 cinder:
458 controller:
459 enabled: true
460 backend:
461 ceph_backend:
462 type_name: standard-iops
463 backend: ceph_backend
sgarbuz94de9292018-09-10 10:22:39 +0300464 backend_host: ceph
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300465 pool: volumes
466 engine: ceph
467 user: cinder
468 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
469 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
470 report_discard_supported: True
stelucz9f4986c2018-08-30 09:46:55 +0200471 image_volume_cache_enabled: False
Filip Pytlounda2a0792015-10-06 16:28:31 +0200472
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300473 .. note:: `Ceph official documentation <http://ceph.com/docs/master/rbd/rbd-openstack/>`__
Filip Pytlounda2a0792015-10-06 16:28:31 +0200474
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300475* Cinder setup with HP3par:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200476
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300477 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200478
479 cinder:
480 controller:
481 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100482 backend:
483 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100484 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100485 backend: hp3par_backend
486 user: hp3paruser
487 password: something
488 url: http://10.10.10.10/api/v1
489 cpg: OpenStackCPG
490 host: 10.10.10.10
491 login: hp3paradmin
492 sanpassword: something
493 debug: True
494 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200495
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300496* Cinder setup with Fujitsu Eternus:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200497
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300498 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200499
500 cinder:
501 volume:
502 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100503 backend:
504 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100505 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100506 engine: fujitsu
507 pool: 10kThinPro
508 host: 192.168.0.1
509 port: 5988
510 user: username
511 password: pass
512 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100513 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100514 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100515 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100516 pool: SAS10K
517 engine: fujitsu
518 host: 192.168.0.1
519 port: 5988
520 user: username
521 password: pass
522 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100523 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200524
Sergio Lystopadbbfba652019-06-06 16:20:08 +0300525* Cinder setup with Fujitsu Eternus. Set driver class to be used by cinder-volume:
526 .. code-block:: yaml
527
528 cinder:
529 controller:
530 enabled: True
531 backend:
532 FJISCSI:
533 driver: cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_iscsi.FJDXISCSIDriver
534 engine: fujitsu
535 FJFC:
536 driver: cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_fc.FJDXFCDriver
537 engine: fujitsu
538
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300539* Cinder setup with IBM GPFS filesystem:
Jakub Pavlik9703c602015-10-15 18:52:47 +0200540
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300541 .. code-block:: yaml
Jakub Pavlik9703c602015-10-15 18:52:47 +0200542
543 cinder:
544 volume:
545 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100546 backend:
547 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100548 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100549 engine: gpfs
550 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100551 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100552 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100553 engine: gpfs
554 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Kirill Bespalov01614c02017-07-31 17:06:09 +0300555
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300556* Cinder setup with HP LeftHand:
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100557
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300558 .. code-block:: yaml
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100559
560 cinder:
561 volume:
562 enabled: true
563 backend:
564 HP-LeftHand:
565 type_name: normal-storage
566 engine: hp_lefthand
567 api_url: 'https://10.10.10.10:8081/lhos'
568 username: user
569 password: password
570 clustername: cluster1
571 iscsi_chap_enabled: false
572
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300573* Extra parameters for HP LeftHand:
Jakub Pavlika63764f2016-01-11 14:41:06 +0100574
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300575 .. code-block:: yaml
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100576
Kirill Bespalov01614c02017-07-31 17:06:09 +0300577 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100578
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300579* Cinder setup with Solidfire:
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100580
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300581 .. code-block:: yaml
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100582
583 cinder:
584 volume:
585 enabled: true
586 backend:
587 solidfire:
588 type_name: normal-storage
589 engine: solidfire
590 san_ip: 10.10.10.10
591 san_login: user
592 san_password: password
593 clustername: cluster1
594 sf_emulate_512: false
sergio9e6387e2018-02-19 21:13:14 +0200595 sf_api_port: 14443
596 host: ctl01
Aleksieiev, Oleksii224e8ae2018-07-13 09:43:43 -0700597 #for compatibility with old versions
598 sf_account_prefix: PREFIX
Filip Pytlounda2a0792015-10-06 16:28:31 +0200599
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300600* Cinder setup with Block Device driver:
Alexander Noskov023a0032017-06-16 09:31:59 +0200601
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300602 .. code-block:: yaml
Alexander Noskov023a0032017-06-16 09:31:59 +0200603
604 cinder:
605 volume:
606 enabled: true
607 backend:
608 bdd:
609 engine: bdd
610 enabled: true
611 type_name: bdd
612 devices:
613 - sdb
614 - sdc
615 - sdd
616
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300617* Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100618
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300619 .. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100620
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200621 cinder:
622 controller:
623 enabled: true
624 version: mitaka
625 backup:
626 engine: ceph
627 ceph_conf: "/etc/ceph/ceph.conf"
628 ceph_pool: backup
629 ceph_stripe_count: 0
630 ceph_stripe_unit: 0
631 ceph_user: cinder
632 ceph_chunk_size: 134217728
633 restore_discard_excess_bytes: false
634 volume:
635 enabled: true
636 version: mitaka
637 backup:
638 engine: ceph
639 ceph_conf: "/etc/ceph/ceph.conf"
640 ceph_pool: backup
641 ceph_stripe_count: 0
642 ceph_stripe_unit: 0
643 ceph_user: cinder
644 ceph_chunk_size: 134217728
645 restore_discard_excess_bytes: false
Kirill Bespalov01614c02017-07-31 17:06:09 +0300646
Dzmitry Stremkouskib454b1d2019-08-23 17:10:48 +0200647* Enable swift driver for cinder-backup service
648
649 .. code-block:: yaml
650
651 cinder:
652 controller:
653 backup:
654 engine: swift
655 swift:
656 driver: cinder.backup.drivers.swift
657 auth: per_user
658 auth_version: 3
659 block_size: 32768
660 object_size: 52428800
661 container: volumebackup
662 compression_algorithm: gzip
663 retry_attempts: 3
664 retry_backoff: 2
665 catalog_info: object-store:swift:internalURL
666 keystone_catalog_info: identity:Identity Service:publicURL
667 user: test
668 user_domain: localhost
669 key: AAAAAAAAAAA
670 tenant: admin
671 project_domain: localhost
672 project: service
673 enable_progress_timer: True
674 ca_cert_file: /etc/ssl/pki/ca.pem
675
676 cinder:
677 volume:
678 backup:
679 engine: swift
680 swift:
681 driver: cinder.backup.drivers.swift
682 auth: per_user
683 auth_version: 3
684 block_size: 32768
685 object_size: 52428800
686 container: volumebackup
687 compression_algorithm: gzip
688 retry_attempts: 3
689 retry_backoff: 2
690 catalog_info: object-store:swift:internalURL
691 keystone_catalog_info: identity:Identity Service:publicURL
692 user: test
693 user_domain: localhost
694 key: AAAAAAAAAAA
695 tenant: admin
696 project_domain: localhost
697 project: service
698 enable_progress_timer: True
699 ca_cert_file: /etc/ssl/pki/ca.pem
700
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300701* Auditing filter (CADF) enablement:
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100702
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300703 .. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100704
705 cinder:
706 controller:
707 audit:
708 enabled: true
709 ....
710 filter_factory: 'keystonemiddleware.audit:filter_factory'
711 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
712 ....
713 volume:
714 audit:
715 enabled: true
716 ....
717 filter_factory: 'keystonemiddleware.audit:filter_factory'
718 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
719
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300720* Cinder setup with custom availability zones:
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100721
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300722 .. code-block:: yaml
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100723
724 cinder:
725 controller:
726 default_availability_zone: my-default-zone
727 storage_availability_zone: my-custom-zone-name
728 cinder:
729 volume:
730 default_availability_zone: my-default-zone
731 storage_availability_zone: my-custom-zone-name
732
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300733 The ``default_availability_zone`` is used when a volume has been created,
734 without specifying a zone in the ``create`` request as this zone must exist
735 in your configuration.
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300736
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300737 The ``storage_availability_zone`` is an actual zone where the node belongs to
738 and must be specified per each node.
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300739
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300740* Cinder setup with custom non-admin volume query filters:
741
742 .. code-block:: yaml
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300743
744 cinder:
745 controller:
746 query_volume_filters:
747 - name
748 - status
749 - metadata
750 - availability_zone
751 - bootable
752
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300753* ``public_endpoint`` and ``osapi_volume_base_url``:
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300754
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300755 * ``public_endpoint``
756 Used for configuring versions endpoint
757 * ``osapi_volume_base_URL``
758 Used to present Cinder URL to users
Alexander Noskov62496fb2017-02-27 16:42:54 +0100759
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300760 These parameters can be useful when running Cinder under load balancer in
761 SSL.
762
763 .. code-block:: yaml
Alexander Noskov62496fb2017-02-27 16:42:54 +0100764
765 cinder:
766 controller:
767 public_endpoint_address: https://${_param:cluster_domain}:8776
768
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300769* Client role definition:
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100770
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300771 .. code-block:: yaml
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200772
773 cinder:
774 client:
775 enabled: true
776 identity:
777 host: 127.0.0.1
778 port: 35357
779 project: service
780 user: cinder
781 password: pwd
782 protocol: http
783 endpoint_type: internalURL
784 region_name: RegionOne
root08402652018-12-28 15:04:23 +0000785 connection_params:
786 connect_retries: 5
787 connect_retry_delay: 1
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200788 backend:
789 ceph:
790 type_name: standard-iops
791 engine: ceph
792 key:
793 conn_speed: fibre-10G
794
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300795* Barbican integration enablement:
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300796
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300797 .. code-block:: yaml
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300798
799 cinder:
800 controller:
801 barbican:
802 enabled: true
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200803
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300804* Keystone API version specification (v3 is default):
Oleg Iurchenko6fe8e5d2018-02-20 14:26:04 +0200805
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300806 .. code-block:: yaml
Oleg Iurchenko6fe8e5d2018-02-20 14:26:04 +0200807
808 cinder:
809 controller:
810 identity:
811 api_version: v2.0
812
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300813**Enhanced logging with logging.conf**
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400814
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300815By default ``logging.conf`` is disabled.
816You can enable per-binary ``logging.conf`` by setting the following
817parameters:
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400818
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300819* ``openstack_log_appender``
820 Set to ``true`` to enable ``log_config_append`` for all OpenStack
821 services
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400822
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300823* ``openstack_fluentd_handler_enabled``
824 Set to ``true`` to enable FluentHandler for all Openstack services
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400825
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300826* ``openstack_ossyslog_handler_enabled``
827 Set to ``true`` to enable OSSysLogHandler for all Openstack services
828
829Only WatchedFileHandler, OSSysLogHandler, and FluentHandler are available.
830
831To configure this functionality with pillar:
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400832
833.. code-block:: yaml
834
835 cinder:
836 controller:
837 logging:
838 log_appender: true
839 log_handlers:
840 watchedfile:
841 enabled: true
842 fluentd:
843 enabled: true
Oleksii Chupryn688ae092018-02-07 09:49:21 +0200844 ossyslog:
845 enabled: true
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400846
847 volume:
848 logging:
849 log_appender: true
850 log_handlers:
851 watchedfile:
852 enabled: true
853 fluentd:
854 enabled: true
Oleksii Chupryn688ae092018-02-07 09:49:21 +0200855 ossyslog:
856 enabled: true
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400857
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300858Enable x509 and ssl communication between Cinder and Galera cluster.
859---------------------
860By default communication between Cinder and Galera is unsecure.
Jakub Pavlikb513f132016-05-20 11:11:19 +0200861
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300862cinder:
863 volume:
864 database:
865 x509:
866 enabled: True
867 controller:
868 database:
869 x509:
870 enabled: True
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300871
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300872You able to set custom certificates in pillar:
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300873
874cinder:
875 controller:
876 database:
877 x509:
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300878 cacert: (certificate content)
879 cert: (certificate content)
880 key: (certificate content)
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300881 volume:
882 database:
883 x509:
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300884 cacert: (certificate content)
885 cert: (certificate content)
886 key: (certificate content)
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300887
888You can read more about it here:
889 https://docs.openstack.org/security-guide/databases/database-access-control.html
890
Oleksandr Bryndzii8f9e3882018-09-28 23:08:56 +0000891Cinder services on compute node with memcached caching and security strategy:
892
893.. code-block:: yaml
894
895 cinder:
896 volume:
897 enabled: true
898 ...
899 cache:
900 engine: memcached
901 members:
902 - host: 127.0.0.1
903 port: 11211
904 - host: 127.0.0.1
905 port: 11211
906 security:
907 enabled: true
908 strategy: ENCRYPT
909 secret_key: secret
910
911Cinder services on controller node with memcached caching and security strategy:
912
913.. code-block:: yaml
914
915 cinder:
916 controller:
917 enabled: true
918 ...
919 cache:
920 engine: memcached
921 members:
922 - host: 127.0.0.1
923 port: 11211
924 - host: 127.0.0.1
925 port: 11211
926 security:
927 enabled: true
928 strategy: ENCRYPT
929 secret_key: secret
930
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +0000931Cinder service supports to define iscsi_helper for lvm backend.
rootbb607002019-01-30 17:17:34 +0000932=======
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +0000933
934.. code-block:: yaml
935
936 cinder:
937 volume:
938 ...
939 backend:
940 lvm:
941 ...
942 engine: lvm
943 iscsi_helper: tgtadm
944
945Cinder service supports to define scheduler_default_filters. Which filter class names
946to use for filtering hosts when not specified in the request.
947
948.. code-block:: yaml
949
950 cinder:
951 volume:
952 ...
953 scheduler_default_filters: (filters)
954
955 cinder:
956 controller:
957 ...
958 scheduler_default_filters: (filters)
rootbb607002019-01-30 17:17:34 +0000959=======
960
961* Cinder database connection setup:
962
963.. code-block:: yaml
964
965 cinder:
966 controller:
967 enabled: True
968 ...
969 database:
970 idle_timeout: 280
971 max_pool_size: 30
972 max_retries: '-1'
973 max_overflow: 40
974 volume:
975 enabled: True
976 ...
977 database:
978 idle_timeout: 280
979 max_pool_size: 30
980 max_retries: '-1'
981 max_overflow: 40
982
Oleksandr Bryndzii3beb0852019-02-27 16:44:01 +0200983Configure cinder to use service user tokens:
984========
985Long-running operations such as snapshot can sometimes overrun the expiry of the user token.
986In such cases, post operations such as cleaning up after a snapshot can fail when the
987cinder service needs to cleanup resources.
988
989This pillar enables cinder to use service user tokens to supplement the regular user token
990used to initiate the operation. The identity service (keystone) will then authenticate
991a request using the service user token if the user token has already expired.
992
993.. code-block:: yaml
994
995 cinder:
996 controller:
997 enabled: True
998 ...
999 service_user:
1000 enabled: True
1001 auth_type: password
1002 user_domain_id: default
1003 project_domain_id: default
1004 project_name: service
1005 username: cinder
1006 password: pswd
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +00001007
Oleksandr Bryndzii95b4b6b2019-04-24 11:22:39 +03001008Change default resource quotas using configmap template settings
1009========
1010
1011.. code-block:: yaml
1012
1013 cinder:
1014 controller:
1015 configmap:
1016 DEFAULT:
1017 quota_volumes: 15
1018 quota_snapshots: 15
1019 quota_consistencygroups: 15
1020 quota_groups: 15
1021 quota_gigabytes: 1500
1022 quota_backups: 15
1023 quota_backup_gigabytes: 1500
1024 reservation_expire: 86400
1025 reservation_clean_interval: 86400
1026 until_refresh: 0
1027 max_age: 0
1028 quota_driver: cinder.quota.DbQuotaDriver
1029 use_default_quota_class: true
1030 per_volume_size_limit: 100
1031
Martin Polreicha0958102019-12-11 16:49:29 +01001032
1033Change default service policy configuration:
1034============================================
1035
1036.. code-block:: yaml
1037
1038 cinder:
1039 controller:
1040 policy:
1041 context_is_admin: 'role:admin'
1042 admin_or_owner: 'is_admin:True or project_id:%(project_id)s'
1043 # Add key without value to remove line from policy.json
1044 volume:create:
1045
1046
Vasyl Saienko79ecd552018-09-10 10:31:21 +00001047Upgrades
1048========
1049
1050Each openstack formula provide set of phases (logical bloks) that will help to
1051build flexible upgrade orchestration logic for particular components. The list
1052of phases and theirs descriptions are listed in table below:
1053
1054+-------------------------------+------------------------------------------------------+
1055| State | Description |
1056+===============================+======================================================+
1057| <app>.upgrade.service_running | Ensure that all services for particular application |
1058| | are enabled for autostart and running |
1059+-------------------------------+------------------------------------------------------+
1060| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1061| | disabled for autostart and dead |
1062+-------------------------------+------------------------------------------------------+
1063| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
1064| | are installed to latest available version. |
1065| | This will not upgrade data plane packages like qemu |
1066| | and openvswitch as usually minimal required version |
1067| | in openstack services is really old. The data plane |
1068| | packages should be upgraded separately by `apt-get |
1069| | upgrade` or `apt-get dist-upgrade` |
1070| | Applying this state will not autostart service. |
1071+-------------------------------+------------------------------------------------------+
1072| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1073+-------------------------------+------------------------------------------------------+
1074| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1075| | cloud before running upgrade. |
1076| | Only non destructive actions will be applied during |
1077| | this phase. Perform service built in service check |
1078| | like (keystone-manage doctor and nova-status upgrade)|
1079+-------------------------------+------------------------------------------------------+
1080| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1081| | phase resources will be gracefully removed from |
1082| | current node if it is allowed. Services for upgraded |
1083| | application will be set to admin disabled state to |
1084| | make sure node will not participate in resources |
1085| | scheduling. For example on gtw nodes this will set |
1086| | all agents to admin disable state and will move all |
1087| | routers to other agents. |
1088+-------------------------------+------------------------------------------------------+
1089| <app>.upgrade.upgrade | This state will basically upgrade application on |
1090| | particular target. Stop services, render |
1091| | configuration, install new packages, run offline |
1092| | dbsync (for ctl), start services. Data plane should |
1093| | not be affected, only OpenStack python services. |
1094+-------------------------------+------------------------------------------------------+
1095| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1096+-------------------------------+------------------------------------------------------+
1097| <app>.upgrade.post | This phase should be launched only when upgrade of |
1098| | the cloud is completed. Cleanup temporary files, |
1099| | perform other post upgrade tasks. |
1100+-------------------------------+------------------------------------------------------+
1101| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1102| | operations, verify do not have dead network |
1103| | agents/compute services) |
1104+-------------------------------+------------------------------------------------------+
Oleksandr Pidrepnyi57837bf2019-06-10 11:23:42 +03001105
1106
1107Don't manage services scheduling while upgrade
1108----------------------------------------------
1109For some special cases, don't manage services scheduling both enable and disable
1110before and after upgrade procedure.
1111
1112If 'manage_service_maintenance: true' or not present - default behavior, disable services
1113before upgrade and enable it after upgrade.
1114If 'manage_service_maintenance: false' - don't disable and don't enable upgraded services
1115scheduling before and after upgrade.
1116
1117.. code-block:: yaml
1118
1119 cinder:
1120 upgrade:
1121 manage_service_maintenance: false