1377 lines
52 KiB
Plaintext
1377 lines
52 KiB
Plaintext
<%= node["openstack"]["block-storage"]["custom_template_banner"] %>
|
|
|
|
[DEFAULT]
|
|
|
|
######## defined in cinder.openstack.common.cfg:CommonConfigOpts ########
|
|
|
|
debug=<%= node["openstack"]["block-storage"]["debug"] %>
|
|
#### (BoolOpt) Print debugging output
|
|
|
|
verbose=<%= node["openstack"]["block-storage"]["verbose"] %>
|
|
#### (BoolOpt) Print more verbose output
|
|
|
|
notification_driver=<%= node["openstack"]["block-storage"]["notification_driver"] %>
|
|
|
|
# log_config=<None>
|
|
#### (StrOpt) If this option is specified, the logging configuration file
|
|
#### specified is used and overrides any other logging options
|
|
#### specified. Please see the Python logging module
|
|
#### documentation for details on logging configuration files.
|
|
|
|
# log_format=%(asctime)s %(levelname)8s [%(name)s] %(message)s
|
|
#### (StrOpt) A logging.Formatter log message format string which may use
|
|
#### any of the available logging.LogRecord attributes. Default:
|
|
#### %default
|
|
|
|
# log_date_format=%Y-%m-%d %H:%M:%S
|
|
#### (StrOpt) Format string for %(asctime)s in log records. Default:
|
|
#### %default
|
|
|
|
# log_file=<None>
|
|
#### (StrOpt) (Optional) Name of log file to output to. If not set,
|
|
#### logging will go to stdout.
|
|
|
|
# log_dir=<None>
|
|
#### (StrOpt) (Optional) The directory to keep log files in (will be
|
|
#### prepended to --logfile)
|
|
|
|
# ================= Syslog Options ============================
|
|
|
|
<% if node["openstack"]["block-storage"]["syslog"]["use"] %>
|
|
log_config = /etc/openstack/logging.conf
|
|
<% else %>
|
|
log_file = /var/log/cinder/cinder.log
|
|
<% end %>
|
|
|
|
######## defined in cinder.flags ########
|
|
|
|
# connection_type=<None>
|
|
#### (StrOpt) Virtualization api connection type : libvirt, xenapi, or
|
|
#### fake
|
|
|
|
# api_paste_config=api-paste.ini
|
|
#### (StrOpt) File name for the paste.deploy config for cinder-api
|
|
|
|
# DEPRECATED: Deploy v1 of the Cinder API. (boolean value)
|
|
enable_v1_api=<%= node["openstack"]["block-storage"]["enable_v1_api"] %>
|
|
|
|
# Deploy v2 of the Cinder API. (boolean value)
|
|
enable_v2_api=<%= node["openstack"]["block-storage"]["enable_v2_api"] %>
|
|
|
|
# pybasedir=/usr/lib/python/site-packages
|
|
#### (StrOpt) Directory where the cinder python module is installed
|
|
|
|
# bindir=$pybasedir/bin
|
|
#### (StrOpt) Directory where cinder binaries are installed
|
|
|
|
state_path=<%= node["openstack"]["block-storage"]["volume"]["state_path"] %>
|
|
#### (StrOpt) Top-level directory for maintaining cinder's state
|
|
|
|
my_ip=<%= node["ipaddress"] %>
|
|
#### (StrOpt) ip address of this host
|
|
|
|
glance_host=<%= @glance_host %>
|
|
#### (StrOpt) default glance hostname or ip
|
|
|
|
glance_port=<%= @glance_port %>
|
|
#### (IntOpt) default glance port
|
|
|
|
glance_api_servers=<%= @glance_scheme %>://<%= @glance_host %>:<%= @glance_port %>
|
|
#### (ListOpt) A list of the glance api servers available to cinder
|
|
#### ([http|https]://[hostname|ip]:port)
|
|
|
|
glance_api_insecure=<%= node['openstack']['block-storage']['image']['glance_api_insecure'] %>
|
|
#### (BoolOpt) Allow to perform insecure SSL (https) requests to 'glance'
|
|
|
|
glance_ca_certificates_file=<%= node['openstack']['block-storage']['image']['glance_ca_certificates_file'] %>
|
|
#### (StrOpt) Location of ca certificates file to use for glance client requests
|
|
|
|
# glance_num_retries=0
|
|
#### (IntOpt) Number retries when downloading an image from glance
|
|
|
|
glance_api_version=<%= node['openstack']['block-storage']['image']['glance_api_version'] %>
|
|
#### (IntOpt) Version of the glance API to use
|
|
|
|
# scheduler_topic=cinder-scheduler
|
|
#### (StrOpt) the topic scheduler nodes listen on
|
|
|
|
# volume_topic=cinder-volume
|
|
#### (StrOpt) the topic volume nodes listen on
|
|
|
|
api_rate_limit=<%= node["openstack"]["block-storage"]["api"]["ratelimit"] %>
|
|
#### (BoolOpt) whether to rate limit the api
|
|
|
|
# osapi_volume_ext_list=
|
|
#### (ListOpt) Specify list of extensions to load when using
|
|
#### osapi_volume_extension option with
|
|
#### cinder.api.openstack.volume.contrib.select_extensions
|
|
|
|
# osapi_volume_extension=cinder.api.openstack.volume.contrib.standard_extensions
|
|
#### (MultiStrOpt) osapi volume extension to load
|
|
|
|
# osapi_compute_link_prefix=<None>
|
|
#### (StrOpt) Base URL that will be presented to users in links to the
|
|
#### OpenStack Compute API
|
|
|
|
# osapi_max_limit=1000
|
|
#### (IntOpt) the maximum number of items returned in a single response
|
|
#### from a collection resource
|
|
|
|
# sqlite_db=cinder.sqlite
|
|
#### (StrOpt) the filename to use with sqlite
|
|
|
|
# sqlite_synchronous=true
|
|
#### (BoolOpt) If passed, use synchronous mode for sqlite
|
|
|
|
# sql_idle_timeout=3600
|
|
#### (IntOpt) timeout before idle sql connections are reaped
|
|
|
|
# sql_max_retries=10
|
|
#### (IntOpt) maximum db connection retries during startup. (setting -1
|
|
#### implies an infinite retry count)
|
|
|
|
# sql_retry_interval=10
|
|
#### (IntOpt) interval between retries of opening a sql connection
|
|
|
|
# volume_manager=cinder.volume.manager.VolumeManager
|
|
#### (StrOpt) full class name for the Manager for volume
|
|
|
|
# scheduler_manager=cinder.scheduler.manager.SchedulerManager
|
|
#### (StrOpt) full class name for the Manager for scheduler
|
|
|
|
<% if node['openstack']['block-storage']['host'] -%>
|
|
host=<%= node['openstack']['block-storage']['host'] %>
|
|
<% end -%>
|
|
#### (StrOpt) Name of this node. This can be an opaque identifier. It is
|
|
#### not necessarily a hostname, FQDN, or IP address.
|
|
|
|
storage_availability_zone=<%= node["openstack"]["block-storage"]["storage_availability_zone"] %>
|
|
#### (StrOpt) availability zone of this node
|
|
|
|
# memcached_servers=<None>
|
|
#### (ListOpt) Memcached servers or None for in process cache.
|
|
|
|
# volume_usage_audit_period=month
|
|
#### (StrOpt) time period to generate volume usages for. Time period must
|
|
#### be hour, day, month or year
|
|
|
|
# root_helper=cinder-rootwrap
|
|
#### (StrOpt) Deprecated: command to use for running commands as root
|
|
|
|
rootwrap_config=/etc/cinder/rootwrap.conf
|
|
#### (StrOpt) Path to the rootwrap configuration file to use for running
|
|
#### commands as root
|
|
|
|
# monkey_patch=false
|
|
#### (BoolOpt) Whether to log monkey patching
|
|
|
|
# monkey_patch_modules=
|
|
#### (ListOpt) List of modules/decorators to monkey patch
|
|
|
|
# service_down_time=60
|
|
#### (IntOpt) maximum time since last check-in for up service
|
|
|
|
# volume_api_class=cinder.volume.api.API
|
|
#### (StrOpt) The full class name of the volume API class to use
|
|
|
|
auth_strategy=keystone
|
|
#### (StrOpt) The strategy to use for auth. Supports noauth, keystone, and
|
|
#### deprecated.
|
|
|
|
######## defined in cinder.policy ########
|
|
|
|
# policy_file=policy.json
|
|
#### (StrOpt) JSON file representing policy
|
|
|
|
# policy_default_rule=default
|
|
#### (StrOpt) Rule checked when requested rule is not found
|
|
|
|
|
|
######## defined in cinder.quota ########
|
|
|
|
quota_volumes=<%= node["openstack"]["block-storage"]["quota_volumes"] %>
|
|
#### (IntOpt) number of volumes allowed per project
|
|
|
|
quota_gigabytes=<%= node["openstack"]["block-storage"]["quota_gigabytes"] %>
|
|
#### (IntOpt) number of volume gigabytes allowed per project
|
|
|
|
# reservation_expire=86400
|
|
#### (IntOpt) number of seconds until a reservation expires
|
|
|
|
# until_refresh=0
|
|
#### (IntOpt) count of reservations until usage is refreshed
|
|
|
|
# max_age=0
|
|
#### (IntOpt) number of seconds between subsequent usage refreshes
|
|
|
|
quota_driver=<%= node["openstack"]["block-storage"]["quota_driver"] %>
|
|
#### (StrOpt) default driver to use for quota checks
|
|
|
|
# Number of volume snapshots allowed per project (integer
|
|
# value)
|
|
quota_snapshots=<%= node["openstack"]["block-storage"]["quota_snapshots"] %>
|
|
|
|
# Whether snapshots count against GigaByte quota (boolean
|
|
# value)
|
|
no_snapshot_gb_quota=<%= node["openstack"]["block-storage"]["no_snapshot_gb_quota"] %>
|
|
|
|
# Enables or disables use of default quota class with default
|
|
# quota. (boolean value)
|
|
use_default_quota_class=<%= node["openstack"]["block-storage"]["use_default_quota_class"] %>
|
|
|
|
######## defined in cinder.service ########
|
|
|
|
# report_interval=10
|
|
#### (IntOpt) seconds between nodes reporting state to datastore
|
|
|
|
# periodic_interval=60
|
|
#### (IntOpt) seconds between running periodic tasks
|
|
|
|
# periodic_fuzzy_delay=60
|
|
#### (IntOpt) range of seconds to randomly delay when starting the
|
|
#### periodic task scheduler to reduce stampeding. (Disable by
|
|
#### setting to 0)
|
|
|
|
osapi_volume_listen=<%= @volume_api_bind_address %>
|
|
#### (StrOpt) IP address for OpenStack Volume API to listen
|
|
|
|
#### (IntOpt) port for os volume api to listen
|
|
osapi_volume_listen_port=<%= @volume_api_bind_port %>
|
|
|
|
# Number of workers for OpenStack Volume API service. The
|
|
# default is equal to the number of CPUs available. (integer
|
|
# value)
|
|
osapi_volume_workers=<%= node["openstack"]["block-storage"]["osapi_volume_workers"] %>
|
|
|
|
######## defined in cinder.test ########
|
|
|
|
# sqlite_clean_db=clean.sqlite
|
|
#### (StrOpt) File name of clean sqlite db
|
|
|
|
# fake_tests=true
|
|
#### (BoolOpt) should we use everything for testing
|
|
|
|
|
|
######## defined in cinder.api.auth ########
|
|
|
|
# use_forwarded_for=false
|
|
#### (BoolOpt) Treat X-Forwarded-For as the canonical remote address. Only
|
|
#### enable this if you have a sanitizing proxy.
|
|
|
|
|
|
######## defined in cinder.api.sizelimit ########
|
|
|
|
# osapi_max_request_body_size=114688
|
|
#### (IntOpt) Max size for body of a request
|
|
|
|
|
|
######## defined in cinder.common.deprecated ########
|
|
|
|
# fatal_deprecations=false
|
|
#### (BoolOpt) make deprecations fatal
|
|
|
|
|
|
######## defined in cinder.backup.manager ########
|
|
<% if node['openstack']['block-storage']['backup']['enabled'] %>
|
|
backup_driver=<%= node['openstack']['block-storage']['backup']['driver'] %>
|
|
<% if node['openstack']['block-storage']['backup']['driver'] == 'cinder.backup.drivers.swift' %>
|
|
######## defined in cinder.backup.driver.swift ########
|
|
# The URL of the Swift endpoint (string value)
|
|
<% if node['openstack']['block-storage']['backup']['swift']['url'] %>
|
|
backup_swift_url=<%= node['openstack']['block-storage']['backup']['swift']['url'] %>
|
|
<% else %>
|
|
# backup_swift_url=<None>
|
|
<% end %>
|
|
|
|
# Info to match when looking for swift in the service catalog.
|
|
# Format is: separated values of the form:
|
|
# <service_type>:<service_name>:<endpoint_type> - Only used if
|
|
# backup_swift_url is unset (string value)
|
|
swift_catalog_info=<%= node['openstack']['block-storage']['backup']['swift']['catalog_info'] %>
|
|
|
|
# Swift authentication mechanism (string value)
|
|
backup_swift_auth=<%= node['openstack']['block-storage']['backup']['swift']['auth'] %>
|
|
|
|
# Swift authentication version. Specify "1" for auth 1.0, or
|
|
# "2" for auth 2.0 (string value)
|
|
backup_swift_auth_version=<%= node['openstack']['block-storage']['backup']['swift']['auth_version'] %>
|
|
|
|
# Swift tenant/account name. Required when connecting to an
|
|
# auth 2.0 system (string value)
|
|
<% if node['openstack']['block-storage']['backup']['swift']['tenant'] %>
|
|
backup_swift_tenant=<%= node['openstack']['block-storage']['backup']['swift']['tenant'] %>
|
|
<% else %>
|
|
# backup_swift_tenant=<None>
|
|
<% end %>
|
|
|
|
# Swift user name (string value)
|
|
<% if node['openstack']['block-storage']['backup']['swift']['user'] %>
|
|
backup_swift_user=<%= node['openstack']['block-storage']['backup']['swift']['user'] %>
|
|
<% else %>
|
|
# backup_swift_user=<None>
|
|
<% end %>
|
|
|
|
# Swift key for authentication (string value)
|
|
<% if node['openstack']['block-storage']['backup']['swift']['key'] %>
|
|
backup_swift_key=<%= node['openstack']['block-storage']['backup']['swift']['key'] %>
|
|
<% else %>
|
|
# backup_swift_key=<None>
|
|
<% end %>
|
|
|
|
# The default Swift container to use (string value)
|
|
backup_swift_container=<%= node['openstack']['block-storage']['backup']['swift']['container'] %>
|
|
|
|
# The size in bytes of Swift backup objects (integer value)
|
|
backup_swift_object_size=<%= node['openstack']['block-storage']['backup']['swift']['object_size'] %>
|
|
|
|
# The size in bytes that changes are tracked for incremental
|
|
# backups. backup_swift_object_size has to be multiple of
|
|
# backup_swift_block_size. (integer value)
|
|
backup_swift_block_size=<%= node['openstack']['block-storage']['backup']['swift']['block_size'] %>
|
|
|
|
# The number of retries to make for Swift operations (integer
|
|
# value)
|
|
backup_swift_retry_attempts=<%= node['openstack']['block-storage']['backup']['swift']['retry_attempts'] %>
|
|
|
|
# The backoff time in seconds between Swift retries (integer
|
|
# value)
|
|
backup_swift_retry_backoff=<%= node['openstack']['block-storage']['backup']['swift']['retry_backoff'] %>
|
|
|
|
# Enable or Disable the timer to send the periodic progress
|
|
# notifications to Ceilometer when backing up the volume to
|
|
# the Swift backend storage. The default value is True to
|
|
# enable the timer. (boolean value)
|
|
backup_swift_enable_progress_timer=<%= node['openstack']['block-storage']['backup']['swift']['enable_progress_timer'] %>
|
|
|
|
<% end %>
|
|
<% end %>
|
|
|
|
######## defined in cinder.db.api ########
|
|
|
|
# enable_new_services=true
|
|
#### (BoolOpt) Services to be added to the available pool on create
|
|
|
|
volume_name_template=<%= node["openstack"]["block-storage"]["volume_name_template"] %>
|
|
#### (StrOpt) Template string to be used to generate volume names
|
|
|
|
snapshot_name_template=<%= node["openstack"]["block-storage"]["snapshot_name_template"] %>
|
|
#### (StrOpt) Template string to be used to generate snapshot names
|
|
|
|
|
|
######## defined in cinder.db.base ########
|
|
|
|
# db_driver=cinder.db
|
|
#### (StrOpt) driver to use for database access
|
|
|
|
|
|
######## defined in cinder.openstack.common.log ########
|
|
|
|
# logdir=<None>
|
|
### (StrOpt) Log output to a per-service log file in named directory
|
|
|
|
# logfile=<None>
|
|
#### (StrOpt) Log output to a named file
|
|
|
|
# use_stderr=true
|
|
#### (BoolOpt) Log output to standard error
|
|
|
|
# logfile_mode=0644
|
|
#### (StrOpt) Default file mode used when creating log files
|
|
|
|
# logging_context_format_string=%(asctime)s %(levelname)s %(name)s [%(request_id)s %(user_id)s %(project_id)s] %(instance)s%(message)s
|
|
#### (StrOpt) format string to use for log messages with context
|
|
|
|
# logging_default_format_string=%(asctime)s %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
|
|
#### (StrOpt) format string to use for log messages without context
|
|
|
|
# logging_debug_format_suffix=%(funcName)s %(pathname)s:%(lineno)d
|
|
#### (StrOpt) data to append to log format when level is DEBUG
|
|
|
|
# logging_exception_prefix=%(asctime)s %(process)d TRACE %(name)s %(instance)s
|
|
#### (StrOpt) prefix each line of exception output with this format
|
|
|
|
# default_log_levels=amqplib=WARN,sqlalchemy=WARN,boto=WARN,suds=INFO,keystone=INFO,eventlet.wsgi.server=WARN
|
|
#### (ListOpt) list of logger=LEVEL pairs
|
|
|
|
# publish_errors=false
|
|
#### (BoolOpt) publish error events
|
|
|
|
# instance_format="[instance: %(uuid)s] "
|
|
#### (StrOpt) If an instance is passed with the log message, format it
|
|
#### like this
|
|
|
|
# instance_uuid_format="[instance: %(uuid)s] "
|
|
#### (StrOpt) If an instance UUID is passed with the log message, format
|
|
#### it like this
|
|
|
|
|
|
######## defined in cinder.openstack.common.notifier.api ########
|
|
|
|
#### (MultiStrOpt) Driver or drivers to handle sending notifications
|
|
|
|
# default_notification_level=INFO
|
|
#### (StrOpt) Default notification level for outgoing notifications
|
|
|
|
# default_publisher_id=$host
|
|
#### (StrOpt) Default publisher_id for outgoing notifications
|
|
|
|
######## defined in cinder.openstack.common.rpc ########
|
|
|
|
rpc_backend=<%= node["openstack"]["block_storage"]["rpc_backend"] %>
|
|
#### (StrOpt) The messaging module to use, defaults to kombu.
|
|
|
|
control_exchange=<%=node['openstack']['block-storage']['control_exchange']%>
|
|
#### (StrOpt) AMQP exchange to connect to if using RabbitMQ or Qpid
|
|
|
|
rpc_thread_pool_size=<%= node["openstack"]["block-storage"]["rpc_thread_pool_size"] %>
|
|
#### (IntOpt) Size of RPC thread pool
|
|
|
|
rpc_response_timeout=<%= node["openstack"]["block-storage"]["rpc_response_timeout"] %>
|
|
#### (IntOpt) Seconds to wait for a response from call or multicall
|
|
|
|
# rpc_cast_timeout=30
|
|
#### (IntOpt) Seconds to wait before a cast expires (TTL). Only supported
|
|
#### by impl_zmq.
|
|
|
|
# allowed_rpc_exception_modules=cinder.openstack.common.exception,nova.exception,cinder.exception
|
|
#### (ListOpt) Modules of exceptions that are permitted to be recreatedupon
|
|
#### receiving exception data from an rpc call.
|
|
|
|
|
|
######## defined in cinder.openstack.common.rpc.impl_zmq ########
|
|
|
|
# rpc_zmq_bind_address=*
|
|
#### (StrOpt) ZeroMQ bind address. Should be a wildcard (*), an ethernet
|
|
#### interface, or IP. The "host" option should point or resolve
|
|
#### to this address.
|
|
|
|
# rpc_zmq_matchmaker=cinder.openstack.common.rpc.matchmaker.MatchMakerLocalhost
|
|
#### (StrOpt) MatchMaker driver
|
|
|
|
# rpc_zmq_port=9501
|
|
#### (IntOpt) ZeroMQ receiver listening port
|
|
|
|
# rpc_zmq_port_pub=9502
|
|
#### (IntOpt) ZeroMQ fanout publisher port
|
|
|
|
# rpc_zmq_contexts=1
|
|
#### (IntOpt) Number of ZeroMQ contexts, defaults to 1
|
|
|
|
# rpc_zmq_ipc_dir=/var/run/openstack
|
|
#### (StrOpt) Directory for holding IPC sockets
|
|
|
|
# rpc_zmq_host=cinder
|
|
#### (StrOpt) Name of this node. Must be a valid hostname, FQDN, or IP
|
|
#### address. Must match "host" option, if running Nova.
|
|
|
|
|
|
######## defined in cinder.openstack.common.rpc.matchmaker ########
|
|
|
|
# matchmaker_ringfile=/etc/nova/matchmaker_ring.json
|
|
#### (StrOpt) Matchmaker ring file (JSON)
|
|
|
|
|
|
######## defined in cinder.scheduler.driver ########
|
|
|
|
# scheduler_host_manager=cinder.scheduler.host_manager.HostManager
|
|
#### (StrOpt) The scheduler host manager class to use
|
|
|
|
|
|
######## defined in cinder.scheduler.manager ########
|
|
|
|
# scheduler_driver=cinder.scheduler.simple.SimpleScheduler
|
|
#### (StrOpt) Default driver to use for the scheduler
|
|
|
|
|
|
######## defined in cinder.scheduler.simple ########
|
|
|
|
max_gigabytes=<%= node["openstack"]["block-storage"]["max_gigabytes"] %>
|
|
#### (IntOpt) maximum number of volume gigabytes to allow per host
|
|
|
|
|
|
######## defined in cinder.volume.api ########
|
|
|
|
# snapshot_same_host=true
|
|
#### (BoolOpt) Create volume from snapshot at the host where snapshot
|
|
#### resides
|
|
|
|
|
|
######## defined in cinder.volume.driver ########
|
|
<% if @enabled_drivers.include?("cinder.volume.drivers.lvm.LVMVolumeDriver") %>
|
|
volume_group=<%= node["openstack"]["block-storage"]["volume"]["volume_group"] %>
|
|
#### (StrOpt) Name for the VG that will contain exported volumes
|
|
volume_clear=<%= node["openstack"]["block-storage"]["volume"]["volume_clear"] %>
|
|
volume_clear_size=<%= node["openstack"]["block-storage"]["volume"]["volume_clear_size"] %>
|
|
|
|
<% end %>
|
|
# num_shell_tries=3
|
|
#### (IntOpt) number of times to attempt to run flakey shell commands
|
|
|
|
# num_iscsi_scan_tries=3
|
|
#### (IntOpt) number of times to rescan iSCSI target to find volume
|
|
|
|
# iscsi_num_targets=100
|
|
#### (IntOpt) Number of iscsi target ids per host
|
|
|
|
# iscsi_target_prefix=iqn.2010-10.org.openstack:
|
|
#### (StrOpt) prefix for iscsi volumes
|
|
|
|
iscsi_ip_address=<%= node["openstack"]["block-storage"]["volume"]["iscsi_ip_address"] %>
|
|
#### (StrOpt) The IP address where the iSCSI daemon is listening on
|
|
|
|
iscsi_port=<%= node["openstack"]["block-storage"]["volume"]["iscsi_port"] %>
|
|
#### (IntOpt) The port that the iSCSI daemon is listening on
|
|
|
|
<% if @enabled_drivers.include?("cinder.volume.drivers.rbd.RBDDriver") %>
|
|
|
|
#
|
|
# Options defined in cinder.volume.drivers.rbd
|
|
#
|
|
|
|
# The RADOS pool where rbd volumes are stored (string value)
|
|
rbd_pool=<%= node["openstack"]["block-storage"]["rbd"]["cinder"]["pool"] %>
|
|
|
|
# The RADOS client name for accessing rbd volumes - only set
|
|
# when using cephx authentication (string value)
|
|
rbd_user=<%= node["openstack"]["block-storage"]["rbd"]["user"] %>
|
|
|
|
# Path to the ceph configuration file (string value)
|
|
rbd_ceph_conf=<%= node["openstack"]["block-storage"]["rbd"]["conf_dir"] %>
|
|
|
|
# Flatten volumes created from snapshots to remove dependency
|
|
# from volume to snapshot (boolean value)
|
|
rbd_flatten_volume_from_snapshot=<%= node["openstack"]["block-storage"]["rbd"]["flatten_volume"] %>
|
|
|
|
# The libvirt uuid of the secret for the rbd_user volumes
|
|
# (string value)
|
|
rbd_secret_uuid=<%= node["openstack"]["block-storage"]["rbd"]["secret_uuid"] %>
|
|
|
|
# Maximum number of nested volume clones that are taken before
|
|
# a flatten occurs. Set to 0 to disable cloning. (integer
|
|
# value)
|
|
rbd_max_clone_depth=<%= node["openstack"]["block-storage"]["rbd"]["max_clone_depth"] %>
|
|
|
|
# Volumes will be chunked into objects of this size (in
|
|
# megabytes). (integer value)
|
|
rbd_store_chunk_size=<%= node["openstack"]["block-storage"]["rbd"]["chunk_size"] %>
|
|
|
|
# Timeout value (in seconds) used when connecting to ceph
|
|
# cluster. If value < 0, no timeout is set and default
|
|
# librados value is used. (integer value)
|
|
rados_connect_timeout=<%= node["openstack"]["block-storage"]["rbd"]["rados_timeout"] %>
|
|
|
|
<% end %>
|
|
# volume_tmp_dir=<None>
|
|
#### (StrOpt) where to store temporary image files if the volume driver
|
|
#### does not write them directly to the volume
|
|
|
|
|
|
######## defined in cinder.volume.iscsi ########
|
|
|
|
iscsi_helper=<%= node["openstack"]["block-storage"]["volume"]["iscsi_helper"] %>
|
|
#### (StrOpt) iscsi target user-land tool to use
|
|
|
|
volumes_dir=<%= node['openstack']['block-storage']['volume']['volumes_dir'] %>
|
|
#### (StrOpt) Volume configuration file storage directory
|
|
|
|
|
|
######## defined in cinder.volume.manager ########
|
|
|
|
volume_driver=<%= node["openstack"]["block-storage"]["volume"]["driver"] %>
|
|
#### (StrOpt) Driver to use for volume creation
|
|
|
|
# use_local_volumes=true
|
|
#### (BoolOpt) if True, will not discover local volumes
|
|
|
|
# volume_force_update_capabilities=false
|
|
#### (BoolOpt) if True will force update capabilities on each check
|
|
|
|
# Default volume type to use (string value)
|
|
default_volume_type=<%= node["openstack"]["block-storage"]["volume"]["default_volume_type"] %>
|
|
|
|
######## defined in cinder.volume.netapp ########
|
|
|
|
<% if @enabled_drivers.include?("cinder.volume.drivers.netapp.NetAppISCSIDriver") %>
|
|
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
|
|
#### (StrOpt) URL of the WSDL file for the DFM server
|
|
|
|
netapp_login=<%= node["openstack"]["block-storage"]["netapp"]["dfm_login"] %>
|
|
#### (StrOpt) User name for the DFM server
|
|
|
|
netapp_password=<%= node["openstack"]["block-storage"]["netapp"]["dfm_password"] %>
|
|
#### (StrOpt) Password for the DFM server
|
|
|
|
netapp_server_hostname=<%= node["openstack"]["block-storage"]["netapp"]["dfm_hostname"] %>
|
|
#### (StrOpt) Hostname for the DFM server
|
|
|
|
netapp_server_port=<%= node["openstack"]["block-storage"]["netapp"]["dfm_port"] %>
|
|
#### (IntOpt) Port number for the DFM server
|
|
|
|
netapp_storage_service=<%= node["openstack"]["block-storage"]["netapp"]["storage_service"] %>
|
|
#### (StrOpt) Storage service to use for provisioning (when
|
|
#### volume_type=None)
|
|
|
|
# netapp_storage_service_prefix=<None>
|
|
#### (StrOpt) Prefix of storage service name to use for provisioning
|
|
#### (volume_type name will be appended)
|
|
|
|
# netapp_vfiler=<None>
|
|
#### (StrOpt) Vfiler to use for provisioning
|
|
<% end %>
|
|
|
|
######## defined in cinder.volume.netapp_nfs ########
|
|
<% if @enabled_drivers.include?("cinder.volume.drivers.netapp.nfs.NetAppDirect7modeNfsDriver") %>
|
|
|
|
nfs_mount_point_base=<%= node["openstack"]["block-storage"]["nfs"]["mount_point_base"] %>
|
|
<% node["openstack"]["block-storage"]["netapp"]["netapp_server_hostname"].each do |h| %>
|
|
netapp_server_hostname=<%= h %>
|
|
<% end %>
|
|
netapp_server_port=<%= node["openstack"]["block-storage"]["netapp"]["netapp_server_port"] %>
|
|
netapp_login=<%= node["openstack"]["block-storage"]["netapp"]["netapp_server_login"] %>
|
|
netapp_password=<%= node["openstack"]["block-storage"]["netapp"]["netapp_server_password"] %>
|
|
nfs_shares_config=<%= node["openstack"]["block-storage"]["nfs"]["shares_config"] %>
|
|
nfs_disk_util=<%= node["openstack"]["block-storage"]["nfs"]["nfs_disk_util"] %>
|
|
nfs_sparsed_volumes=<%= node["openstack"]["block-storage"]["nfs"]["nfs_sparsed_volumes"] %>
|
|
|
|
<% end %>
|
|
|
|
######## defined in cinder.volume.nexenta.volume ########
|
|
|
|
# nexenta_host=
|
|
#### (StrOpt) IP address of Nexenta SA
|
|
|
|
# nexenta_rest_port=2000
|
|
#### (IntOpt) HTTP port to connect to Nexenta REST API server
|
|
|
|
# nexenta_rest_protocol=auto
|
|
#### (StrOpt) Use http or https for REST connection (default auto)
|
|
|
|
# nexenta_user=admin
|
|
#### (StrOpt) User name to connect to Nexenta SA
|
|
|
|
# nexenta_password=nexenta
|
|
#### (StrOpt) Password to connect to Nexenta SA
|
|
|
|
# nexenta_iscsi_target_portal_port=3260
|
|
#### (IntOpt) Nexenta target portal port
|
|
|
|
# nexenta_volume=cinder
|
|
#### (StrOpt) pool on SA that will hold all volumes
|
|
|
|
# nexenta_target_prefix=iqn.1986-03.com.sun:02:cinder-
|
|
#### (StrOpt) IQN prefix for iSCSI targets
|
|
|
|
# nexenta_target_group_prefix=cinder/
|
|
#### (StrOpt) prefix for iSCSI target groups on SA
|
|
|
|
# nexenta_blocksize=
|
|
#### (StrOpt) block size for volumes (blank=default,8KB)
|
|
|
|
# nexenta_sparse=false
|
|
#### (BoolOpt) flag to create sparse volumes
|
|
|
|
|
|
######## defined in cinder.volume.nfs ########
|
|
|
|
<% if @enabled_drivers.include?("cinder.volume.drivers.ibm.ibmnas.IBMNAS_NFSDriver") %>
|
|
|
|
nfs_shares_config=<%= node["openstack"]["block-storage"]["ibmnas"]["shares_config"] %>
|
|
#### (StrOpt) File with the list of available nfs shares
|
|
|
|
nfs_mount_point_base=<%= node["openstack"]["block-storage"]["ibmnas"]["mount_point_base"] %>
|
|
#### (StrOpt) Base dir where nfs expected to be mounted
|
|
|
|
nfs_sparsed_volumes=<%= node["openstack"]["block-storage"]["ibmnas"]["nfs_sparsed_volumes"] %>
|
|
#### (BoolOpt) Create volumes as sparsed files which take no space.If set
|
|
#### to False volume is created as regular file.In such case
|
|
#### volume creation takes a lot of time.
|
|
|
|
<% else %>
|
|
# nfs_shares_config=<None>
|
|
#### (StrOpt) File with the list of available nfs shares
|
|
|
|
# nfs_mount_point_base=$state_path/mnt
|
|
#### (StrOpt) Base dir where nfs expected to be mounted
|
|
|
|
# nfs_disk_util=df
|
|
#### (StrOpt) Use du or df for free space calculation
|
|
|
|
# nfs_sparsed_volumes=true
|
|
#### (BoolOpt) Create volumes as sparsed files which take no space.If set
|
|
#### to False volume is created as regular file.In such case
|
|
#### volume creation takes a lot of time.
|
|
<% end %>
|
|
|
|
|
|
######## defined in cinder.volume.san ########
|
|
|
|
<% if @enabled_drivers.include?("cinder.volume.drivers.ibm.storwize_svc.StorwizeSVCDriver") %>
|
|
san_ip=<%= node["openstack"]["block-storage"]["storwize"]["san_ip"] %>
|
|
#### (StrOpt) IP address of SAN controller
|
|
|
|
<% if node['openstack']['block-storage']['storwize']['san_private_key'].to_s.empty? %>
|
|
san_login=<%= node["openstack"]["block-storage"]["storwize"]["san_login"] %>
|
|
#### (StrOpt) Username for SAN controller
|
|
|
|
san_password=<%= @storwize_pass %>
|
|
#### (StrOpt) Password for SAN controller
|
|
<% end %>
|
|
|
|
san_private_key=<%= node["openstack"]["block-storage"]["storwize"]["san_private_key"] %>
|
|
#### (StrOpt) Filename of private key to use for SSH authentication
|
|
<% end %>
|
|
|
|
<% if @enabled_drivers.include?("cinder.volume.drivers.solidfire.SolidFire") %>
|
|
######## defined in cinder.volume.solidfire ########
|
|
sf_emulate_512=<%= node["openstack"]["block-storage"]["solidfire"]["sf_emulate"] %>
|
|
#### (BoolOpt) Set 512 byte emulation on volume creation;
|
|
|
|
san_ip=<%= node["openstack"]["block-storage"]["solidfire"]["san_ip"] %>
|
|
# #### (StrOpt) IP address of SolidFire MVIP
|
|
|
|
san_login=<%= node["openstack"]["block-storage"]["solidfire"]["san_login"] %>
|
|
#### (StrOpt) Username for SF Cluster Admin
|
|
|
|
san_password=<%= @solidfire_pass %>
|
|
#### (StrOpt) Password for SF Cluster Admin
|
|
|
|
<% unless node["openstack"]["block-storage"]["solidfire"]['iscsi_ip_prefix'].nil? %>
|
|
iscsi_ip_prefix=<%= node["openstack"]["block-storage"]["solidfire"]["iscsi_ip_prefix"] %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if @enabled_drivers.include?("cinder.volume.drivers.ibm.flashsystem.FlashSystemDriver") -%>
|
|
######## defined in cinder.volume.drivers.ibm.flashsystem.FlashSystemDriver ########
|
|
|
|
san_ip=<%= node["openstack"]["block-storage"]["flashsystem"]["san_ip"] %>
|
|
#### (StrOpt) IP address of FlashSystem Cluster Node
|
|
|
|
san_login=<%= node["openstack"]["block-storage"]["flashsystem"]["san_login"] %>
|
|
#### (StrOpt) Username for FlashSystem Cluster Admin
|
|
|
|
san_password=<%= @flashsystem_pass %>
|
|
#### (StrOpt) Password for FlashSystem Cluster Admin
|
|
|
|
flashsystem_connection_protocol=<%= node["openstack"]["block-storage"]["flashsystem"]["flashsystem_connection_protocol"] %>
|
|
#### (StrOpt) Connection protocol (FC only)
|
|
|
|
flashsystem_multipath_enabled=<%= node["openstack"]["block-storage"]["flashsystem"]["flashsystem_multipath_enabled"] %>
|
|
#### (BoolOpt) Multipath flag (FC only)
|
|
|
|
flashsystem_multihostmap_enabled=<%= node["openstack"]["block-storage"]["flashsystem"]["flashsystem_multihostmap_enabled"] %>
|
|
#### (BoolOpt) Multi host mapping flag
|
|
<% end -%>
|
|
|
|
#### (BoolOpt) Allow tenants to specify QOS on create
|
|
<% if @enabled_drivers.include?("cinder.volume.drivers.ibm.storwize_svc.StorwizeSVCDriver") %>
|
|
######## defined in cinder.volume.storwize_svc ########
|
|
|
|
storwize_svc_volpool_name=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_volpool_name"] %>
|
|
#### (StrOpt) Storage system storage pool for volumes
|
|
|
|
storwize_svc_vol_rsize=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_rsize"] %>
|
|
#### (StrOpt) Storage system space-efficiency parameter for volumes
|
|
|
|
storwize_svc_vol_warning=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_warning"] %>
|
|
#### (StrOpt) Storage system threshold for volume capacity warnings
|
|
|
|
storwize_svc_vol_autoexpand=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_autoexpand"] %>
|
|
#### (BoolOpt) Storage system autoexpand parameter for volumes (True/False)
|
|
|
|
storwize_svc_vol_grainsize=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_grainsize"] %>
|
|
#### (StrOpt) Storage system grain size parameter for volumes
|
|
#### (32/64/128/256)
|
|
|
|
storwize_svc_vol_compression=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_compression"] %>
|
|
#### (BoolOpt) Storage system compression option for volumes
|
|
|
|
storwize_svc_vol_easytier=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_easytier"] %>
|
|
#### (BoolOpt) Enable Easy Tier for volumes
|
|
|
|
# The I/O group in which to allocate volumes (integer value)
|
|
storwize_svc_vol_iogrp=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_vol_iogrp"] %>
|
|
|
|
storwize_svc_flashcopy_timeout=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_flashcopy_timeout"] %>
|
|
#### (StrOpt) Maximum number of seconds to wait for FlashCopy to be
|
|
#### prepared. Maximum value is 600 seconds (10 minutes).
|
|
|
|
# Connection protocol (iSCSI/FC) (string value)
|
|
storwize_svc_connection_protocol=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_connection_protocol"] %>
|
|
|
|
<% if node["openstack"]["block-storage"]["storwize"]["storwize_svc_connection_protocol"] == "iSCSI" %>
|
|
# Configure CHAP authentication for iSCSI connections
|
|
# (Default: Enabled) (boolean value)
|
|
storwize_svc_iscsi_chap_enabled=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_iscsi_chap_enabled"] %>
|
|
|
|
<% else %>
|
|
|
|
# Connect with multipath (FC only; iSCSI multipath is
|
|
# controlled by Nova) (boolean value)
|
|
storwize_svc_multipath_enabled=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_multipath_enabled"] %>
|
|
|
|
<% end %>
|
|
# Allows vdisk to multi host mapping (boolean value)
|
|
storwize_svc_multihostmap_enabled=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_multihostmap_enabled"] %>
|
|
|
|
# Allow tenants to specify QOS on create (boolean value)
|
|
storwize_svc_allow_tenant_qos=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_allow_tenant_qos"] %>
|
|
|
|
<% unless node["openstack"]["block-storage"]["storwize"]["storwize_svc_stretched_cluster_partner"].nil? %>
|
|
# If operating in stretched cluster mode, specify the name of
|
|
# # the pool in which mirrored copies are stored.
|
|
# (Default: Null) (string value)
|
|
storwize_svc_stretched_cluster_partner=<%= node["openstack"]["block-storage"]["storwize"]["storwize_svc_stretched_cluster_partner"] %>
|
|
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if @enabled_drivers.include?("cinder.volume.drivers.emc.emc_smis_iscsi.EMCSMISISCSIDriver") %>
|
|
|
|
iscsi_target_prefix=<%= node["openstack"]["block-storage"]["emc"]["iscsi_target_prefix"] %>
|
|
cinder_emc_config_file=<%= node["openstack"]["block-storage"]["emc"]["cinder_emc_config_file"] %>
|
|
|
|
<% end %>
|
|
|
|
<% if @enabled_drivers.include?("cinder.volume.drivers.ibm.ibmnas.IBMNAS_NFSDriver") %>
|
|
######## defined in cinder.volume.ibm.ibmnas ########
|
|
|
|
nas_ip=<%= node["openstack"]["block-storage"]["ibmnas"]["nas_ip"] %>
|
|
#### (StrOpt) IP address of IBMNAS storage
|
|
|
|
nas_login=<%= node["openstack"]["block-storage"]["ibmnas"]["nas_login"] %>
|
|
#### (StrOpt) Username for IBMNAS Cluster
|
|
|
|
nas_password=<%= @ibmnas_pass %>
|
|
#### (StrOpt) Password for IBMNAS Cluster
|
|
|
|
nas_ssh_port=<%= node["openstack"]["block-storage"]["ibmnas"]["nas_ssh_port"] %>
|
|
#### (StrOpt) IP address of IBMNAS storage
|
|
|
|
ibmnas_platform_type=<%= node["openstack"]["block-storage"]["ibmnas"]["ibmnas_platform_type"] %>
|
|
#### (StrOpt) IBMNAS platform type to be used as backend storage
|
|
|
|
<% end %>
|
|
|
|
######## defined in cinder.volume.xiv ########
|
|
|
|
# xiv_proxy=xiv_openstack.nova_proxy.XIVNovaProxy
|
|
#### (StrOpt) Proxy driver
|
|
|
|
|
|
######## defined in cinder.volume.zadara ########
|
|
|
|
# zadara_vpsa_ip=<None>
|
|
#### (StrOpt) Management IP of Zadara VPSA
|
|
|
|
# zadara_vpsa_port=<None>
|
|
#### (StrOpt) Zadara VPSA port number
|
|
|
|
# zadara_vpsa_use_ssl=false
|
|
#### (BoolOpt) Use SSL connection
|
|
|
|
# zadara_user=<None>
|
|
#### (StrOpt) User name for the VPSA
|
|
|
|
# zadara_password=<None>
|
|
#### (StrOpt) Password for the VPSA
|
|
|
|
# zadara_vpsa_poolname=<None>
|
|
#### (StrOpt) Name of VPSA storage pool for volumes
|
|
|
|
# zadara_default_cache_policy=write-through
|
|
#### (StrOpt) Default cache policy for volumes
|
|
|
|
# zadara_default_encryption=NO
|
|
#### (StrOpt) Default encryption policy for volumes
|
|
|
|
# zadara_default_striping_mode=simple
|
|
#### (StrOpt) Default striping mode for volumes
|
|
|
|
# zadara_default_stripesize=64
|
|
#### (StrOpt) Default stripe size for volumes
|
|
|
|
# zadara_vol_name_template=OS_%s
|
|
#### (StrOpt) Default template for VPSA volume names
|
|
|
|
# zadara_vpsa_auto_detach_on_delete=true
|
|
#### (BoolOpt) Automatically detach from servers on volume delete
|
|
|
|
# zadara_vpsa_allow_nonexistent_delete=true
|
|
#### (BoolOpt) Don't halt on deletion of non-existing volumes
|
|
|
|
<% if @enabled_drivers.include?('cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver') %>
|
|
#
|
|
# Options defined in cinder.volume.drivers.vmware.vmdk
|
|
#
|
|
|
|
# IP address for connecting to VMware ESX/VC server. (string
|
|
# value)
|
|
vmware_host_ip = <%= node['openstack']['block-storage']['vmware']['vmware_host_ip'] %>
|
|
|
|
# Username for authenticating with VMware ESX/VC server.
|
|
# (string value)
|
|
vmware_host_username = <%= node['openstack']['block-storage']['vmware']['vmware_host_username'] %>
|
|
|
|
# Password for authenticating with VMware ESX/VC server.
|
|
# (string value)
|
|
vmware_host_password = <%= @vmware_host_pass %>
|
|
|
|
<% if node['openstack']['block-storage']['vmware']['vmware_wsdl_location'] -%>
|
|
# Optional VIM service WSDL Location e.g
|
|
# http://<server>/vimService.wsdl. Optional over-ride to
|
|
# default location for bug work-arounds. (string value)
|
|
vmware_wsdl_location = <%= node['openstack']['block-storage']['vmware']['vmware_wsdl_location'] %>
|
|
<% end %>
|
|
|
|
# Number of times VMware ESX/VC server API must be retried
|
|
# upon connection related issues. (integer value)
|
|
vmware_api_retry_count = <%= node['openstack']['block-storage']['vmware']['vmware_api_retry_count'] %>
|
|
|
|
# The interval (in seconds) for polling remote tasks invoked
|
|
# on VMware ESX/VC server. (integer value)
|
|
vmware_task_poll_interval = <%= node['openstack']['block-storage']['vmware']['vmware_task_poll_interval'] %>
|
|
|
|
# Name for the folder in the VC datacenter that will contain
|
|
# cinder volumes. (string value)
|
|
vmware_volume_folder = <%= node['openstack']['block-storage']['vmware']['vmware_volume_folder'] %>
|
|
|
|
# Timeout in seconds for VMDK volume transfer between Cinder
|
|
# and Glance. (integer value)
|
|
vmware_image_transfer_timeout_secs = <%= node['openstack']['block-storage']['vmware']['vmware_image_transfer_timeout_secs'] %>
|
|
|
|
# Max number of objects to be retrieved per batch. Query
|
|
# results will be obtained in batches from the server and not
|
|
# in one shot. Server may still limit the count to something
|
|
# less than the configured value. (integer value)
|
|
vmware_max_objects_retrieval = <%= node['openstack']['block-storage']['vmware']['vmware_max_objects_retrieval'] %>
|
|
<% end %>
|
|
|
|
<% if @enabled_drivers.include?('cinder.volume.drivers.ibm.gpfs.GPFSDriver') %>
|
|
######## defined in cinder.openstack.volume.drivers.ibm.gpfs ########
|
|
|
|
# Specifies the path of the GPFS directory where Block Storage
|
|
# volume and snapshot files are stored. (string value)
|
|
gpfs_mount_point_base = <%= node["openstack"]["block-storage"]["gpfs"]["gpfs_mount_point_base"] %>
|
|
|
|
<% if node['openstack']['block-storage']['gpfs']['gpfs_images_dir'] %>
|
|
# Specifies the path of the Image service repository in GPFS.
|
|
# Leave undefined if not storing images in GPFS. (string
|
|
# value)
|
|
gpfs_images_dir = <%= node['openstack']['block-storage']['gpfs']['gpfs_images_dir'] %>
|
|
|
|
# Specifies the type of image copy to be used. Set this when
|
|
# the Image service repository also uses GPFS so that image
|
|
# files can be transferred efficiently from the Image service
|
|
# to the Block Storage service. There are two valid values:
|
|
# "copy" specifies that a full copy of the image is made;
|
|
# "copy_on_write" specifies that copy-on-write optimization
|
|
# strategy is used and unmodified blocks of the image file are
|
|
# shared efficiently. (string value)
|
|
gpfs_images_share_mode = <%= node['openstack']['block-storage']['gpfs']['gpfs_images_share_mode'] %>
|
|
<% end %>
|
|
|
|
# Specifies an upper limit on the number of indirections
|
|
# required to reach a specific block due to snapshots or
|
|
# clones. A lengthy chain of copy-on-write snapshots or
|
|
# clones can have a negative impact on performance, but
|
|
# improves space utilization. 0 indicates unlimited clone
|
|
# depth. (integer value)
|
|
gpfs_max_clone_depth = <%= node['openstack']['block-storage']['gpfs']['gpfs_max_clone_depth'] %>
|
|
|
|
# Specifies that volumes are created as sparse files which
|
|
# initially consume no space. If set to False, the volume is
|
|
# created as a fully allocated file, in which case, creation
|
|
# may take a significantly longer time. (boolean value)
|
|
gpfs_sparse_volumes = <%= node['openstack']['block-storage']['gpfs']['gpfs_sparse_volumes'] %>
|
|
|
|
# Specifies the storage pool that volumes are assigned to. By
|
|
# default, the system storage pool is used. (string value)
|
|
gpfs_storage_pool = <%= node['openstack']['block-storage']['gpfs']['gpfs_storage_pool'] %>
|
|
<% end %>
|
|
|
|
<% unless @multi_backend_sections.empty? %>
|
|
enabled_backends = <%= @multi_backend_sections.keys.join(',') %>
|
|
<% end %>
|
|
|
|
# Misc options
|
|
<% if node["openstack"]["block-storage"]["misc_cinder"] %>
|
|
<% node["openstack"]["block-storage"]["misc_cinder"].each do |m| %>
|
|
<%= m %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
# Multi-backend support, add new sections here
|
|
# Make sure these sections are at the bottom of conf file
|
|
<% unless @multi_backend_sections.empty? %>
|
|
<% @multi_backend_sections.each do |sec, opts| %>
|
|
[<%= sec %>]
|
|
<% opts.each do |optline| %>
|
|
<%= optline %>
|
|
<% end %>
|
|
|
|
<% end %>
|
|
<% end %>
|
|
|
|
[database]
|
|
|
|
#
|
|
# Options defined in oslo.db
|
|
#
|
|
|
|
backend=sqlalchemy
|
|
#### (StrOpt) The backend to use for db
|
|
|
|
connection=<%= @sql_connection %>
|
|
# sql_connection=sqlite:///$state_path/$sqlite_db
|
|
#### (StrOpt) The SQLAlchemy connection string used to connect to the
|
|
#### database
|
|
|
|
# sql_connection_debug=0
|
|
#### (IntOpt) Verbosity of SQL debugging information. 0=None,
|
|
#### 100=Everything
|
|
|
|
|
|
[keymgr]
|
|
|
|
#
|
|
# Options defined in cinder.keymgr
|
|
#
|
|
|
|
# The full class name of the key manager API class (string value)
|
|
api_class=<%= node['openstack']['block-storage']['keymgr']['api_class'] %>
|
|
|
|
#
|
|
# Options defined in cinder.keymgr.conf_key_mgr
|
|
#
|
|
|
|
# Fixed key returned by key manager, specified in hex (string value)
|
|
<% if node["openstack"]["block-storage"]["keymgr"]["fixed_key"] -%>
|
|
fixed_key=<%= node["openstack"]["block-storage"]["keymgr"]["fixed_key"] %>
|
|
<% end -%>
|
|
|
|
[keystone_authtoken]
|
|
|
|
#
|
|
# Options defined in keystonemiddleware.auth_token
|
|
#
|
|
|
|
# Complete public Identity API endpoint (string value)
|
|
auth_uri = <%= @auth_uri %>
|
|
|
|
# Complete admin Identity API endpoint. This should specify
|
|
# the unversioned root endpoint e.g. https://localhost:35357/
|
|
# (string value)
|
|
identity_uri = <%= @identity_uri %>
|
|
|
|
# API version of the admin Identity API endpoint (string
|
|
# value)
|
|
<% if node['openstack']['block-storage']['api']['auth']['version'] != 'v2.0' %>
|
|
auth_version = <%= node['openstack']['block-storage']['api']['auth']['version'] %>
|
|
<% end %>
|
|
|
|
# Do not handle authorization requests within the middleware,
|
|
# but delegate the authorization decision to downstream WSGI
|
|
# components (boolean value)
|
|
#delay_auth_decision=false
|
|
|
|
# Request timeout value for communicating with Identity API
|
|
# server. (boolean value)
|
|
#http_connect_timeout=<None>
|
|
|
|
# How many times are we trying to reconnect when communicating
|
|
# with Identity API Server. (integer value)
|
|
#http_request_max_retries=3
|
|
|
|
# This option is deprecated and may be removed in a future
|
|
# release. Single shared secret with the Keystone
|
|
# configuration used for bootstrapping a Keystone
|
|
# installation, or otherwise bypassing the normal
|
|
# authentication process. This option should not be used, use
|
|
# `admin_user` and `admin_password` instead. (string value)
|
|
#admin_token=<None>
|
|
|
|
# Keystone account username (string value)
|
|
admin_user = <%= node["openstack"]["block-storage"]["service_user"] %>
|
|
|
|
# Keystone account password (string value)
|
|
admin_password = <%= @service_pass %>
|
|
|
|
# Keystone service account tenant name to validate user tokens
|
|
# (string value)
|
|
admin_tenant_name = <%= node["openstack"]["block-storage"]["service_tenant_name"] %>
|
|
|
|
# Env key for the swift cache (string value)
|
|
#cache=<None>
|
|
|
|
# Required if Keystone server requires client certificate
|
|
# (string value)
|
|
#certfile=<None>
|
|
|
|
# Required if Keystone server requires client certificate
|
|
# (string value)
|
|
#keyfile=<None>
|
|
|
|
# A PEM encoded Certificate Authority to use when verifying
|
|
# HTTPs connections. Defaults to system CAs. (string value)
|
|
#cafile=<None>
|
|
<% if node['openstack']['block-storage']['api']['auth']['cafile'] %>
|
|
cafile = <%= node['openstack']['block-storage']['api']['auth']['cafile'] %>
|
|
<% end %>
|
|
|
|
# Verify HTTPS connections. (boolean value)
|
|
#insecure=false
|
|
insecure = <%= node['openstack']['block-storage']['api']['auth']['insecure'] %>
|
|
|
|
# Directory used to cache files related to PKI tokens (string
|
|
# value)
|
|
signing_dir = <%= node["openstack"]["block-storage"]["api"]["auth"]["cache_dir"] %>
|
|
|
|
# Optionally specify a list of memcached server(s) to use for
|
|
# caching. If left undefined, tokens will instead be cached
|
|
# in-process. (list value)
|
|
# Deprecated group/name - [DEFAULT]/memcache_servers
|
|
#memcached_servers=<None>
|
|
<% if node['openstack']['block-storage']['api']['auth']['memcached_servers'] %>
|
|
memcached_servers = <%= node['openstack']['block-storage']['api']['auth']['memcached_servers'] %>
|
|
<% end %>
|
|
|
|
# In order to prevent excessive effort spent validating
|
|
# tokens, the middleware caches previously-seen tokens for a
|
|
# configurable duration (in seconds). Set to -1 to disable
|
|
# caching completely. (integer value)
|
|
#token_cache_time=300
|
|
|
|
# Determines the frequency at which the list of revoked tokens
|
|
# is retrieved from the Identity service (in seconds). A high
|
|
# number of revocation events combined with a low cache
|
|
# duration may significantly reduce performance. (integer
|
|
# value)
|
|
#revocation_cache_time=10
|
|
|
|
# (optional) if defined, indicate whether token data should be
|
|
# authenticated or authenticated and encrypted. Acceptable
|
|
# values are MAC or ENCRYPT. If MAC, token data is
|
|
# authenticated (with HMAC) in the cache. If ENCRYPT, token
|
|
# data is encrypted and authenticated in the cache. If the
|
|
# value is not one of these options or empty, auth_token will
|
|
# raise an exception on initialization. (string value)
|
|
#memcache_security_strategy=<None>
|
|
<% if node['openstack']['block-storage']['api']['auth']['memcache_security_strategy'] %>
|
|
memcache_security_strategy = <%= node['openstack']['block-storage']['api']['auth']['memcache_security_strategy'] %>
|
|
<% end %>
|
|
|
|
# (optional, mandatory if memcache_security_strategy is
|
|
# defined) this string is used for key derivation. (string
|
|
# value)
|
|
#memcache_secret_key=<None>
|
|
<% if node['openstack']['block-storage']['api']['auth']['memcache_secret_key'] %>
|
|
memcache_secret_key = <%= node['openstack']['block-storage']['api']['auth']['memcache_secret_key'] %>
|
|
<% end %>
|
|
|
|
# (optional) indicate whether to set the X-Service-Catalog
|
|
# header. If False, middleware will not ask for service
|
|
# catalog on token validation and will not set the X-Service-
|
|
# Catalog header. (boolean value)
|
|
#include_service_catalog=true
|
|
|
|
# Used to control the use and type of token binding. Can be
|
|
# set to: "disabled" to not check token binding. "permissive"
|
|
# (default) to validate binding information if the bind type
|
|
# is of a form known to the server and ignore it if not.
|
|
# "strict" like "permissive" but if the bind type is unknown
|
|
# the token will be rejected. "required" any form of token
|
|
# binding is needed to be allowed. Finally the name of a
|
|
# binding method that must be present in tokens. (string
|
|
# value)
|
|
#enforce_token_bind=permissive
|
|
|
|
# If true, the revocation list will be checked for cached
|
|
# tokens. This requires that PKI tokens are configured on the
|
|
# Keystone server. (boolean value)
|
|
#check_revocations_for_cached=false
|
|
|
|
# Hash algorithms to use for hashing PKI tokens. This may be a
|
|
# single algorithm or multiple. The algorithms are those
|
|
# supported by Python standard hashlib.new(). The hashes will
|
|
# be tried in the order given, so put the preferred one first
|
|
# for performance. The result of the first hash will be stored
|
|
# in the cache. This will typically be set to multiple values
|
|
# only while migrating from a less secure algorithm to a more
|
|
# secure one. Once all the old tokens are expired this option
|
|
# should be set to a single value for better performance.
|
|
# (list value)
|
|
#hash_algorithms=md5
|
|
hash_algorithms = <%= node['openstack']['block-storage']['api']['auth']['hash_algorithms'] %>
|
|
|
|
|
|
[oslo_concurrency]
|
|
|
|
# lock_path
|
|
lock_path=<%= node["openstack"]["block-storage"]["lock_path"] %>
|
|
|
|
|
|
<% if @mq_service_type == "qpid" %>
|
|
[oslo_messaging_qpid]
|
|
|
|
#
|
|
# From oslo.messaging
|
|
#
|
|
|
|
# from oslo/messaging/_drivers/amqp.py
|
|
amqp_durable_queues=<%= node['openstack']['mq']['block-storage']['durable_queues'] %>
|
|
amqp_auto_delete=<%= node['openstack']['mq']['block-storage']['auto_delete'] %>
|
|
|
|
rpc_conn_pool_size=<%= node["openstack"]["block-storage"]["rpc_conn_pool_size"] %>
|
|
|
|
#### (IntOpt) Size of RPC connection pool
|
|
|
|
##### QPID #####
|
|
######## defined in cinder.openstack.common.rpc.impl_qpid ########
|
|
qpid_hostname=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["host"] %>
|
|
#### (StrOpt) Qpid broker hostname
|
|
|
|
qpid_port=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["port"] %>
|
|
#### (StrOpt) Qpid broker port
|
|
|
|
qpid_username=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["username"] %>
|
|
#### (StrOpt) Username for qpid connection
|
|
|
|
qpid_password=<%= @mq_password %>
|
|
#### (StrOpt) Password for qpid connection
|
|
|
|
qpid_sasl_mechanisms=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["sasl_mechanisms"] %>
|
|
#### (StrOpt) Space separated list of SASL mechanisms to use for auth
|
|
|
|
qpid_reconnect=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect"] %>
|
|
#### (BoolOpt) Automatically reconnect
|
|
|
|
qpid_reconnect_timeout=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect_timeout"] %>
|
|
#### (IntOpt) Reconnection timeout in seconds
|
|
|
|
qpid_reconnect_limit=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect_limit"] %>
|
|
#### (IntOpt) Max reconnections before giving up
|
|
|
|
qpid_reconnect_interval_min=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect_interval_min"] %>
|
|
#### (IntOpt) Minimum seconds between reconnection attempts
|
|
|
|
qpid_reconnect_interval_max=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect_interval_max"] %>
|
|
#### (IntOpt) Maximum seconds between reconnection attempts
|
|
|
|
qpid_reconnect_interval=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["reconnect_interval"] %>
|
|
#### (IntOpt) Equivalent to setting max and min to the same value
|
|
|
|
qpid_heartbeat=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["heartbeat"] %>
|
|
#### (IntOpt) Seconds between connection keepalive heartbeats
|
|
|
|
qpid_protocol=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["protocol"] %>
|
|
#### (StrOpt) Transport to use, either 'tcp' or 'ssl'
|
|
|
|
qpid_tcp_nodelay=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["tcp_nodelay"] %>
|
|
#### (BoolOpt) Disable Nagle algorithm
|
|
|
|
qpid_topology_version=<%= node['openstack']['mq']['block-storage']['qpid']['topology_version'] %>
|
|
#### (IntOpt) See oslo/messaging/_drivers/impl_qpid.py for details
|
|
|
|
notification_topics=<%= node["openstack"]["mq"]["block-storage"]["qpid"]["notification_topic"] %>
|
|
#### (ListOpt) AMQP topic used for openstack notifications
|
|
<% end %>
|
|
|
|
<% if @mq_service_type == "rabbitmq" %>
|
|
[oslo_messaging_rabbit]
|
|
|
|
#
|
|
# From oslo.messaging
|
|
#
|
|
|
|
# Number of seconds after which the Rabbit broker is considered down if heartbeat's keep-alive fails (0 disable the heartbeat)
|
|
heartbeat_timeout_threshold=<%= node['openstack']['mq']['block-storage']['rabbit']['heartbeat_timeout_threshold'] %>
|
|
|
|
# How often times during the heartbeat_timeout_threshold we check the heartbeat
|
|
heartbeat_rate=<%= node['openstack']['mq']['block-storage']['rabbit']['heartbeat_rate'] %>
|
|
|
|
# from oslo/messaging/_drivers/amqp.py
|
|
amqp_durable_queues=<%= node['openstack']['mq']['block-storage']['durable_queues'] %>
|
|
amqp_auto_delete=<%= node['openstack']['mq']['block-storage']['auto_delete'] %>
|
|
|
|
rpc_conn_pool_size=<%= node["openstack"]["block-storage"]["rpc_conn_pool_size"] %>
|
|
|
|
#### (IntOpt) Size of RPC connection pool
|
|
|
|
# fake_rabbit=false
|
|
#### (BoolOpt) If passed, use a fake RabbitMQ provider
|
|
|
|
######## defined in cinder.openstack.common.rpc.impl_kombu ########
|
|
|
|
<% if node['openstack']['mq']['block-storage']['rabbit']['use_ssl'] -%>
|
|
|
|
# Connect over SSL for RabbitMQ. (boolean value)
|
|
rabbit_use_ssl=true
|
|
|
|
<% if node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_version'] -%>
|
|
# SSL version to use (valid only if SSL enabled). valid values
|
|
# are TLSv1 and SSLv23. SSLv2 and SSLv3 may be available on
|
|
# some distributions. (string value)
|
|
kombu_ssl_version=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_version'] %>
|
|
<% end -%>
|
|
<% if node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_keyfile'] -%>
|
|
# SSL key file (valid only if SSL enabled)
|
|
kombu_ssl_keyfile=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_keyfile'] %>
|
|
<% end -%>
|
|
<% if node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_certfile'] -%>
|
|
# SSL cert file (valid only if SSL enabled)
|
|
kombu_ssl_certfile=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_certfile'] %>
|
|
<% end -%>
|
|
<% if node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_ca_certs'] -%>
|
|
# SSL certification authority file (valid only if SSL enabled)
|
|
kombu_ssl_ca_certs=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_ssl_ca_certs'] %>
|
|
<% end -%>
|
|
# How long to wait before reconnecting in response to an AMQP consumer cancel notification
|
|
kombu_reconnect_delay=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_reconnect_delay'] %>
|
|
# How long to wait before considering a reconnect attempt to have failed.
|
|
# This value should not be longer than rpc_response_timeout
|
|
kombu_reconnect_timeout=<%= node['openstack']['mq']['block-storage']['rabbit']['kombu_reconnect_timeout'] %>
|
|
<% end -%>
|
|
|
|
<% if node["openstack"]["mq"]["block-storage"]["rabbit"]["ha"] -%>
|
|
rabbit_hosts=<%= @rabbit_hosts %>
|
|
#### (ListOpt) RabbitMQ HA cluster host:port pairs
|
|
|
|
# rabbit_durable_queues=false
|
|
#### (BoolOpt) use durable queues in RabbitMQ
|
|
|
|
rabbit_ha_queues=True
|
|
#### (BoolOpt) use H/A queues in RabbitMQ (x-ha-policy: all).You need to
|
|
#### wipe RabbitMQ database when changing this option.
|
|
<% else -%>
|
|
rabbit_host=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["host"] %>
|
|
#### (StrOpt) The RabbitMQ broker address where a single node is used
|
|
|
|
rabbit_port=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["port"] %>
|
|
#### (IntOpt) The RabbitMQ broker port where a single node is used
|
|
<% end -%>
|
|
|
|
rabbit_userid=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["userid"] %>
|
|
#### (StrOpt) the RabbitMQ userid
|
|
|
|
rabbit_password=<%= @mq_password %>
|
|
#### (StrOpt) the RabbitMQ password
|
|
|
|
rabbit_virtual_host=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["vhost"] %>
|
|
#### (StrOpt) the RabbitMQ virtual host
|
|
|
|
notification_topics=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["notification_topic"] %>
|
|
#### (ListOpt) AMQP topic used for openstack notifications
|
|
|
|
rabbit_retry_interval=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["rabbit_retry_interval"] %>
|
|
#### (IntOpt) how frequently to retry connecting with RabbitMQ
|
|
|
|
# rabbit_retry_backoff=2
|
|
#### (IntOpt) how long to backoff for between retries when connecting to
|
|
#### RabbitMQ
|
|
|
|
rabbit_max_retries=<%= node["openstack"]["mq"]["block-storage"]["rabbit"]["rabbit_max_retries"] %>
|
|
#### (IntOpt) maximum retries with trying to connect to RabbitMQ (the
|
|
#### default of 0 implies an infinite retry count)
|
|
|
|
<% end %>
|