Chef Cookbook - OpenStack Block Storage
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

cinder.conf.erb 51KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358
  1. <%= node["openstack"]["block-storage"]["custom_template_banner"] %>
  2. [DEFAULT]
  3. ######## defined in cinder.openstack.common.cfg:CommonConfigOpts ########
  4. debug=<%= node["openstack"]["block-storage"]["debug"] %>
  5. #### (BoolOpt) Print debugging output
  6. verbose=<%= node["openstack"]["block-storage"]["verbose"] %>
  7. #### (BoolOpt) Print more verbose output
  8. notification_driver=<%= node["openstack"]["block-storage"]["notification_driver"] %>
  9. # log_config=<None>
  10. #### (StrOpt) If this option is specified, the logging configuration file
  11. #### specified is used and overrides any other logging options
  12. #### specified. Please see the Python logging module
  13. #### documentation for details on logging configuration files.
  14. # log_format=%(asctime)s %(levelname)8s [%(name)s] %(message)s
  15. #### (StrOpt) A logging.Formatter log message format string which may use
  16. #### any of the available logging.LogRecord attributes. Default:
  17. #### %default
  18. # log_date_format=%Y-%m-%d %H:%M:%S
  19. #### (StrOpt) Format string for %(asctime)s in log records. Default:
  20. #### %default
  21. # log_file=<None>
  22. #### (StrOpt) (Optional) Name of log file to output to. If not set,
  23. #### logging will go to stdout.
  24. # log_dir=<None>
  25. #### (StrOpt) (Optional) The directory to keep log files in (will be
  26. #### prepended to --logfile)
  27. # ================= Syslog Options ============================
  28. <% if node["openstack"]["block-storage"]["syslog"]["use"] %>
  29. log_config = /etc/openstack/logging.conf
  30. <% else %>
  31. log_file = /var/log/cinder/cinder.log
  32. <% end %>
  33. ######## defined in cinder.flags ########
  34. # connection_type=<None>
  35. #### (StrOpt) Virtualization api connection type : libvirt, xenapi, or
  36. #### fake
  37. # api_paste_config=api-paste.ini
  38. #### (StrOpt) File name for the paste.deploy config for cinder-api
  39. # DEPRECATED: Deploy v1 of the Cinder API. (boolean value)
  40. enable_v1_api=<%= node["openstack"]["block-storage"]["enable_v1_api"] %>
  41. # Deploy v2 of the Cinder API. (boolean value)
  42. enable_v2_api=<%= node["openstack"]["block-storage"]["enable_v2_api"] %>
  43. # pybasedir=/usr/lib/python/site-packages
  44. #### (StrOpt) Directory where the cinder python module is installed
  45. # bindir=$pybasedir/bin
  46. #### (StrOpt) Directory where cinder binaries are installed
  47. state_path=<%= node["openstack"]["block-storage"]["volume"]["state_path"] %>
  48. #### (StrOpt) Top-level directory for maintaining cinder's state
  49. my_ip=<%= node["ipaddress"] %>
  50. #### (StrOpt) ip address of this host
  51. glance_host=<%= @glance_host %>
  52. #### (StrOpt) default glance hostname or ip
  53. glance_port=<%= @glance_port %>
  54. #### (IntOpt) default glance port
  55. glance_api_servers=<%= @glance_scheme %>://<%= @glance_host %>:<%= @glance_port %>
  56. #### (ListOpt) A list of the glance api servers available to cinder
  57. #### ([http|https]://[hostname|ip]:port)
  58. glance_api_insecure=<%= node['openstack']['block-storage']['image']['glance_api_insecure'] %>
  59. #### (BoolOpt) Allow to perform insecure SSL (https) requests to 'glance'
  60. glance_ca_certificates_file=<%= node['openstack']['block-storage']['image']['glance_ca_certificates_file'] %>
  61. #### (StrOpt) Location of ca certificates file to use for glance client requests
  62. # glance_num_retries=0
  63. #### (IntOpt) Number retries when downloading an image from glance
  64. glance_api_version=<%= node['openstack']['block-storage']['image']['glance_api_version'] %>
  65. #### (IntOpt) Version of the glance API to use
  66. # scheduler_topic=cinder-scheduler
  67. #### (StrOpt) the topic scheduler nodes listen on
  68. # volume_topic=cinder-volume
  69. #### (StrOpt) the topic volume nodes listen on
  70. api_rate_limit=<%= node["openstack"]["block-storage"]["api"]["ratelimit"] %>
  71. #### (BoolOpt) whether to rate limit the api
  72. # osapi_volume_ext_list=
  73. #### (ListOpt) Specify list of extensions to load when using
  74. #### osapi_volume_extension option with
  75. #### cinder.api.openstack.volume.contrib.select_extensions
  76. # osapi_volume_extension=cinder.api.openstack.volume.contrib.standard_extensions
  77. #### (MultiStrOpt) osapi volume extension to load
  78. # osapi_compute_link_prefix=<None>
  79. #### (StrOpt) Base URL that will be presented to users in links to the
  80. #### OpenStack Compute API
  81. # osapi_max_limit=1000
  82. #### (IntOpt) the maximum number of items returned in a single response
  83. #### from a collection resource
  84. # sqlite_db=cinder.sqlite
  85. #### (StrOpt) the filename to use with sqlite
  86. # sqlite_synchronous=true
  87. #### (BoolOpt) If passed, use synchronous mode for sqlite
  88. # sql_idle_timeout=3600
  89. #### (IntOpt) timeout before idle sql connections are reaped
  90. # sql_max_retries=10
  91. #### (IntOpt) maximum db connection retries during startup. (setting -1
  92. #### implies an infinite retry count)
  93. # sql_retry_interval=10
  94. #### (IntOpt) interval between retries of opening a sql connection
  95. # volume_manager=cinder.volume.manager.VolumeManager
  96. #### (StrOpt) full class name for the Manager for volume
  97. # scheduler_manager=cinder.scheduler.manager.SchedulerManager
  98. #### (StrOpt) full class name for the Manager for scheduler
  99. <% if node['openstack']['block-storage']['host'] -%>
  100. host=<%= node['openstack']['block-storage']['host'] %>
  101. <% end -%>
  102. #### (StrOpt) Name of this node. This can be an opaque identifier. It is
  103. #### not necessarily a hostname, FQDN, or IP address.
  104. storage_availability_zone=<%= node["openstack"]["block-storage"]["storage_availability_zone"] %>
  105. #### (StrOpt) availability zone of this node
  106. # memcached_servers=<None>
  107. #### (ListOpt) Memcached servers or None for in process cache.
  108. # volume_usage_audit_period=month
  109. #### (StrOpt) time period to generate volume usages for. Time period must
  110. #### be hour, day, month or year
  111. # root_helper=cinder-rootwrap
  112. #### (StrOpt) Deprecated: command to use for running commands as root
  113. rootwrap_config=/etc/cinder/rootwrap.conf
  114. #### (StrOpt) Path to the rootwrap configuration file to use for running
  115. #### commands as root
  116. # monkey_patch=false
  117. #### (BoolOpt) Whether to log monkey patching
  118. # monkey_patch_modules=
  119. #### (ListOpt) List of modules/decorators to monkey patch
  120. # service_down_time=60
  121. #### (IntOpt) maximum time since last check-in for up service
  122. # volume_api_class=cinder.volume.api.API
  123. #### (StrOpt) The full class name of the volume API class to use
  124. auth_strategy=keystone
  125. #### (StrOpt) The strategy to use for auth. Supports noauth, keystone, and
  126. #### deprecated.
  127. ######## defined in cinder.policy ########
  128. # policy_file=policy.json
  129. #### (StrOpt) JSON file representing policy
  130. # policy_default_rule=default
  131. #### (StrOpt) Rule checked when requested rule is not found
  132. ######## defined in cinder.quota ########
  133. quota_volumes=<%= node["openstack"]["block-storage"]["quota_volumes"] %>
  134. #### (IntOpt) number of volumes allowed per project
  135. quota_gigabytes=<%= node["openstack"]["block-storage"]["quota_gigabytes"] %>
  136. #### (IntOpt) number of volume gigabytes allowed per project
  137. # reservation_expire=86400
  138. #### (IntOpt) number of seconds until a reservation expires
  139. # until_refresh=0
  140. #### (IntOpt) count of reservations until usage is refreshed
  141. # max_age=0
  142. #### (IntOpt) number of seconds between subsequent usage refreshes
  143. quota_driver=<%= node["openstack"]["block-storage"]["quota_driver"] %>
  144. #### (StrOpt) default driver to use for quota checks
  145. # Number of volume snapshots allowed per project (integer
  146. # value)
  147. quota_snapshots=<%= node["openstack"]["block-storage"]["quota_snapshots"] %>
  148. # Whether snapshots count against GigaByte quota (boolean
  149. # value)
  150. no_snapshot_gb_quota=<%= node["openstack"]["block-storage"]["no_snapshot_gb_quota"] %>
  151. # Enables or disables use of default quota class with default
  152. # quota. (boolean value)
  153. use_default_quota_class=<%= node["openstack"]["block-storage"]["use_default_quota_class"] %>
  154. ######## defined in cinder.service ########
  155. # report_interval=10
  156. #### (IntOpt) seconds between nodes reporting state to datastore
  157. # periodic_interval=60
  158. #### (IntOpt) seconds between running periodic tasks
  159. # periodic_fuzzy_delay=60
  160. #### (IntOpt) range of seconds to randomly delay when starting the
  161. #### periodic task scheduler to reduce stampeding. (Disable by
  162. #### setting to 0)
  163. osapi_volume_listen=<%= @volume_api_bind_address %>
  164. #### (StrOpt) IP address for OpenStack Volume API to listen
  165. #### (IntOpt) port for os volume api to listen
  166. osapi_volume_listen_port=<%= @volume_api_bind_port %>
  167. # Number of workers for OpenStack Volume API service. The
  168. # default is equal to the number of CPUs available. (integer
  169. # value)
  170. osapi_volume_workers=<%= node["openstack"]["block-storage"]["osapi_volume_workers"] %>
  171. ######## defined in cinder.test ########
  172. # sqlite_clean_db=clean.sqlite
  173. #### (StrOpt) File name of clean sqlite db
  174. # fake_tests=true
  175. #### (BoolOpt) should we use everything for testing
  176. ######## defined in cinder.api.auth ########
  177. # use_forwarded_for=false
  178. #### (BoolOpt) Treat X-Forwarded-For as the canonical remote address. Only
  179. #### enable this if you have a sanitizing proxy.
  180. ######## defined in cinder.api.sizelimit ########
  181. # osapi_max_request_body_size=114688
  182. #### (IntOpt) Max size for body of a request
  183. ######## defined in cinder.common.deprecated ########
  184. # fatal_deprecations=false
  185. #### (BoolOpt) make deprecations fatal
  186. ######## defined in cinder.backup.manager ########
  187. <% if node['openstack']['block-storage']['backup']['enabled'] %>
  188. backup_driver=<%= node['openstack']['block-storage']['backup']['driver'] %>
  189. <% if node['openstack']['block-storage']['backup']['driver'] == 'cinder.backup.drivers.swift' %>
  190. ######## defined in cinder.backup.driver.swift ########
  191. # The URL of the Swift endpoint (string value)
  192. <% if node['openstack']['block-storage']['backup']['swift']['url'] %>
  193. backup_swift_url=<%= node['openstack']['block-storage']['backup']['swift']['url'] %>
  194. <% else %>
  195. # backup_swift_url=<None>
  196. <% end %>
  197. # Info to match when looking for swift in the service catalog.
  198. # Format is: separated values of the form:
  199. # <service_type>:<service_name>:<endpoint_type> - Only used if
  200. # backup_swift_url is unset (string value)
  201. swift_catalog_info=<%= node['openstack']['block-storage']['backup']['swift']['catalog_info'] %>
  202. # Swift authentication mechanism (string value)
  203. backup_swift_auth=<%= node['openstack']['block-storage']['backup']['swift']['auth'] %>
  204. # Swift authentication version. Specify "1" for auth 1.0, or
  205. # "2" for auth 2.0 (string value)
  206. backup_swift_auth_version=<%= node['openstack']['block-storage']['backup']['swift']['auth_version'] %>
  207. # Swift tenant/account name. Required when connecting to an
  208. # auth 2.0 system (string value)
  209. <% if node['openstack']['block-storage']['backup']['swift']['tenant'] %>
  210. backup_swift_tenant=<%= node['openstack']['block-storage']['backup']['swift']['tenant'] %>
  211. <% else %>
  212. # backup_swift_tenant=<None>
  213. <% end %>
  214. # Swift user name (string value)
  215. <% if node['openstack']['block-storage']['backup']['swift']['user'] %>
  216. backup_swift_user=<%= node['openstack']['block-storage']['backup']['swift']['user'] %>
  217. <% else %>
  218. # backup_swift_user=<None>
  219. <% end %>
  220. # Swift key for authentication (string value)
  221. <% if node['openstack']['block-storage']['backup']['swift']['key'] %>
  222. backup_swift_key=<%= node['openstack']['block-storage']['backup']['swift']['key'] %>
  223. <% else %>
  224. # backup_swift_key=<None>
  225. <% end %>
  226. # The default Swift container to use (string value)
  227. backup_swift_container=<%= node['openstack']['block-storage']['backup']['swift']['container'] %>
  228. # The size in bytes of Swift backup objects (integer value)
  229. backup_swift_object_size=<%= node['openstack']['block-storage']['backup']['swift']['object_size'] %>
  230. # The size in bytes that changes are tracked for incremental
  231. # backups. backup_swift_object_size has to be multiple of
  232. # backup_swift_block_size. (integer value)
  233. backup_swift_block_size=<%= node['openstack']['block-storage']['backup']['swift']['block_size'] %>
  234. # The number of retries to make for Swift operations (integer
  235. # value)
  236. backup_swift_retry_attempts=<%= node['openstack']['block-storage']['backup']['swift']['retry_attempts'] %>
  237. # The backoff time in seconds between Swift retries (integer
  238. # value)
  239. backup_swift_retry_backoff=<%= node['openstack']['block-storage']['backup']['swift']['retry_backoff'] %>
  240. # Enable or Disable the timer to send the periodic progress
  241. # notifications to Ceilometer when backing up the volume to
  242. # the Swift backend storage. The default value is True to
  243. # enable the timer. (boolean value)
  244. backup_swift_enable_progress_timer=<%= node['openstack']['block-storage']['backup']['swift']['enable_progress_timer'] %>
  245. <% end %>
  246. <% end %>
  247. ######## defined in cinder.db.api ########
  248. # enable_new_services=true
  249. #### (BoolOpt) Services to be added to the available pool on create
  250. volume_name_template=<%= node["openstack"]["block-storage"]["volume_name_template"] %>
  251. #### (StrOpt) Template string to be used to generate volume names
  252. snapshot_name_template=<%= node["openstack"]["block-storage"]["snapshot_name_template"] %>
  253. #### (StrOpt) Template string to be used to generate snapshot names
  254. ######## defined in cinder.db.base ########
  255. # db_driver=cinder.db
  256. #### (StrOpt) driver to use for database access
  257. ######## defined in cinder.openstack.common.log ########
  258. # logdir=<None>
  259. ### (StrOpt) Log output to a per-service log file in named directory
  260. # logfile=<None>
  261. #### (StrOpt) Log output to a named file
  262. # use_stderr=true
  263. #### (BoolOpt) Log output to standard error
  264. # logfile_mode=0644
  265. #### (StrOpt) Default file mode used when creating log files
  266. # logging_context_format_string=%(asctime)s %(levelname)s %(name)s [%(request_id)s %(user_id)s %(project_id)s] %(instance)s%(message)s
  267. #### (StrOpt) format string to use for log messages with context
  268. # logging_default_format_string=%(asctime)s %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
  269. #### (StrOpt) format string to use for log messages without context
  270. # logging_debug_format_suffix=%(funcName)s %(pathname)s:%(lineno)d
  271. #### (StrOpt) data to append to log format when level is DEBUG
  272. # logging_exception_prefix=%(asctime)s %(process)d TRACE %(name)s %(instance)s
  273. #### (StrOpt) prefix each line of exception output with this format
  274. # default_log_levels=amqplib=WARN,sqlalchemy=WARN,boto=WARN,suds=INFO,keystone=INFO,eventlet.wsgi.server=WARN
  275. #### (ListOpt) list of logger=LEVEL pairs
  276. # publish_errors=false
  277. #### (BoolOpt) publish error events
  278. # instance_format="[instance: %(uuid)s] "
  279. #### (StrOpt) If an instance is passed with the log message, format it
  280. #### like this
  281. # instance_uuid_format="[instance: %(uuid)s] "
  282. #### (StrOpt) If an instance UUID is passed with the log message, format
  283. #### it like this
  284. ######## defined in cinder.openstack.common.notifier.api ########
  285. #### (MultiStrOpt) Driver or drivers to handle sending notifications
  286. # default_notification_level=INFO
  287. #### (StrOpt) Default notification level for outgoing notifications
  288. # default_publisher_id=$host
  289. #### (StrOpt) Default publisher_id for outgoing notifications
  290. ######## defined in cinder.openstack.common.rpc ########
  291. rpc_backend=<%= node["openstack"]["block_storage"]["rpc_backend"] %>
  292. #### (StrOpt) The messaging module to use, defaults to kombu.
  293. control_exchange=<%=node['openstack']['block-storage']['control_exchange']%>
  294. #### (StrOpt) AMQP exchange to connect to if using RabbitMQ or Qpid
  295. rpc_thread_pool_size=<%= node["openstack"]["block-storage"]["rpc_thread_pool_size"] %>
  296. #### (IntOpt) Size of RPC thread pool
  297. rpc_response_timeout=<%= node["openstack"]["block-storage"]["rpc_response_timeout"] %>
  298. #### (IntOpt) Seconds to wait for a response from call or multicall
  299. # rpc_cast_timeout=30
  300. #### (IntOpt) Seconds to wait before a cast expires (TTL). Only supported
  301. #### by impl_zmq.
  302. # allowed_rpc_exception_modules=cinder.openstack.common.exception,nova.exception,cinder.exception
  303. #### (ListOpt) Modules of exceptions that are permitted to be recreatedupon
  304. #### receiving exception data from an rpc call.
  305. ######## defined in cinder.openstack.common.rpc.impl_zmq ########
  306. # rpc_zmq_bind_address=*
  307. #### (StrOpt) ZeroMQ bind address. Should be a wildcard (*), an ethernet
  308. #### interface, or IP. The "host" option should point or resolve
  309. #### to this address.
  310. # rpc_zmq_matchmaker=cinder.openstack.common.rpc.matchmaker.MatchMakerLocalhost
  311. #### (StrOpt) MatchMaker driver
  312. # rpc_zmq_port=9501
  313. #### (IntOpt) ZeroMQ receiver listening port
  314. # rpc_zmq_port_pub=9502
  315. #### (IntOpt) ZeroMQ fanout publisher port
  316. # rpc_zmq_contexts=1
  317. #### (IntOpt) Number of ZeroMQ contexts, defaults to 1
  318. # rpc_zmq_ipc_dir=/var/run/openstack
  319. #### (StrOpt) Directory for holding IPC sockets
  320. # rpc_zmq_host=cinder
  321. #### (StrOpt) Name of this node. Must be a valid hostname, FQDN, or IP
  322. #### address. Must match "host" option, if running Nova.
  323. ######## defined in cinder.openstack.common.rpc.matchmaker ########
  324. # matchmaker_ringfile=/etc/nova/matchmaker_ring.json
  325. #### (StrOpt) Matchmaker ring file (JSON)
  326. ######## defined in cinder.scheduler.driver ########
  327. # scheduler_host_manager=cinder.scheduler.host_manager.HostManager
  328. #### (StrOpt) The scheduler host manager class to use
  329. ######## defined in cinder.scheduler.manager ########
  330. # scheduler_driver=cinder.scheduler.simple.SimpleScheduler
  331. #### (StrOpt) Default driver to use for the scheduler
  332. ######## defined in cinder.scheduler.simple ########
  333. max_gigabytes=<%= node["openstack"]["block-storage"]["max_gigabytes"] %>
  334. #### (IntOpt) maximum number of volume gigabytes to allow per host
  335. ######## defined in cinder.volume.api ########
  336. # snapshot_same_host=true
  337. #### (BoolOpt) Create volume from snapshot at the host where snapshot
  338. #### resides
  339. ######## defined in cinder.volume.driver ########
  340. <% if @enabled_drivers.include?("cinder.volume.drivers.lvm.LVMVolumeDriver") %>
  341. volume_group=<%= node["openstack"]["block-storage"]["volume"]["volume_group"] %>
  342. #### (StrOpt) Name for the VG that will contain exported volumes
  343. volume_clear=<%= node["openstack"]["block-storage"]["volume"]["volume_clear"] %>
  344. volume_clear_size=<%= node["openstack"]["block-storage"]["volume"]["volume_clear_size"] %>
  345. <% end %>
  346. # num_shell_tries=3
  347. #### (IntOpt) number of times to attempt to run flakey shell commands
  348. # num_iscsi_scan_tries=3
  349. #### (IntOpt) number of times to rescan iSCSI target to find volume
  350. # iscsi_num_targets=100
  351. #### (IntOpt) Number of iscsi target ids per host
  352. # iscsi_target_prefix=iqn.2010-10.org.openstack:
  353. #### (StrOpt) prefix for iscsi volumes
  354. iscsi_ip_address=<%= node["openstack"]["block-storage"]["volume"]["iscsi_ip_address"] %>
  355. #### (StrOpt) The IP address where the iSCSI daemon is listening on
  356. iscsi_port=<%= node["openstack"]["block-storage"]["volume"]["iscsi_port"] %>
  357. #### (IntOpt) The port that the iSCSI daemon is listening on
  358. <% if @enabled_drivers.include?("cinder.volume.drivers.rbd.RBDDriver") %>
  359. #
  360. # Options defined in cinder.volume.drivers.rbd
  361. #
  362. # The RADOS pool where rbd volumes are stored (string value)
  363. rbd_pool=<%= node["openstack"]["block-storage"]["rbd"]["cinder"]["pool"] %>
  364. # The RADOS client name for accessing rbd volumes - only set
  365. # when using cephx authentication (string value)
  366. rbd_user=<%= node["openstack"]["block-storage"]["rbd"]["user"] %>
  367. # Path to the ceph configuration file (string value)
  368. rbd_ceph_conf=<%= node["openstack"]["block-storage"]["rbd"]["conf_dir"] %>
  369. # Flatten volumes created from snapshots to remove dependency
  370. # from volume to snapshot (boolean value)
  371. rbd_flatten_volume_from_snapshot=<%= node["openstack"]["block-storage"]["rbd"]["flatten_volume"] %>
  372. # The libvirt uuid of the secret for the rbd_user volumes
  373. # (string value)
  374. rbd_secret_uuid=<%= node["openstack"]["block-storage"]["rbd"]["secret_uuid"] %>
  375. # Maximum number of nested volume clones that are taken before
  376. # a flatten occurs. Set to 0 to disable cloning. (integer
  377. # value)
  378. rbd_max_clone_depth=<%= node["openstack"]["block-storage"]["rbd"]["max_clone_depth"] %>
  379. # Volumes will be chunked into objects of this size (in
  380. # megabytes). (integer value)
  381. rbd_store_chunk_size=<%= node["openstack"]["block-storage"]["rbd"]["chunk_size"] %>
  382. # Timeout value (in seconds) used when connecting to ceph
  383. # cluster. If value < 0, no timeout is set and default
  384. # librados value is used. (integer value)
  385. rados_connect_timeout=<%= node["openstack"]["block-storage"]["rbd"]["rados_timeout"] %>
  386. <% end %>
  387. # volume_tmp_dir=<None>
  388. #### (StrOpt) where to store temporary image files if the volume driver
  389. #### does not write them directly to the volume
  390. ######## defined in cinder.volume.iscsi ########
  391. iscsi_helper=<%= node["openstack"]["block-storage"]["volume"]["iscsi_helper"] %>
  392. #### (StrOpt) iscsi target user-land tool to use
  393. volumes_dir=<%= node['openstack']['block-storage']['volume']['volumes_dir'] %>
  394. #### (StrOpt) Volume configuration file storage directory
  395. ######## defined in cinder.volume.manager ########
  396. volume_driver=<%= node["openstack"]["block-storage"]["volume"]["driver"] %>
  397. #### (StrOpt) Driver to use for volume creation
  398. # use_local_volumes=true
  399. #### (BoolOpt) if True, will not discover local volumes
  400. # volume_force_update_capabilities=false
  401. #### (BoolOpt) if True will force update capabilities on each check
  402. # Default volume type to use (string value)
  403. default_volume_type=<%= node["openstack"]["block-storage"]["volume"]["default_volume_type"] %>
  404. ######## defined in cinder.volume.netapp ########
  405. <% if @enabled_drivers.include?("cinder.volume.drivers.netapp.NetAppISCSIDriver") %>
  406. netapp_wsdl_url=<%= node["openstack"]["block-storage"]["netapp"]["protocol"] %>://<%= node["openstack"]["block-storage"]["netapp"]["dfm_hostname"] %>:<%= node["openstack"]["block-storage"]["netapp"]["dfm_web_port"] %>/dfm.wsdl
  407. #### (StrOpt) URL of the WSDL file for the DFM server
  408. netapp_login=<%= node["openstack"]["block-storage"]["netapp"]["dfm_login"] %>
  409. #### (StrOpt) User name for the DFM server
  410. netapp_password=<%= node["openstack"]["block-storage"]["netapp"]["dfm_password"] %>
  411. #### (StrOpt) Password for the DFM server
  412. netapp_server_hostname=<%= node["openstack"]["block-storage"]["netapp"]["dfm_hostname"] %>
  413. #### (StrOpt) Hostname for the DFM server
  414. netapp_server_port=<%= node["openstack"]["block-storage"]["netapp"]["dfm_port"] %>
  415. #### (IntOpt) Port number for the DFM server
  416. netapp_storage_service=<%= node["openstack"]["block-storage"]["netapp"]["storage_service"] %>
  417. #### (StrOpt) Storage service to use for provisioning (when
  418. #### volume_type=None)
  419. # netapp_storage_service_prefix=<None>
  420. #### (StrOpt) Prefix of storage service name to use for provisioning
  421. #### (volume_type name will be appended)
  422. # netapp_vfiler=<None>
  423. #### (StrOpt) Vfiler to use for provisioning
  424. <% end %>
  425. ######## defined in cinder.volume.netapp_nfs ########
  426. <% if @enabled_drivers.include?("cinder.volume.drivers.netapp.nfs.NetAppDirect7modeNfsDriver") %>
  427. nfs_mount_point_base=<%= node["openstack"]["block-storage"]["nfs"]["mount_point_base"] %>
  428. <% node["openstack"]["block-storage"]["netapp"]["netapp_server_hostname"].each do |h| %>
  429. netapp_server_hostname=<%= h %>
  430. <% end %>
  431. netapp_server_port=<%= node["openstack"]["block-storage"]["netapp"]["netapp_server_port"] %>
  432. netapp_login=<%= node["openstack"]["block-storage"]["netapp"]["netapp_server_login"] %>
  433. netapp_password=<%= node["openstack"]["block-storage"]["netapp"]["netapp_server_password"] %>
  434. nfs_shares_config=<%= node["openstack"]["block-storage"]["nfs"]["shares_config"] %>
  435. nfs_disk_util=<%= node["openstack"]["block-storage"]["nfs"]["nfs_disk_util"] %>
  436. nfs_sparsed_volumes=<%= node["openstack"]["block-storage"]["nfs"]["nfs_sparsed_volumes"] %>
  437. <% end %>
  438. ######## defined in cinder.volume.nexenta.volume ########
  439. # nexenta_host=
  440. #### (StrOpt) IP address of Nexenta SA
  441. # nexenta_rest_port=2000
  442. #### (IntOpt) HTTP port to connect to Nexenta REST API server
  443. # nexenta_rest_protocol=auto
  444. #### (StrOpt) Use http or https for REST connection (default auto)
  445. # nexenta_user=admin
  446. #### (StrOpt) User name to connect to Nexenta SA
  447. # nexenta_password=nexenta
  448. #### (StrOpt) Password to connect to Nexenta SA
  449. # nexenta_iscsi_target_portal_port=3260
  450. #### (IntOpt) Nexenta target portal port
  451. # nexenta_volume=cinder
  452. #### (StrOpt) pool on SA that will hold all volumes
  453. # nexenta_target_prefix=iqn.1986-03.com.sun:02:cinder-
  454. #### (StrOpt) IQN prefix for iSCSI targets
  455. # nexenta_target_group_prefix=cinder/
  456. #### (StrOpt) prefix for iSCSI target groups on SA
  457. # nexenta_blocksize=
  458. #### (StrOpt) block size for volumes (blank=default,8KB)
  459. # nexenta_sparse=false
  460. #### (BoolOpt) flag to create sparse volumes
  461. ######## defined in cinder.volume.nfs ########
  462. <% if @enabled_drivers.include?("cinder.volume.drivers.ibm.ibmnas.IBMNAS_NFSDriver") %>
  463. nfs_shares_config=<%= node["openstack"]["block-storage"]["ibmnas"]["shares_config"] %>
  464. #### (StrOpt) File with the list of available nfs shares
  465. nfs_mount_point_base=<%= node["openstack"]["block-storage"]["ibmnas"]["mount_point_base"] %>
  466. #### (StrOpt) Base dir where nfs expected to be mounted
  467. nfs_sparsed_volumes=<%= node["openstack"]["block-storage"]["ibmnas"]["nfs_sparsed_volumes"] %>
  468. #### (BoolOpt) Create volumes as sparsed files which take no space.If set
  469. #### to False volume is created as regular file.In such case
  470. #### volume creation takes a lot of time.
  471. <% else %>
  472. # nfs_shares_config=<None>
  473. #### (StrOpt) File with the list of available nfs shares
  474. # nfs_mount_point_base=$state_path/mnt
  475. #### (StrOpt) Base dir where nfs expected to be mounted
  476. # nfs_disk_util=df
  477. #### (StrOpt) Use du or df for free space calculation
  478. # nfs_sparsed_volumes=true
  479. #### (BoolOpt) Create volumes as sparsed files which take no space.If set
  480. #### to False volume is created as regular file.In such case
  481. #### volume creation takes a lot of time.
  482. <% end %>
  483. ######## defined in cinder.volume.san ########
  484. <% if @enabled_drivers.include?("cinder.volume.drivers.ibm.storwize_svc.StorwizeSVCDriver") %>
  485. san_ip=<%= node["openstack"]["block-storage"]["storwize"]["san_ip"] %>
  486. #### (StrOpt) IP address of SAN controller
  487. <% if node['openstack']['block-storage']['storwize']['san_private_key'].to_s.empty? %>
  488. san_login=<%= node["openstack"]["block-storage"]["storwize"]["san_login"] %>
  489. #### (StrOpt) Username for SAN controller
  490. san_password=<%= @storwize_pass %>
  491. #### (StrOpt) Password for SAN controller
  492. <% end %>
  493. san_private_key=<%= node["openstack"]["block-storage"]["storwize"]["san_private_key"] %>
  494. #### (StrOpt) Filename of private key to use for SSH authentication
  495. <% end %>
  496. <% if @enabled_drivers.include?("cinder.volume.drivers.solidfire.SolidFire") %>
  497. ######## defined in cinder.volume.solidfire ########
  498. sf_emulate_512=<%= node["openstack"]["block-storage"]["solidfire"]["sf_emulate"] %>
  499. #### (BoolOpt) Set 512 byte emulation on volume creation;
  500. san_ip=<%= node["openstack"]["block-storage"]["solidfire"]["san_ip"] %>
  501. # #### (StrOpt) IP address of SolidFire MVIP
  502. san_login=<%= node["openstack"]["block-storage"]["solidfire"]["san_login"] %>
  503. #### (StrOpt) Username for SF Cluster Admin
  504. san_password=<%= @solidfire_pass %>
  505. #### (StrOpt) Password for SF Cluster Admin
  506. <% unless node["openstack"]["block-storage"]["solidfire"]['iscsi_ip_prefix'].nil? %>
  507. iscsi_ip_prefix=<%= node["openstack"]["block-storage"]["solidfire"]["iscsi_ip_prefix"] %>
  508. <% end %>
  509. <% end %>
  510. <% if @enabled_drivers.include?("cinder.volume.drivers.ibm.flashsystem.FlashSystemDriver") -%>
  511. ######## defined in cinder.volume.drivers.ibm.flashsystem.FlashSystemDriver ########
  512. san_ip=<%= node["openstack"]["block-storage"]["flashsystem"]["san_ip"] %>
  513. #### (StrOpt) IP address of FlashSystem Cluster Node
  514. san_login=<%= node["openstack"]["block-storage"]["flashsystem"]["san_login"] %>
  515. #### (StrOpt) Username for FlashSystem Cluster Admin
  516. san_password=<%= @flashsystem_pass %>
  517. #### (StrOpt) Password for FlashSystem Cluster Admin
  518. flashsystem_connection_protocol=<%= node["openstack"]["block-storage"]["flashsystem"]["flashsystem_connection_protocol"] %>
  519. #### (StrOpt) Connection protocol (FC only)
  520. flashsystem_multipath_enabled=<%= node["openstack"]["block-storage"]["flashsystem"]["flashsystem_multipath_enabled"] %>
  521. #### (BoolOpt) Multipath flag (FC only)
  522. flashsystem_multihostmap_enabled=<%= node["openstack"]["block-storage"]["flashsystem"]["flashsystem_multihostmap_enabled"] %>
  523. #### (BoolOpt) Multi host mapping flag
  524. <% end -%>
  525. #### (BoolOpt) Allow tenants to specify QOS on create
  526. <% if @enabled_drivers.include?("cinder.volume.drivers.ibm.storwize_svc.StorwizeSVCDriver") %>
  527. ######## defined in cinder.volume.storwize_svc ########
  528. storwize_svc_volpool_name=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_volpool_name"] %>
  529. #### (StrOpt) Storage system storage pool for volumes
  530. storwize_svc_vol_rsize=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_rsize"] %>
  531. #### (StrOpt) Storage system space-efficiency parameter for volumes
  532. storwize_svc_vol_warning=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_warning"] %>
  533. #### (StrOpt) Storage system threshold for volume capacity warnings
  534. storwize_svc_vol_autoexpand=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_autoexpand"] %>
  535. #### (BoolOpt) Storage system autoexpand parameter for volumes (True/False)
  536. storwize_svc_vol_grainsize=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_grainsize"] %>
  537. #### (StrOpt) Storage system grain size parameter for volumes
  538. #### (32/64/128/256)
  539. storwize_svc_vol_compression=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_compression"] %>
  540. #### (BoolOpt) Storage system compression option for volumes
  541. storwize_svc_vol_easytier=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_easytier"] %>
  542. #### (BoolOpt) Enable Easy Tier for volumes
  543. # The I/O group in which to allocate volumes (integer value)
  544. storwize_svc_vol_iogrp=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_iogrp"] %>
  545. storwize_svc_flashcopy_timeout=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_flashcopy_timeout"] %>
  546. #### (StrOpt) Maximum number of seconds to wait for FlashCopy to be
  547. #### prepared. Maximum value is 600 seconds (10 minutes).
  548. # Connection protocol (iSCSI/FC) (string value)
  549. storwize_svc_connection_protocol=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_connection_protocol"] %>
  550. <% if node["openstack"]["block-storage"]["storwize"]["storwize_svc_connection_protocol"] == "iSCSI" %>
  551. # Configure CHAP authentication for iSCSI connections
  552. # (Default: Enabled) (boolean value)
  553. storwize_svc_iscsi_chap_enabled=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_iscsi_chap_enabled"] %>
  554. <% else %>
  555. # Connect with multipath (FC only; iSCSI multipath is
  556. # controlled by Nova) (boolean value)
  557. storwize_svc_multipath_enabled=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_multipath_enabled"] %>
  558. <% end %>
  559. # Allows vdisk to multi host mapping (boolean value)
  560. storwize_svc_multihostmap_enabled=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_multihostmap_enabled"] %>
  561. # Allow tenants to specify QOS on create (boolean value)
  562. storwize_svc_allow_tenant_qos=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_allow_tenant_qos"] %>
  563. <% unless node["openstack"]["block-storage"]["storwize"]["storwize_svc_stretched_cluster_partner"].nil? %>
  564. # If operating in stretched cluster mode, specify the name of
  565. # # the pool in which mirrored copies are stored.
  566. # (Default: Null) (string value)
  567. storwize_svc_stretched_cluster_partner=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_stretched_cluster_partner"] %>
  568. <% end %>
  569. <% end %>
  570. <% if @enabled_drivers.include?("cinder.volume.drivers.emc.emc_smis_iscsi.EMCSMISISCSIDriver") %>
  571. iscsi_target_prefix=<%= node["openstack"]["block-storage"]["emc"]["iscsi_target_prefix"] %>
  572. cinder_emc_config_file=<%= node["openstack"]["block-storage"]["emc"]["cinder_emc_config_file"] %>
  573. <% end %>
  574. <% if @enabled_drivers.include?("cinder.volume.drivers.ibm.ibmnas.IBMNAS_NFSDriver") %>
  575. ######## defined in cinder.volume.ibm.ibmnas ########
  576. nas_ip=<%= node["openstack"]["block-storage"]["ibmnas"]["nas_ip"] %>
  577. #### (StrOpt) IP address of IBMNAS storage
  578. nas_login=<%= node["openstack"]["block-storage"]["ibmnas"]["nas_login"] %>
  579. #### (StrOpt) Username for IBMNAS Cluster
  580. nas_password=<%= @ibmnas_pass %>
  581. #### (StrOpt) Password for IBMNAS Cluster
  582. nas_ssh_port=<%= node["openstack"]["block-storage"]["ibmnas"]["nas_ssh_port"] %>
  583. #### (StrOpt) IP address of IBMNAS storage
  584. ibmnas_platform_type=<%= node["openstack"]["block-storage"]["ibmnas"]["ibmnas_platform_type"] %>
  585. #### (StrOpt) IBMNAS platform type to be used as backend storage
  586. <% end %>
  587. ######## defined in cinder.volume.xiv ########
  588. # xiv_proxy=xiv_openstack.nova_proxy.XIVNovaProxy
  589. #### (StrOpt) Proxy driver
  590. ######## defined in cinder.volume.zadara ########
  591. # zadara_vpsa_ip=<None>
  592. #### (StrOpt) Management IP of Zadara VPSA
  593. # zadara_vpsa_port=<None>
  594. #### (StrOpt) Zadara VPSA port number
  595. # zadara_vpsa_use_ssl=false
  596. #### (BoolOpt) Use SSL connection
  597. # zadara_user=<None>
  598. #### (StrOpt) User name for the VPSA
  599. # zadara_password=<None>
  600. #### (StrOpt) Password for the VPSA
  601. # zadara_vpsa_poolname=<None>
  602. #### (StrOpt) Name of VPSA storage pool for volumes
  603. # zadara_default_cache_policy=write-through
  604. #### (StrOpt) Default cache policy for volumes
  605. # zadara_default_encryption=NO
  606. #### (StrOpt) Default encryption policy for volumes
  607. # zadara_default_striping_mode=simple
  608. #### (StrOpt) Default striping mode for volumes
  609. # zadara_default_stripesize=64
  610. #### (StrOpt) Default stripe size for volumes
  611. # zadara_vol_name_template=OS_%s
  612. #### (StrOpt) Default template for VPSA volume names
  613. # zadara_vpsa_auto_detach_on_delete=true
  614. #### (BoolOpt) Automatically detach from servers on volume delete
  615. # zadara_vpsa_allow_nonexistent_delete=true
  616. #### (BoolOpt) Don't halt on deletion of non-existing volumes
  617. <% if @enabled_drivers.include?('cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver') %>
  618. #
  619. # Options defined in cinder.volume.drivers.vmware.vmdk
  620. #
  621. # IP address for connecting to VMware ESX/VC server. (string
  622. # value)
  623. vmware_host_ip = <%= node['openstack']['block-storage']['vmware']['vmware_host_ip'] %>
  624. # Username for authenticating with VMware ESX/VC server.
  625. # (string value)
  626. vmware_host_username = <%= node['openstack']['block-storage']['vmware']['vmware_host_username'] %>
  627. # Password for authenticating with VMware ESX/VC server.
  628. # (string value)
  629. vmware_host_password = <%= @vmware_host_pass %>
  630. <% if node['openstack']['block-storage']['vmware']['vmware_wsdl_location'] -%>
  631. # Optional VIM service WSDL Location e.g
  632. # http://<server>/vimService.wsdl. Optional over-ride to
  633. # default location for bug work-arounds. (string value)
  634. vmware_wsdl_location = <%= node['openstack']['block-storage']['vmware']['vmware_wsdl_location'] %>
  635. <% end %>
  636. # Number of times VMware ESX/VC server API must be retried
  637. # upon connection related issues. (integer value)
  638. vmware_api_retry_count = <%= node['openstack']['block-storage']['vmware']['vmware_api_retry_count'] %>
  639. # The interval (in seconds) for polling remote tasks invoked
  640. # on VMware ESX/VC server. (integer value)
  641. vmware_task_poll_interval = <%= node['openstack']['block-storage']['vmware']['vmware_task_poll_interval'] %>
  642. # Name for the folder in the VC datacenter that will contain
  643. # cinder volumes. (string value)
  644. vmware_volume_folder = <%= node['openstack']['block-storage']['vmware']['vmware_volume_folder'] %>
  645. # Timeout in seconds for VMDK volume transfer between Cinder
  646. # and Glance. (integer value)
  647. vmware_image_transfer_timeout_secs = <%= node['openstack']['block-storage']['vmware']['vmware_image_transfer_timeout_secs'] %>
  648. # Max number of objects to be retrieved per batch. Query
  649. # results will be obtained in batches from the server and not
  650. # in one shot. Server may still limit the count to something
  651. # less than the configured value. (integer value)
  652. vmware_max_objects_retrieval = <%= node['openstack']['block-storage']['vmware']['vmware_max_objects_retrieval'] %>
  653. <% end %>
  654. <% if @enabled_drivers.include?('cinder.volume.drivers.ibm.gpfs.GPFSDriver') %>
  655. ######## defined in cinder.openstack.volume.drivers.ibm.gpfs ########
  656. # Specifies the path of the GPFS directory where Block Storage
  657. # volume and snapshot files are stored. (string value)
  658. gpfs_mount_point_base = <%= node["openstack"]["block-storage"]["gpfs"]["gpfs_mount_point_base"] %>
  659. <% if node['openstack']['block-storage']['gpfs']['gpfs_images_dir'] %>
  660. # Specifies the path of the Image service repository in GPFS.
  661. # Leave undefined if not storing images in GPFS. (string
  662. # value)
  663. gpfs_images_dir = <%= node['openstack']['block-storage']['gpfs']['gpfs_images_dir'] %>
  664. # Specifies the type of image copy to be used. Set this when
  665. # the Image service repository also uses GPFS so that image
  666. # files can be transferred efficiently from the Image service
  667. # to the Block Storage service. There are two valid values:
  668. # "copy" specifies that a full copy of the image is made;
  669. # "copy_on_write" specifies that copy-on-write optimization
  670. # strategy is used and unmodified blocks of the image file are
  671. # shared efficiently. (string value)
  672. gpfs_images_share_mode = <%= node['openstack']['block-storage']['gpfs']['gpfs_images_share_mode'] %>
  673. <% end %>
  674. # Specifies an upper limit on the number of indirections
  675. # required to reach a specific block due to snapshots or
  676. # clones. A lengthy chain of copy-on-write snapshots or
  677. # clones can have a negative impact on performance, but
  678. # improves space utilization. 0 indicates unlimited clone
  679. # depth. (integer value)
  680. gpfs_max_clone_depth = <%= node['openstack']['block-storage']['gpfs']['gpfs_max_clone_depth'] %>
  681. # Specifies that volumes are created as sparse files which
  682. # initially consume no space. If set to False, the volume is
  683. # created as a fully allocated file, in which case, creation
  684. # may take a significantly longer time. (boolean value)
  685. gpfs_sparse_volumes = <%= node['openstack']['block-storage']['gpfs']['gpfs_sparse_volumes'] %>
  686. # Specifies the storage pool that volumes are assigned to. By
  687. # default, the system storage pool is used. (string value)
  688. gpfs_storage_pool = <%= node['openstack']['block-storage']['gpfs']['gpfs_storage_pool'] %>
  689. <% end %>
  690. <% unless @multi_backend_sections.empty? %>
  691. enabled_backends = <%= @multi_backend_sections.keys.join(',') %>
  692. <% end %>
  693. # Misc options
  694. <% if node["openstack"]["block-storage"]["misc_cinder"] %>
  695. <% node["openstack"]["block-storage"]["misc_cinder"].each do |m| %>
  696. <%= m %>
  697. <% end %>
  698. <% end %>
  699. # Multi-backend support, add new sections here
  700. # Make sure these sections are at the bottom of conf file
  701. <% unless @multi_backend_sections.empty? %>
  702. <% @multi_backend_sections.each do |sec, opts| %>
  703. [<%= sec %>]
  704. <% opts.each do |optline| %>
  705. <%= optline %>
  706. <% end %>
  707. <% end %>
  708. <% end %>
  709. [database]
  710. #
  711. # Options defined in oslo.db
  712. #
  713. backend=sqlalchemy
  714. #### (StrOpt) The backend to use for db
  715. connection=<%= @sql_connection %>
  716. # sql_connection=sqlite:///$state_path/$sqlite_db
  717. #### (StrOpt) The SQLAlchemy connection string used to connect to the
  718. #### database
  719. # sql_connection_debug=0
  720. #### (IntOpt) Verbosity of SQL debugging information. 0=None,
  721. #### 100=Everything
  722. [keystone_authtoken]
  723. #
  724. # Options defined in keystonemiddleware.auth_token
  725. #
  726. # Complete public Identity API endpoint (string value)
  727. auth_uri = <%= @auth_uri %>
  728. # Complete admin Identity API endpoint. This should specify
  729. # the unversioned root endpoint e.g. https://localhost:35357/
  730. # (string value)
  731. identity_uri = <%= @identity_uri %>
  732. # API version of the admin Identity API endpoint (string
  733. # value)
  734. <% if node['openstack']['block-storage']['api']['auth']['version'] != 'v2.0' %>
  735. auth_version = <%= node['openstack']['block-storage']['api']['auth']['version'] %>
  736. <% end %>
  737. # Do not handle authorization requests within the middleware,
  738. # but delegate the authorization decision to downstream WSGI
  739. # components (boolean value)
  740. #delay_auth_decision=false
  741. # Request timeout value for communicating with Identity API
  742. # server. (boolean value)
  743. #http_connect_timeout=<None>
  744. # How many times are we trying to reconnect when communicating
  745. # with Identity API Server. (integer value)
  746. #http_request_max_retries=3
  747. # This option is deprecated and may be removed in a future
  748. # release. Single shared secret with the Keystone
  749. # configuration used for bootstrapping a Keystone
  750. # installation, or otherwise bypassing the normal
  751. # authentication process. This option should not be used, use
  752. # `admin_user` and `admin_password` instead. (string value)
  753. #admin_token=<None>
  754. # Keystone account username (string value)
  755. admin_user = <%= node["openstack"]["block-storage"]["service_user"] %>
  756. # Keystone account password (string value)
  757. admin_password = <%= @service_pass %>
  758. # Keystone service account tenant name to validate user tokens
  759. # (string value)
  760. admin_tenant_name = <%= node["openstack"]["block-storage"]["service_tenant_name"] %>
  761. # Env key for the swift cache (string value)
  762. #cache=<None>
  763. # Required if Keystone server requires client certificate
  764. # (string value)
  765. #certfile=<None>
  766. # Required if Keystone server requires client certificate
  767. # (string value)
  768. #keyfile=<None>
  769. # A PEM encoded Certificate Authority to use when verifying
  770. # HTTPs connections. Defaults to system CAs. (string value)
  771. #cafile=<None>
  772. <% if node['openstack']['block-storage']['api']['auth']['cafile'] %>
  773. cafile = <%= node['openstack']['block-storage']['api']['auth']['cafile'] %>
  774. <% end %>
  775. # Verify HTTPS connections. (boolean value)
  776. #insecure=false
  777. insecure = <%= node['openstack']['block-storage']['api']['auth']['insecure'] %>
  778. # Directory used to cache files related to PKI tokens (string
  779. # value)
  780. signing_dir = <%= node["openstack"]["block-storage"]["api"]["auth"]["cache_dir"] %>
  781. # Optionally specify a list of memcached server(s) to use for
  782. # caching. If left undefined, tokens will instead be cached
  783. # in-process. (list value)
  784. # Deprecated group/name - [DEFAULT]/memcache_servers
  785. #memcached_servers=<None>
  786. <% if node['openstack']['block-storage']['api']['auth']['memcached_servers'] %>
  787. memcached_servers = <%= node['openstack']['block-storage']['api']['auth']['memcached_servers'] %>
  788. <% end %>
  789. # In order to prevent excessive effort spent validating
  790. # tokens, the middleware caches previously-seen tokens for a
  791. # configurable duration (in seconds). Set to -1 to disable
  792. # caching completely. (integer value)
  793. #token_cache_time=300
  794. # Determines the frequency at which the list of revoked tokens
  795. # is retrieved from the Identity service (in seconds). A high
  796. # number of revocation events combined with a low cache
  797. # duration may significantly reduce performance. (integer
  798. # value)
  799. #revocation_cache_time=10
  800. # (optional) if defined, indicate whether token data should be
  801. # authenticated or authenticated and encrypted. Acceptable
  802. # values are MAC or ENCRYPT. If MAC, token data is
  803. # authenticated (with HMAC) in the cache. If ENCRYPT, token
  804. # data is encrypted and authenticated in the cache. If the
  805. # value is not one of these options or empty, auth_token will
  806. # raise an exception on initialization. (string value)
  807. #memcache_security_strategy=<None>
  808. <% if node['openstack']['block-storage']['api']['auth']['memcache_security_strategy'] %>
  809. memcache_security_strategy = <%= node['openstack']['block-storage']['api']['auth']['memcache_security_strategy'] %>
  810. <% end %>
  811. # (optional, mandatory if memcache_security_strategy is
  812. # defined) this string is used for key derivation. (string
  813. # value)
  814. #memcache_secret_key=<None>
  815. <% if node['openstack']['block-storage']['api']['auth']['memcache_secret_key'] %>
  816. memcache_secret_key = <%= node['openstack']['block-storage']['api']['auth']['memcache_secret_key'] %>
  817. <% end %>
  818. # (optional) indicate whether to set the X-Service-Catalog
  819. # header. If False, middleware will not ask for service
  820. # catalog on token validation and will not set the X-Service-
  821. # Catalog header. (boolean value)
  822. #include_service_catalog=true
  823. # Used to control the use and type of token binding. Can be
  824. # set to: "disabled" to not check token binding. "permissive"
  825. # (default) to validate binding information if the bind type
  826. # is of a form known to the server and ignore it if not.
  827. # "strict" like "permissive" but if the bind type is unknown
  828. # the token will be rejected. "required" any form of token
  829. # binding is needed to be allowed. Finally the name of a
  830. # binding method that must be present in tokens. (string
  831. # value)
  832. #enforce_token_bind=permissive
  833. # If true, the revocation list will be checked for cached
  834. # tokens. This requires that PKI tokens are configured on the
  835. # Keystone server. (boolean value)
  836. #check_revocations_for_cached=false
  837. # Hash algorithms to use for hashing PKI tokens. This may be a
  838. # single algorithm or multiple. The algorithms are those
  839. # supported by Python standard hashlib.new(). The hashes will
  840. # be tried in the order given, so put the preferred one first
  841. # for performance. The result of the first hash will be stored
  842. # in the cache. This will typically be set to multiple values
  843. # only while migrating from a less secure algorithm to a more
  844. # secure one. Once all the old tokens are expired this option
  845. # should be set to a single value for better performance.
  846. # (list value)
  847. #hash_algorithms=md5
  848. hash_algorithms = <%= node['openstack']['block-storage']['api']['auth']['hash_algorithms'] %>
  849. [oslo_concurrency]
  850. # lock_path
  851. lock_path=<%= node["openstack"]["block-storage"]["lock_path"] %>
  852. <% if @mq_service_type == "qpid" %>
  853. [oslo_messaging_qpid]
  854. #
  855. # From oslo.messaging
  856. #
  857. # from oslo/messaging/_drivers/amqp.py
  858. amqp_durable_queues=<%= node['openstack']['mq']['block-storage']['durable_queues'] %>
  859. amqp_auto_delete=<%= node['openstack']['mq']['block-storage']['auto_delete'] %>
  860. rpc_conn_pool_size=<%= node["openstack"]["block-storage"]["rpc_conn_pool_size"] %>
  861. #### (IntOpt) Size of RPC connection pool
  862. ##### QPID #####
  863. ######## defined in cinder.openstack.common.rpc.impl_qpid ########
  864. qpid_hostname=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["host"] %>
  865. #### (StrOpt) Qpid broker hostname
  866. qpid_port=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["port"] %>
  867. #### (StrOpt) Qpid broker port
  868. qpid_username=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["username"] %>
  869. #### (StrOpt) Username for qpid connection
  870. qpid_password=<%= @mq_password %>
  871. #### (StrOpt) Password for qpid connection
  872. qpid_sasl_mechanisms=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["sasl_mechanisms"] %>
  873. #### (StrOpt) Space separated list of SASL mechanisms to use for auth
  874. qpid_reconnect=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect"] %>
  875. #### (BoolOpt) Automatically reconnect
  876. qpid_reconnect_timeout=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect_timeout"] %>
  877. #### (IntOpt) Reconnection timeout in seconds
  878. qpid_reconnect_limit=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect_limit"] %>
  879. #### (IntOpt) Max reconnections before giving up
  880. qpid_reconnect_interval_min=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect_interval_min"] %>
  881. #### (IntOpt) Minimum seconds between reconnection attempts
  882. qpid_reconnect_interval_max=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect_interval_max"] %>
  883. #### (IntOpt) Maximum seconds between reconnection attempts
  884. qpid_reconnect_interval=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect_interval"] %>
  885. #### (IntOpt) Equivalent to setting max and min to the same value
  886. qpid_heartbeat=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["heartbeat"] %>
  887. #### (IntOpt) Seconds between connection keepalive heartbeats
  888. qpid_protocol=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["protocol"] %>
  889. #### (StrOpt) Transport to use, either 'tcp' or 'ssl'
  890. qpid_tcp_nodelay=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["tcp_nodelay"] %>
  891. #### (BoolOpt) Disable Nagle algorithm
  892. qpid_topology_version=<%= node['openstack']['mq']['block-storage']['qpid']['topology_version'] %>
  893. #### (IntOpt) See oslo/messaging/_drivers/impl_qpid.py for details
  894. notification_topics=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["notification_topic"] %>
  895. #### (ListOpt) AMQP topic used for openstack notifications
  896. <% end %>
  897. <% if @mq_service_type == "rabbitmq" %>
  898. [oslo_messaging_rabbit]
  899. #
  900. # From oslo.messaging
  901. #
  902. # Number of seconds after which the Rabbit broker is considered down if heartbeat's keep-alive fails (0 disable the heartbeat)
  903. heartbeat_timeout_threshold=<%= node['openstack']['mq']['block-storage']['rabbit']['heartbeat_timeout_threshold'] %>
  904. # How often times during the heartbeat_timeout_threshold we check the heartbeat
  905. heartbeat_rate=<%= node['openstack']['mq']['block-storage']['rabbit']['heartbeat_rate'] %>
  906. # from oslo/messaging/_drivers/amqp.py
  907. amqp_durable_queues=<%= node['openstack']['mq']['block-storage']['durable_queues'] %>
  908. amqp_auto_delete=<%= node['openstack']['mq']['block-storage']['auto_delete'] %>
  909. rpc_conn_pool_size=<%= node["openstack"]["block-storage"]["rpc_conn_pool_size"] %>
  910. #### (IntOpt) Size of RPC connection pool
  911. # fake_rabbit=false
  912. #### (BoolOpt) If passed, use a fake RabbitMQ provider
  913. ######## defined in cinder.openstack.common.rpc.impl_kombu ########
  914. <% if node['openstack']['mq']['block-storage']['rabbit']['use_ssl'] -%>
  915. # Connect over SSL for RabbitMQ. (boolean value)
  916. rabbit_use_ssl=true
  917. <% if node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_version'] -%>
  918. # SSL version to use (valid only if SSL enabled). valid values
  919. # are TLSv1 and SSLv23. SSLv2 and SSLv3 may be available on
  920. # some distributions. (string value)
  921. kombu_ssl_version=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_version'] %>
  922. <% end -%>
  923. <% if node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_keyfile'] -%>
  924. # SSL key file (valid only if SSL enabled)
  925. kombu_ssl_keyfile=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_keyfile'] %>
  926. <% end -%>
  927. <% if node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_certfile'] -%>
  928. # SSL cert file (valid only if SSL enabled)
  929. kombu_ssl_certfile=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_certfile'] %>
  930. <% end -%>
  931. <% if node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_ca_certs'] -%>
  932. # SSL certification authority file (valid only if SSL enabled)
  933. kombu_ssl_ca_certs=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_ca_certs'] %>
  934. <% end -%>
  935. # How long to wait before reconnecting in response to an AMQP consumer cancel notification
  936. kombu_reconnect_delay=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_reconnect_delay'] %>
  937. # How long to wait before considering a reconnect attempt to have failed.
  938. # This value should not be longer than rpc_response_timeout
  939. kombu_reconnect_timeout=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_reconnect_timeout'] %>
  940. <% end -%>
  941. <% if node["openstack"]["mq"]["block-storage"]["rabbit"]["ha"] -%>
  942. rabbit_hosts=<%= @rabbit_hosts %>
  943. #### (ListOpt) RabbitMQ HA cluster host:port pairs
  944. # rabbit_durable_queues=false
  945. #### (BoolOpt) use durable queues in RabbitMQ
  946. rabbit_ha_queues=True
  947. #### (BoolOpt) use H/A queues in RabbitMQ (x-ha-policy: all).You need to
  948. #### wipe RabbitMQ database when changing this option.
  949. <% else -%>
  950. rabbit_host=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["host"] %>
  951. #### (StrOpt) The RabbitMQ broker address where a single node is used
  952. rabbit_port=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["port"] %>
  953. #### (IntOpt) The RabbitMQ broker port where a single node is used
  954. <% end -%>
  955. rabbit_userid=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["userid"] %>
  956. #### (StrOpt) the RabbitMQ userid
  957. rabbit_password=<%= @mq_password %>
  958. #### (StrOpt) the RabbitMQ password
  959. rabbit_virtual_host=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["vhost"] %>
  960. #### (StrOpt) the RabbitMQ virtual host
  961. notification_topics=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["notification_topic"] %>
  962. #### (ListOpt) AMQP topic used for openstack notifications
  963. rabbit_retry_interval=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["rabbit_retry_interval"] %>
  964. #### (IntOpt) how frequently to retry connecting with RabbitMQ
  965. # rabbit_retry_backoff=2
  966. #### (IntOpt) how long to backoff for between retries when connecting to
  967. #### RabbitMQ
  968. rabbit_max_retries=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["rabbit_max_retries"] %>
  969. #### (IntOpt) maximum retries with trying to connect to RabbitMQ (the
  970. #### default of 0 implies an infinite retry count)
  971. <% end %>