blob: e9eb4cfacea7373680271caca67f239bbb73dbdf [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
369 devices:
370 - 172.18.1.2:/vol_1
371 - 172.18.1.2:/vol_2
372 - 172.18.1.2:/vol_3
373 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200374 linux:
375 system:
376 package:
377 nfs-common:
378 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400379
380
Filip Pytlounda2a0792015-10-06 16:28:31 +0200381Cinder setup with Hitachi VPS
382
383.. code-block:: yaml
384
385 cinder:
386 controller:
387 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100388 backend:
389 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100390 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100391 backend: hus100_backend
392 engine: hitachi_vsp
393 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200394
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100395Cinder setup with Hitachi VPS with defined ldev range
396
397.. code-block:: yaml
398
399 cinder:
400 controller:
401 enabled: true
402 backend:
403 hus100_backend:
404 type_name: HUS100
405 backend: hus100_backend
406 engine: hitachi_vsp
407 connection: FC
408 ldev_range: 0-1000
409
Filip Pytlounda2a0792015-10-06 16:28:31 +0200410Cinder setup with CEPH
411
412.. code-block:: yaml
413
414 cinder:
415 controller:
416 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100417 backend:
418 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100419 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100420 backend: ceph_backend
421 pool: volumes
422 engine: ceph
423 user: cinder
424 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
425 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Michel Nederlofb43a4872017-06-20 09:36:47 +0200426 report_discard_supported: True
Filip Pytlounda2a0792015-10-06 16:28:31 +0200427
428http://ceph.com/docs/master/rbd/rbd-openstack/
429
430
431Cinder setup with HP3par
432
433.. code-block:: yaml
434
435 cinder:
436 controller:
437 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100438 backend:
439 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100440 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100441 backend: hp3par_backend
442 user: hp3paruser
443 password: something
444 url: http://10.10.10.10/api/v1
445 cpg: OpenStackCPG
446 host: 10.10.10.10
447 login: hp3paradmin
448 sanpassword: something
449 debug: True
450 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200451
452Cinder setup with Fujitsu Eternus
453
454.. code-block:: yaml
455
456 cinder:
457 volume:
458 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100459 backend:
460 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100461 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100462 engine: fujitsu
463 pool: 10kThinPro
464 host: 192.168.0.1
465 port: 5988
466 user: username
467 password: pass
468 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100469 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100470 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100471 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100472 pool: SAS10K
473 engine: fujitsu
474 host: 192.168.0.1
475 port: 5988
476 user: username
477 password: pass
478 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100479 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200480
Jakub Pavlik9703c602015-10-15 18:52:47 +0200481Cinder setup with IBM GPFS filesystem
482
483.. code-block:: yaml
484
485 cinder:
486 volume:
487 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100488 backend:
489 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100490 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100491 engine: gpfs
492 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100493 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100494 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100495 engine: gpfs
496 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Kirill Bespalov01614c02017-07-31 17:06:09 +0300497
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100498Cinder setup with HP LeftHand
499
500.. code-block:: yaml
501
502 cinder:
503 volume:
504 enabled: true
505 backend:
506 HP-LeftHand:
507 type_name: normal-storage
508 engine: hp_lefthand
509 api_url: 'https://10.10.10.10:8081/lhos'
510 username: user
511 password: password
512 clustername: cluster1
513 iscsi_chap_enabled: false
514
Jakub Pavlika63764f2016-01-11 14:41:06 +0100515Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100516
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100517.. code-block:: yaml
518
Kirill Bespalov01614c02017-07-31 17:06:09 +0300519 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100520
marcodaa52fa2016-01-25 23:49:50 +0100521Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100522
523.. code-block:: yaml
524
525 cinder:
526 volume:
527 enabled: true
528 backend:
529 solidfire:
530 type_name: normal-storage
531 engine: solidfire
532 san_ip: 10.10.10.10
533 san_login: user
534 san_password: password
535 clustername: cluster1
536 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200537
Alexander Noskov023a0032017-06-16 09:31:59 +0200538Cinder setup with Block Device driver
539
540.. code-block:: yaml
541
542 cinder:
543 volume:
544 enabled: true
545 backend:
546 bdd:
547 engine: bdd
548 enabled: true
549 type_name: bdd
550 devices:
551 - sdb
552 - sdc
553 - sdd
554
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200555Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100556
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200557.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100558
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200559 cinder:
560 controller:
561 enabled: true
562 version: mitaka
563 backup:
564 engine: ceph
565 ceph_conf: "/etc/ceph/ceph.conf"
566 ceph_pool: backup
567 ceph_stripe_count: 0
568 ceph_stripe_unit: 0
569 ceph_user: cinder
570 ceph_chunk_size: 134217728
571 restore_discard_excess_bytes: false
572 volume:
573 enabled: true
574 version: mitaka
575 backup:
576 engine: ceph
577 ceph_conf: "/etc/ceph/ceph.conf"
578 ceph_pool: backup
579 ceph_stripe_count: 0
580 ceph_stripe_unit: 0
581 ceph_user: cinder
582 ceph_chunk_size: 134217728
583 restore_discard_excess_bytes: false
Kirill Bespalov01614c02017-07-31 17:06:09 +0300584
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100585Enable auditing filter, ie: CADF
586
587.. code-block:: yaml
588
589 cinder:
590 controller:
591 audit:
592 enabled: true
593 ....
594 filter_factory: 'keystonemiddleware.audit:filter_factory'
595 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
596 ....
597 volume:
598 audit:
599 enabled: true
600 ....
601 filter_factory: 'keystonemiddleware.audit:filter_factory'
602 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
603
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100604
605Cinder setup with custom availability zones:
606
607.. code-block:: yaml
608
609 cinder:
610 controller:
611 default_availability_zone: my-default-zone
612 storage_availability_zone: my-custom-zone-name
613 cinder:
614 volume:
615 default_availability_zone: my-default-zone
616 storage_availability_zone: my-custom-zone-name
617
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300618
619Cinder setup with custom non-admin volume query filters:
620
621.. code-block:: yaml
622
623 cinder:
624 controller:
625 query_volume_filters:
626 - name
627 - status
628 - metadata
629 - availability_zone
630 - bootable
631
632
Alexander Noskov62496fb2017-02-27 16:42:54 +0100633public_endpoint and osapi_volume_base_url parameters:
634"public_endpoint" is used for configuring versions endpoint,
635"osapi_volume_base_URL" is used to present Cinder URL to users.
636They are useful when running Cinder under load balancer in SSL.
637
638.. code-block:: yaml
639
640 cinder:
641 controller:
642 public_endpoint_address: https://${_param:cluster_domain}:8776
643
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100644The 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)
645The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
646Check the documentation of OpenStack for more information
647
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200648
649Client role
650
651.. code-block:: yaml
652
653 cinder:
654 client:
655 enabled: true
656 identity:
657 host: 127.0.0.1
658 port: 35357
659 project: service
660 user: cinder
661 password: pwd
662 protocol: http
663 endpoint_type: internalURL
664 region_name: RegionOne
665 backend:
666 ceph:
667 type_name: standard-iops
668 engine: ceph
669 key:
670 conn_speed: fibre-10G
671
672
Jakub Pavlikb513f132016-05-20 11:11:19 +0200673Documentation and Bugs
674============================
675
676To learn how to deploy OpenStack Salt, consult the documentation available
677online at:
678
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100679https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200680
681In the unfortunate event that bugs are discovered, they should be reported to
682the appropriate bug tracker. If you obtained the software from a 3rd party
683operating system vendor, it is often wise to use their own bug tracker for
684reporting problems. In all other cases use the master OpenStack bug tracker,
685available at:
686
687 http://bugs.launchpad.net/openstack-salt
688
689Developers wishing to work on the OpenStack Salt project should always base
690their work on the latest formulas code, available from the master GIT
691repository at:
692
693 https://git.openstack.org/cgit/openstack/salt-formula-cinder
694
695Developers should also join the discussion on the IRC list, at:
696
697 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100698
699Documentation and Bugs
700======================
701
702To learn how to install and update salt-formulas, consult the documentation
703available online at:
704
705 http://salt-formulas.readthedocs.io/
706
707In the unfortunate event that bugs are discovered, they should be reported to
708the appropriate issue tracker. Use Github issue tracker for specific salt
709formula:
710
711 https://github.com/salt-formulas/salt-formula-cinder/issues
712
713For feature requests, bug reports or blueprints affecting entire ecosystem,
714use Launchpad salt-formulas project:
715
716 https://launchpad.net/salt-formulas
717
718You can also join salt-formulas-users team and subscribe to mailing list:
719
720 https://launchpad.net/~salt-formulas-users
721
722Developers wishing to work on the salt-formulas projects should always base
723their work on master branch and submit pull request against specific formula.
724
725 https://github.com/salt-formulas/salt-formula-cinder
726
727Any questions or feedback is always welcome so feel free to join our IRC
728channel:
729
730 #salt-formulas @ irc.freenode.net