blob: 528d8a6896b26f81d759b86065a7d4dd9c7e6bbb [file] [log] [blame]
Jakub Pavlik78517fb2016-10-20 14:53:34 +02001{%- from "cinder/map.jinja" import controller with context %}
2
3[DEFAULT]
4rootwrap_config = /etc/cinder/rootwrap.conf
5api_paste_confg = /etc/cinder/api-paste.ini
6
7iscsi_helper = tgtadm
8volume_name_template = volume-%s
9#volume_group = cinder
10
11verbose = True
12
13osapi_volume_workers = {{ controller.get('volume_workers', '4') }}
14
15auth_strategy = keystone
16
17state_path = /var/lib/cinder
18
19use_syslog=False
20
21glance_num_retries=0
22debug=False
23
24os_region_name={{ controller.identity.region }}
Damian Szeluga0918f5a2017-04-19 12:26:56 +020025allow_availability_zone_fallback = {{ controller.get('availability_zone_fallback', True) }}
Jakub Pavlik78517fb2016-10-20 14:53:34 +020026
27#glance_api_ssl_compression=False
28#glance_api_insecure=False
29
30osapi_volume_listen={{ controller.osapi.host }}
31
Jakub Pavlik196a21c2017-04-03 22:10:05 +020032glance_api_servers = http://{{ controller.glance.host }}:{{ controller.glance.port }}
33
Jakub Pavlik78517fb2016-10-20 14:53:34 +020034glance_host={{ controller.glance.host }}
35glance_port={{ controller.glance.port }}
36glance_api_version=2
37
Jakub Pavlik196a21c2017-04-03 22:10:05 +020038enable_v3_api = True
39
40os_privileged_user_name={{ controller.identity.user }}
41os_privileged_user_password={{ controller.identity.password }}
42os_privileged_user_tenant={{ controller.identity.tenant }}
43os_privileged_user_auth_url=http://{{ controller.identity.host }}:5000/v3/
44
Jakub Pavlik78517fb2016-10-20 14:53:34 +020045volume_backend_name=DEFAULT
46
47{%- if controller.backend is defined %}
48
49default_volume_type={{ controller.default_volume_type }}
50
51enabled_backends={% for backend_name, backend in controller.get('backend', {}).iteritems() %}{{ backend_name }}{% if not loop.last %},{% endif %}{% endfor %}
52
53{%- endif %}
54
Michel Nederlof95a73eb2017-02-06 14:38:17 +010055{%- if controller.storage_availability_zone is defined %}
56storage_availability_zone={{controller.storage_availability_zone}}
57{%- endif %}
58
59{%- if controller.default_availability_zone is defined %}
60default_availability_zone={{controller.default_availability_zone}}
61{%- endif %}
62
63
Jakub Pavlik78517fb2016-10-20 14:53:34 +020064#RPC response timeout recommended by Hitachi
65rpc_response_timeout=3600
66
67#Rabbit
68rpc_backend=rabbit
69control_exchange=cinder
70
71
72volume_clear={{ controller.wipe_method }}
73
74
75
76volume_name_template = volume-%s
77
78#volume_group = vg_cinder_volume
79
80volumes_dir = /var/lib/cinder/volumes
81log_dir=/var/log/cinder
82
83# Use syslog for logging. (boolean value)
84#use_syslog=false
85
86use_syslog=false
87verbose=True
88lock_path=/var/lock/cinder
89
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +030090{%- if controller.query_volume_filters is defined %}
91query_volume_filters = {{ controller.query_volume_filters|join(",") }}
92{%- endif %}
93
Jakub Pavlik78517fb2016-10-20 14:53:34 +020094nova_catalog_admin_info = compute:nova:adminURL
Jakub Pavlik196a21c2017-04-03 22:10:05 +020095nova_catalog_info = compute:nova:{{ controller.identity.get('endpoint_type', 'publicURL') }}
Jakub Pavlik78517fb2016-10-20 14:53:34 +020096
97osapi_volume_extension = cinder.api.contrib.standard_extensions
98
Jakub Pavlik196a21c2017-04-03 22:10:05 +020099{%- if controller.message_queue.members is defined %}
100transport_url = rabbit://{% for member in controller.message_queue.members -%}
Jakub Pavlik3f092dd2017-04-06 21:31:34 +0200101 {{ controller.message_queue.user }}:{{ controller.message_queue.password }}@{{ member.host }}:{{ member.get('port', 5672) }}
Jakub Pavlik196a21c2017-04-03 22:10:05 +0200102 {%- if not loop.last -%},{%- endif -%}
Jakub Pavlik196a21c2017-04-03 22:10:05 +0200103 {%- endfor -%}
Jakub Pavlik3f092dd2017-04-06 21:31:34 +0200104 /{{ controller.message_queue.virtual_host }}
Jakub Pavlik196a21c2017-04-03 22:10:05 +0200105{%- else %}
Jakub Pavlik3f092dd2017-04-06 21:31:34 +0200106transport_url = rabbit://{{ controller.message_queue.user }}:{{ controller.message_queue.password }}@{{ controller.message_queue.host }}:{{ controller.message_queue.port }}/{{ controller.message_queue.virtual_host }}
Jakub Pavlik196a21c2017-04-03 22:10:05 +0200107{%- endif %}
108
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200109{%- if controller.backup.engine != None %}
110{%- set backup_backend_fragment = "cinder/files/backup_backend/_" + controller.backup.engine + ".conf" %}
111{%- include backup_backend_fragment %}
112{%- endif %}
113
Jakub Pavlik78517fb2016-10-20 14:53:34 +0200114[oslo_messaging_notifications]
Simon Pasquier8bb897e2016-11-30 10:52:12 +0100115{%- if controller.notification is mapping %}
116driver = {{ controller.notification.get('driver', 'messagingv2') }}
117{%- if controller.notification.topics is defined %}
118topics = {{ controller.notification.topics }}
119{%- endif %}
120{%- elif controller.notification %}
Jakub Pavlik78517fb2016-10-20 14:53:34 +0200121driver = messagingv2
122{%- endif %}
123
124[oslo_concurrency]
125
126lock_path=/var/lock/cinder
127
Jakub Pavlik196a21c2017-04-03 22:10:05 +0200128[oslo_middleware]
Jakub Pavlik78517fb2016-10-20 14:53:34 +0200129
Jakub Pavlik196a21c2017-04-03 22:10:05 +0200130enable_proxy_headers_parsing = True
131
132[oslo_messaging_rabbit]
Jakub Pavlik78517fb2016-10-20 14:53:34 +0200133
134[keystone_authtoken]
135signing_dir=/tmp/keystone-signing-cinder
136revocation_cache_time = 10
137auth_type = password
138user_domain_name = {{ controller.identity.get('domain', 'Default') }}
139project_domain_name = {{ controller.identity.get('domain', 'Default') }}
140project_name = {{ controller.identity.tenant }}
141username = {{ controller.identity.user }}
142password = {{ controller.identity.password }}
143
144auth_uri=http://{{ controller.identity.host }}:5000
145auth_url=http://{{ controller.identity.host }}:35357
146# Temporary disabled for backward compataiblity
147#auth_uri=http://{{ controller.identity.host }}/identity
148#auth_url=http://{{ controller.identity.host }}/identity_v2_admin
149{%- if controller.cache is defined %}
150memcached_servers={%- for member in controller.cache.members %}{{ member.host }}:11211{% if not loop.last %},{% endif %}{%- endfor %}
151{%- endif %}
Jakub Pavlik196a21c2017-04-03 22:10:05 +0200152auth_version = v3
153
154[barbican]
155auth_endpoint=http://{{ controller.identity.host }}:5000
Jakub Pavlik78517fb2016-10-20 14:53:34 +0200156
157[database]
158idle_timeout=3600
159max_pool_size=30
160max_retries=-1
161max_overflow=40
Jakub Pavlik3f092dd2017-04-06 21:31:34 +0200162connection = {{ controller.database.engine }}+pymysql://{{ controller.database.user }}:{{ controller.database.password }}@{{ controller.database.host }}/{{ controller.database.name }}?charset=utf8
Jakub Pavlik78517fb2016-10-20 14:53:34 +0200163
164{%- if controller.backend is defined %}
165
166{%- for backend_name, backend in controller.get('backend', {}).iteritems() %}
167
168{%- set backend_fragment = "cinder/files/backend/_" + backend.engine + ".conf" %}
169{%- include backend_fragment %}
170
171{%- endfor %}
172
173{%- endif %}
Ondrej Smola74af21b2017-04-28 12:30:24 +0200174
175[cors]
176
177#
178# From oslo.middleware.cors
179#
180
181# Indicate whether this resource may be shared with the domain
182# received in the requests "origin" header. (list value)
183#allowed_origin = <None>
184{%- if controller.cors.allowed_origin is defined %}
185allowed_origin = {{ controller.cors.allowed_origin }}
186{%- endif %}
187
188# Indicate that the actual request can include user credentials
189# (boolean value)
190#allow_credentials = true
191{%- if controller.cors.allow_credentials is defined %}
192allow_credentials = {{ controller.cors.allow_credentials }}
193{%- endif %}
194
195# Indicate which headers are safe to expose to the API. Defaults to
196# HTTP Simple Headers. (list value)
197#expose_headers = X-Image-Meta-Checksum,X-Auth-Token,X-Subject-Token,X-Service-Token,X-OpenStack-Request-ID
198{%- if controller.cors.expose_headers is defined %}
199expose_headers = {{ controller.cors.expose_headers }}
200{%- endif %}
201
202# Maximum cache age of CORS preflight requests. (integer value)
203#max_age = 3600
204{%- if controller.cors.max_age is defined %}
205max_age = {{ controller.cors.max_age }}
206{%- endif %}
207
208# Indicate which methods can be used during the actual request. (list
209# value)
210#allow_methods = GET,PUT,POST,DELETE,PATCH
211{%- if controller.cors.allow_methods is defined %}
212allow_methods = {{ controller.cors.allow_methods }}
213{%- endif %}
214
215# Indicate which header field names may be used during the actual
216# request. (list value)
217#allow_headers = Content-MD5,X-Image-Meta-Checksum,X-Storage-Token,Accept-Encoding,X-Auth-Token,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id,X-OpenStack-Request-ID
218{%- if controller.cors.allow_headers is defined %}
219allow_headers = {{ controller.cors.allow_headers }}
220{%- endif %}