blob: 99a4ffef28b45998ef2e7075189a829654deccc8 [file] [log] [blame]
Filip Pytlounda2a0792015-10-06 16:28:31 +02001==============================
2Openstack Cinder Block Storage
3==============================
4
Jakub Pavlikb513f132016-05-20 11:11:19 +02005Cinder provides an infrastructure for managing volumes in OpenStack. It was
6originally a Nova component called nova-volume, but has become an independent
7project since the Folsom release.
Filip Pytlounda2a0792015-10-06 16:28:31 +02008
9Sample pillars
10==============
11
Jakub Pavlikb513f132016-05-20 11:11:19 +020012New structure divides cinder-api,cinder-scheduler to role controller and
13cinder-volume to role volume.
Filip Pytlounda2a0792015-10-06 16:28:31 +020014
15.. code-block:: yaml
16
17 cinder:
18 controller:
19 enabled: true
20 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030021 cinder_uid: 304
22 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030023 nas_secure_file_permissions: false
24 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030025 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
26 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010027 default_volume_type: 7k2SaS
Damian Szeluga0918f5a2017-04-19 12:26:56 +020028 availability_zone_fallback: True
Filip Pytlounda2a0792015-10-06 16:28:31 +020029 database:
30 engine: mysql
31 host: 127.0.0.1
32 port: 3306
33 name: cinder
34 user: cinder
35 password: pwd
36 identity:
37 engine: keystone
38 host: 127.0.0.1
39 port: 35357
40 tenant: service
41 user: cinder
42 password: pwd
43 message_queue:
44 engine: rabbitmq
45 host: 127.0.0.1
46 port: 5672
47 user: openstack
48 password: pwd
49 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010050 backend:
51 7k2_SAS:
52 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010053 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010054 host: 192.168.0.1
55 port: 22
56 user: username
57 password: pass
58 connection: FC/iSCSI
59 multihost: true
60 multipath: true
61 pool: SAS7K2
Kirill Bespalov01614c02017-07-31 17:06:09 +030062 audit:
Petr Michaleca1c7ff12016-11-29 16:32:50 +010063 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010064 osapi_max_limit: 500
Filip Pytlounda2a0792015-10-06 16:28:31 +020065
66 cinder:
67 volume:
68 enabled: true
69 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030070 cinder_uid: 304
71 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030072 nas_secure_file_permissions: false
73 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030074 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
75 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010076 default_volume_type: 7k2SaS
Filip Pytlounda2a0792015-10-06 16:28:31 +020077 database:
78 engine: mysql
79 host: 127.0.0.1
80 port: 3306
81 name: cinder
82 user: cinder
83 password: pwd
84 identity:
85 engine: keystone
86 host: 127.0.0.1
87 port: 35357
88 tenant: service
89 user: cinder
90 password: pwd
91 message_queue:
92 engine: rabbitmq
93 host: 127.0.0.1
94 port: 5672
95 user: openstack
96 password: pwd
97 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010098 backend:
99 7k2_SAS:
100 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100101 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100102 host: 192.168.0.1
103 port: 22
104 user: username
105 password: pass
106 connection: FC/iSCSI
107 multihost: true
108 multipath: true
109 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100110 audit:
111 enabled: false
Ondrej Smola74af21b2017-04-28 12:30:24 +0200112
113
114Enable CORS parameters
115
116.. code-block:: yaml
117
118 cinder:
119 controller:
120 cors:
121 allowed_origin: https:localhost.local,http:localhost.local
122 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
123 allow_methods: GET,PUT,POST,DELETE,PATCH
124 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
125 allow_credentials: True
126 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200127
128Client-side RabbitMQ HA setup for controller
129
130.. code-block:: yaml
131
132 cinder:
133 controller:
134 ....
135 message_queue:
136 engine: rabbitmq
137 members:
138 - host: 10.0.16.1
139 - host: 10.0.16.2
140 - host: 10.0.16.3
141 user: openstack
142 password: pwd
143 virtual_host: '/openstack'
144 ....
145
146Client-side RabbitMQ HA setup for volume component
147
148.. code-block:: yaml
149
150 cinder:
151 volume:
152 ....
153 message_queue:
154 engine: rabbitmq
155 members:
156 - host: 10.0.16.1
157 - host: 10.0.16.2
158 - host: 10.0.16.3
159 user: openstack
160 password: pwd
161 virtual_host: '/openstack'
162 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200163
Kirill Bespalov01614c02017-07-31 17:06:09 +0300164
165**Client-side RabbitMQ TLS configuration.**
166
167|
168
169To enable TLS for oslo.messaging you need to provide the CA certificate.
170By default system-wide CA certs are used. Nothing should be specified except `ssl.enabled`.
171
172.. code-block:: yaml
173
174 cinder:
175 controller or volume:
176 ....
177 message_queue:
178 ssl:
179 enabled: True
180
181
182
183Use `cacert_file` option to specify the CA-cert file path explicitly:
184
185.. code-block:: yaml
186
187 cinder:
188 controller or volume:
189 ....
190 message_queue:
191 ssl:
192 enabled: True
193 cacert_file: /etc/ssl/rabbitmq-ca.pem
194
195To manage content of the `cacert_file` use the `cacert` option:
196
197.. code-block:: yaml
198
199 cinder:
200 controller or volume:
201 ....
202 message_queue:
203 ssl:
204 enabled: True
205 cacert: |
206
207 -----BEGIN CERTIFICATE-----
208 ...
209 -----END CERTIFICATE-------
210
211 cacert_file: /etc/openstack/rabbitmq-ca.pem
212
213
214Notice:
215 * The `message_queue.port` is set to **5671** (AMQPS) by default if `ssl.enabled=True`.
216 * Use `message_queue.ssl.version` if you need to specify protocol version. By default is TLSv1 for python < 2.7.9 and TLSv1_2 for version above.
217
218
219
Filip Pytlounda2a0792015-10-06 16:28:31 +0200220Cinder setup with zeroing deleted volumes
221
Alexander Noskov62496fb2017-02-27 16:42:54 +0100222.. code-block:: yaml
223
Filip Pytlounda2a0792015-10-06 16:28:31 +0200224 cinder:
225 controller:
226 enabled: true
227 wipe_method: zero
228 ...
229
230Cinder setup with shreding deleted volumes
231
232.. code-block:: yaml
233
234 cinder:
235 controller:
236 enabled: true
237 wipe_method: shred
238 ...
239
Dmitry Ukov56c29072017-05-04 16:48:29 +0400240Configuration of policy.json file
241
242.. code-block:: yaml
243
244 cinder:
245 controller:
246 ....
247 policy:
248 'volume:delete': 'rule:admin_or_owner'
249 # Add key without value to remove line from policy.json
250 'volume:extend':
251
Filip Pytlounda2a0792015-10-06 16:28:31 +0200252
253Default Cinder setup with iSCSI target
254
255.. code-block:: yaml
256
257 cinder:
258 controller:
259 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200260 version: mitaka
261 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200262 database:
263 engine: mysql
264 host: 127.0.0.1
265 port: 3306
266 name: cinder
267 user: cinder
268 password: pwd
269 identity:
270 engine: keystone
271 host: 127.0.0.1
272 port: 35357
273 tenant: service
274 user: cinder
275 password: pwd
276 message_queue:
277 engine: rabbitmq
278 host: 127.0.0.1
279 port: 5672
280 user: openstack
281 password: pwd
282 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100283 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200284 lvmdriver-1:
285 engine: lvm
286 type_name: lvmdriver-1
287 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200288
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100289Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200290
291.. code-block:: yaml
292
293 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100294 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200295 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100296 backend:
297 7k2_SAS:
298 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100299 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100300 host: 192.168.0.1
301 port: 22
302 user: username
303 password: pass
304 connection: FC/iSCSI
305 multihost: true
306 multipath: true
307 pool: SAS7K2
308 10k_SAS:
309 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100310 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100311 host: 192.168.0.1
312 port: 22
313 user: username
314 password: pass
315 connection: FC/iSCSI
316 multihost: true
317 multipath: true
318 pool: SAS10K
319 15k_SAS:
320 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100321 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100322 host: 192.168.0.1
323 port: 22
324 user: username
325 password: pass
326 connection: FC/iSCSI
327 multihost: true
328 multipath: true
329 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200330
Jiri Broulik88548db2017-03-31 12:21:37 +0200331
332Cinder setup with NFS
333
334.. code-block:: yaml
335
336 cinder:
337 controller:
338 enabled: true
339 default_volume_type: nfs-driver
340 backend:
341 nfs-driver:
342 engine: nfs
343 type_name: nfs-driver
344 volume_group: cinder-volume
345 path: /var/lib/cinder/nfs
346 devices:
347 - 172.16.10.110:/var/nfs/cinder
348 options: rw,sync
349
350
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400351Cinder setup with NetApp
352
353.. code-block:: yaml
354
355 cinder:
356 controller:
357 backend:
358 netapp:
359 engine: netapp
360 type_name: netapp
361 user: openstack
362 vserver: vm1
363 server_hostname: 172.18.2.3
364 password: password
365 storage_protocol: nfs
366 transport_type: https
367 lun_space_reservation: enabled
368 use_multipath_for_image_xfer: True
Dmitry Stremkouskiffa53c02017-09-15 19:47:21 +0300369 nas_secure_file_operations: false
370 nas_secure_file_permissions: false
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400371 devices:
372 - 172.18.1.2:/vol_1
373 - 172.18.1.2:/vol_2
374 - 172.18.1.2:/vol_3
375 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200376 linux:
377 system:
378 package:
379 nfs-common:
380 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400381
382
Filip Pytlounda2a0792015-10-06 16:28:31 +0200383Cinder setup with Hitachi VPS
384
385.. code-block:: yaml
386
387 cinder:
388 controller:
389 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100390 backend:
391 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100392 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100393 backend: hus100_backend
394 engine: hitachi_vsp
395 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200396
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100397Cinder setup with Hitachi VPS with defined ldev range
398
399.. code-block:: yaml
400
401 cinder:
402 controller:
403 enabled: true
404 backend:
405 hus100_backend:
406 type_name: HUS100
407 backend: hus100_backend
408 engine: hitachi_vsp
409 connection: FC
410 ldev_range: 0-1000
411
Filip Pytlounda2a0792015-10-06 16:28:31 +0200412Cinder setup with CEPH
413
414.. code-block:: yaml
415
416 cinder:
417 controller:
418 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100419 backend:
420 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100421 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100422 backend: ceph_backend
423 pool: volumes
424 engine: ceph
425 user: cinder
426 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
427 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Michel Nederlofb43a4872017-06-20 09:36:47 +0200428 report_discard_supported: True
Filip Pytlounda2a0792015-10-06 16:28:31 +0200429
430http://ceph.com/docs/master/rbd/rbd-openstack/
431
432
433Cinder setup with HP3par
434
435.. code-block:: yaml
436
437 cinder:
438 controller:
439 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100440 backend:
441 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100442 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100443 backend: hp3par_backend
444 user: hp3paruser
445 password: something
446 url: http://10.10.10.10/api/v1
447 cpg: OpenStackCPG
448 host: 10.10.10.10
449 login: hp3paradmin
450 sanpassword: something
451 debug: True
452 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200453
454Cinder setup with Fujitsu Eternus
455
456.. code-block:: yaml
457
458 cinder:
459 volume:
460 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100461 backend:
462 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100463 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100464 engine: fujitsu
465 pool: 10kThinPro
466 host: 192.168.0.1
467 port: 5988
468 user: username
469 password: pass
470 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100471 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100472 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100473 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100474 pool: SAS10K
475 engine: fujitsu
476 host: 192.168.0.1
477 port: 5988
478 user: username
479 password: pass
480 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100481 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200482
Jakub Pavlik9703c602015-10-15 18:52:47 +0200483Cinder setup with IBM GPFS filesystem
484
485.. code-block:: yaml
486
487 cinder:
488 volume:
489 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100490 backend:
491 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100492 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100493 engine: gpfs
494 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100495 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100496 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100497 engine: gpfs
498 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Kirill Bespalov01614c02017-07-31 17:06:09 +0300499
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100500Cinder setup with HP LeftHand
501
502.. code-block:: yaml
503
504 cinder:
505 volume:
506 enabled: true
507 backend:
508 HP-LeftHand:
509 type_name: normal-storage
510 engine: hp_lefthand
511 api_url: 'https://10.10.10.10:8081/lhos'
512 username: user
513 password: password
514 clustername: cluster1
515 iscsi_chap_enabled: false
516
Jakub Pavlika63764f2016-01-11 14:41:06 +0100517Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100518
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100519.. code-block:: yaml
520
Kirill Bespalov01614c02017-07-31 17:06:09 +0300521 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100522
marcodaa52fa2016-01-25 23:49:50 +0100523Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100524
525.. code-block:: yaml
526
527 cinder:
528 volume:
529 enabled: true
530 backend:
531 solidfire:
532 type_name: normal-storage
533 engine: solidfire
534 san_ip: 10.10.10.10
535 san_login: user
536 san_password: password
537 clustername: cluster1
538 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200539
Alexander Noskov023a0032017-06-16 09:31:59 +0200540Cinder setup with Block Device driver
541
542.. code-block:: yaml
543
544 cinder:
545 volume:
546 enabled: true
547 backend:
548 bdd:
549 engine: bdd
550 enabled: true
551 type_name: bdd
552 devices:
553 - sdb
554 - sdc
555 - sdd
556
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200557Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100558
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200559.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100560
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200561 cinder:
562 controller:
563 enabled: true
564 version: mitaka
565 backup:
566 engine: ceph
567 ceph_conf: "/etc/ceph/ceph.conf"
568 ceph_pool: backup
569 ceph_stripe_count: 0
570 ceph_stripe_unit: 0
571 ceph_user: cinder
572 ceph_chunk_size: 134217728
573 restore_discard_excess_bytes: false
574 volume:
575 enabled: true
576 version: mitaka
577 backup:
578 engine: ceph
579 ceph_conf: "/etc/ceph/ceph.conf"
580 ceph_pool: backup
581 ceph_stripe_count: 0
582 ceph_stripe_unit: 0
583 ceph_user: cinder
584 ceph_chunk_size: 134217728
585 restore_discard_excess_bytes: false
Kirill Bespalov01614c02017-07-31 17:06:09 +0300586
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100587Enable auditing filter, ie: CADF
588
589.. code-block:: yaml
590
591 cinder:
592 controller:
593 audit:
594 enabled: true
595 ....
596 filter_factory: 'keystonemiddleware.audit:filter_factory'
597 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
598 ....
599 volume:
600 audit:
601 enabled: true
602 ....
603 filter_factory: 'keystonemiddleware.audit:filter_factory'
604 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
605
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100606
607Cinder setup with custom availability zones:
608
609.. code-block:: yaml
610
611 cinder:
612 controller:
613 default_availability_zone: my-default-zone
614 storage_availability_zone: my-custom-zone-name
615 cinder:
616 volume:
617 default_availability_zone: my-default-zone
618 storage_availability_zone: my-custom-zone-name
619
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300620
621Cinder setup with custom non-admin volume query filters:
622
623.. code-block:: yaml
624
625 cinder:
626 controller:
627 query_volume_filters:
628 - name
629 - status
630 - metadata
631 - availability_zone
632 - bootable
633
634
Alexander Noskov62496fb2017-02-27 16:42:54 +0100635public_endpoint and osapi_volume_base_url parameters:
636"public_endpoint" is used for configuring versions endpoint,
637"osapi_volume_base_URL" is used to present Cinder URL to users.
638They are useful when running Cinder under load balancer in SSL.
639
640.. code-block:: yaml
641
642 cinder:
643 controller:
644 public_endpoint_address: https://${_param:cluster_domain}:8776
645
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100646The default availability zone is used when a volume has been created, without specifying a zone in the create request. (this zone must exist in your configuration obviously)
647The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
648Check the documentation of OpenStack for more information
649
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200650
651Client role
652
653.. code-block:: yaml
654
655 cinder:
656 client:
657 enabled: true
658 identity:
659 host: 127.0.0.1
660 port: 35357
661 project: service
662 user: cinder
663 password: pwd
664 protocol: http
665 endpoint_type: internalURL
666 region_name: RegionOne
667 backend:
668 ceph:
669 type_name: standard-iops
670 engine: ceph
671 key:
672 conn_speed: fibre-10G
673
674
Jakub Pavlikb513f132016-05-20 11:11:19 +0200675Documentation and Bugs
676============================
677
678To learn how to deploy OpenStack Salt, consult the documentation available
679online at:
680
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100681https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200682
683In the unfortunate event that bugs are discovered, they should be reported to
684the appropriate bug tracker. If you obtained the software from a 3rd party
685operating system vendor, it is often wise to use their own bug tracker for
686reporting problems. In all other cases use the master OpenStack bug tracker,
687available at:
688
689 http://bugs.launchpad.net/openstack-salt
690
691Developers wishing to work on the OpenStack Salt project should always base
692their work on the latest formulas code, available from the master GIT
693repository at:
694
695 https://git.openstack.org/cgit/openstack/salt-formula-cinder
696
697Developers should also join the discussion on the IRC list, at:
698
699 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100700
701Documentation and Bugs
702======================
703
704To learn how to install and update salt-formulas, consult the documentation
705available online at:
706
707 http://salt-formulas.readthedocs.io/
708
709In the unfortunate event that bugs are discovered, they should be reported to
710the appropriate issue tracker. Use Github issue tracker for specific salt
711formula:
712
713 https://github.com/salt-formulas/salt-formula-cinder/issues
714
715For feature requests, bug reports or blueprints affecting entire ecosystem,
716use Launchpad salt-formulas project:
717
718 https://launchpad.net/salt-formulas
719
720You can also join salt-formulas-users team and subscribe to mailing list:
721
722 https://launchpad.net/~salt-formulas-users
723
724Developers wishing to work on the salt-formulas projects should always base
725their work on master branch and submit pull request against specific formula.
726
727 https://github.com/salt-formulas/salt-formula-cinder
728
729Any questions or feedback is always welcome so feel free to join our IRC
730channel:
731
732 #salt-formulas @ irc.freenode.net