blob: c337bba17bc729ae30f5bb9cebf50dc6acfd4e9c [file] [log] [blame]
{%- from "cinder/map.jinja" import controller with context %}
[DEFAULT]
rootwrap_config = /etc/cinder/rootwrap.conf
api_paste_confg = /etc/cinder/api-paste.ini
{%- if controller.public_endpoint_address is defined %}
public_endpoint = {{ controller.public_endpoint_address }}
osapi_volume_base_URL = {{ controller.public_endpoint_address }}
{%- endif %}
iscsi_helper = tgtadm
volume_name_template = volume-%s
#volume_group = cinder
verbose = True
osapi_volume_workers = {{ controller.get('volume_workers', '4') }}
auth_strategy = keystone
state_path = /var/lib/cinder
lock_path = /var/lock/cinder
{%- if controller.query_volume_filters is defined %}
# Available query filters for non-admin user
query_volume_filters = {{ controller.query_volume_filters|join(",") }}
{%- endif %}
use_syslog=False
glance_num_retries=0
debug=False
os_region_name={{ controller.identity.region }}
allow_availability_zone_fallback = {{ controller.get('availability_zone_fallback', True) }}
#glance_api_ssl_compression=False
#glance_api_insecure=False
osapi_volume_listen={{ controller.osapi.host }}
osapi_max_limit={{ controller.osapi_max_limit|default('1000') }}
glance_host={{ controller.glance.host }}
glance_port={{ controller.glance.port }}
glance_api_version=2
volume_backend_name=DEFAULT
{%- if controller.backend is defined %}
default_volume_type={{ controller.default_volume_type }}
enabled_backends={% for backend_name, backend in controller.get('backend', {}).iteritems() %}{{ backend_name }}{% if not loop.last %},{% endif %}{% endfor %}
{%- else %}
default_volume_type={% for type in controller.get('types', []) %}{% if loop.first %}{{ type.name }}{% endif %}{% endfor %}
enabled_backends={% for type in controller.get('types', []) %}{{ type.backend }}{% if not loop.last %},{% endif %}{% endfor %}{% if controller.storage.engine == "openvstorage" %}{% for vpool in pillar.openvstorage.server.get('vpools', []) %}{{ vpool }}{% if not loop.last %},{% endif %}{% endfor %}{% endif %}
{%- endif %}
{%- if controller.storage_availability_zone is defined %}
storage_availability_zone={{controller.storage_availability_zone}}
{%- endif %}
{%- if controller.default_availability_zone is defined %}
default_availability_zone={{controller.default_availability_zone}}
{%- endif %}
# Enables the Force option on upload_to_image. This enables running
# upload_volume on in-use volumes for backends that support it. (boolean value)
#enable_force_upload = false
enable_force_upload = {{ controller.get('enable_force_upload', False)|lower }}
#RPC response timeout recommended by Hitachi
rpc_response_timeout=3600
#Rabbit
rpc_backend=cinder.openstack.common.rpc.impl_kombu
control_exchange=cinder
volume_clear={{ controller.wipe_method }}
{%- if controller.notification is mapping %}
notification_driver = {{ controller.notification.get('driver', 'messagingv2') }}
{%- if controller.notification.topics is defined %}
notification_topics = {{ controller.notification.topics }}
{%- endif %}
{%- elif controller.notification %}
control_exchange = cinder
notification_driver = messagingv2
{%- endif %}
volume_name_template = volume-%s
#volume_group = vg_cinder_volume
volumes_dir = /var/lib/cinder/volumes
log_dir=/var/log/cinder
# Use syslog for logging. (boolean value)
#use_syslog=false
use_syslog=false
verbose=True
lock_path=/var/lock/cinder
[oslo_concurrency]
lock_path=/var/lock/cinder
[oslo_messaging_rabbit]
{%- if controller.message_queue.members is defined %}
rabbit_hosts = {% for member in controller.message_queue.members -%}
{{ member.host }}:{{ member.get('port', 5672) }}
{%- if not loop.last -%},{%- endif -%}
{%- endfor -%}
{%- else %}
rabbit_host = {{ controller.message_queue.host }}
rabbit_port = {{ controller.message_queue.port }}
{%- endif %}
rabbit_userid = {{ controller.message_queue.user }}
rabbit_password = {{ controller.message_queue.password }}
rabbit_virtual_host = {{ controller.message_queue.virtual_host }}
kombu_reconnect_delay=5.0
{%- if controller.identity.get('version', 2) == 2 %}
[keystone_authtoken]
signing_dir=/tmp/keystone-signing-cinder
admin_password={{ controller.identity.password }}
auth_port={{ controller.identity.port }}
auth_host={{ controller.identity.host }}
admin_tenant_name={{ controller.identity.tenant }}
auth_protocol=http
admin_user=cinder
signing_dirname=/tmp/keystone-signing-cinder
auth_uri=http://{{ controller.identity.host }}:{{ controller.identity.port }}
{%- else %}
[keystone_authtoken]
signing_dir=/tmp/keystone-signing-cinder
signing_dirname=/tmp/keystone-signing-cinder
identity_uri = http://{{ controller.identity.host }}:35357/v3
revocation_cache_time = 10
auth_plugin = password
user_domain_id = {{ controller.identity.get('domain', 'default') }}
project_domain_id = {{ controller.identity.get('domain', 'default') }}
project_name = {{ controller.identity.tenant }}
username = {{ controller.identity.user }}
password = {{ controller.identity.password }}
auth_uri=http://{{ controller.identity.host }}:5000/v3
auth_url=http://{{ controller.identity.host }}:35357/
{%- endif %}
[database]
idle_timeout=3600
max_pool_size=30
max_retries=-1
max_overflow=40
connection = {{ controller.database.engine }}+pymysql://{{ controller.database.user }}:{{ controller.database.password }}@{{ controller.database.host }}/{{ controller.database.name }}
{# new way #}
{%- if controller.backend is defined %}
{%- for backend_name, backend in controller.get('backend', {}).iteritems() %}
{%- set backend_fragment = "cinder/files/backend/_" + backend.engine + ".conf" %}
{%- include backend_fragment %}
{%- endfor %}
{%- else %}
{# old way #}
{%- if controller.storage.engine == "storwize" %}
{%- for type in controller.get('types', []) %}
[{{ type.backend }}]
volume_driver = cinder.volume.drivers.ibm.storwize_svc.StorwizeSVCDriver
volume_backend_name={{ type.backend }}
san_ip={{ controller.storage.host }}
san_ssh_port={{ controller.storage.port }}
san_login={{ controller.storage.user }}
san_password={{ controller.storage.password }}
storwize_svc_volpool_name={{ type.pool }}
#storwize_svc_connection_protocol=iSCSI
storwize_svc_connection_protocol={{ controller.storage.connection }}
#storwize_svc_iscsi_chap_enabled=true
storwize_svc_multihost_enabled={{ controller.storage.multihost }}
storwize_svc_multipath_enabled={{ controller.storage.multipath }}
{%- endfor %}
{%- endif %}
{%- if controller.storage.engine == "hitachi_vsp" %}
{%- for type in controller.get('types', []) %}
[{{ type.backend }}]
volume_driver = cinder.volume.drivers.hitachi.hbsd_fc.HBSDFCDriver
volume_backend_name={{ type.backend }}
#
# Options defined in cinder.volume.drivers.hitachi.hbsd_common
#
# Serial number of storage system (string value)
#hitachi_serial_number=<None>
hitachi_serial_number=86644
#hitachi_serial_number=355316
# Name of an array unit (string value)
#hitachi_unit_name=<None>
#hitachi_unit_name=fiat
# Pool ID of storage system (integer value)
#hitachi_pool_id=<None>
hitachi_pool_id=4
# Thin pool ID of storage system (integer value)
hitachi_thin_pool_id=14
# Range of logical device of storage system (string value)
#hitachi_ldev_range=<None>
#hitachi_ldev_range=00:05:00-00:05:FF
# Default copy method of storage system (string value)
#hitachi_default_copy_method=FULL
hitachi_default_copy_method=THIN
# Copy speed of storage system (integer value)
#hitachi_copy_speed=3
# Interval to check copy (integer value)
#hitachi_copy_check_interval=3
# Interval to check copy asynchronously (integer value)
#hitachi_async_copy_check_interval=10
# Control port names for HostGroup or iSCSI Target (string
# value)
#hitachi_target_ports=<None>
hitachi_target_ports=CL1-E,CL2-E,CL3-B,CL4-D
# Range of group number (string value)
#hitachi_group_range=
#hitachi_group_range=
# Request for creating HostGroup or iSCSI Target (boolean
# value)
hitachi_group_request=True
#hitachi_group_request=false
#
# Options defined in cinder.volume.drivers.hitachi.hbsd_fc
#
# Request for FC Zone creating HostGroup (boolean value)
hitachi_zoning_request=true
#
# Options defined in cinder.volume.drivers.hitachi.hbsd_horcm
#
# Instance numbers for HORCM (string value)
#hitachi_horcm_numbers=200,201
hitachi_horcm_numbers=0,1
# Username of storage system for HORCM (string value)
#hitachi_horcm_user=<None>
#hitachi_horcm_user=openstack
hitachi_horcm_user=root
# Password of storage system for HORCM (string value)
#hitachi_horcm_password=<None>
#hitachi_horcm_password=avg2014
hitachi_horcm_password=X3tT35va
# Add to HORCM configuration (boolean value)
#hitachi_horcm_add_conf=true
hitachi_horcm_add_conf=true
#hitachi multipath advice
use_multipath_for_image_xfer=false
{%- endfor %}
{%- endif %}
{%- if controller.storage.engine == "ceph" %}
{%- for type in controller.get('types', []) %}
[{{ type.backend }}]
volume_backend_name={{ type.backend }}
volume_driver = cinder.volume.drivers.rbd.RBDDriver
#
# Options defined in cinder.volume.drivers.rbd
#
# The RADOS pool where rbd volumes are stored (string value)
#rbd_pool=volumes
rbd_pool={{ type.pool }}
# The RADOS client name for accessing rbd volumes - only set
# when using cephx authentication (string value)
#rbd_user=cinder
rbd_user={{ controller.storage.user }}
# Path to the ceph configuration file (string value)
#rbd_ceph_conf=
rbd_ceph_conf=/etc/ceph/ceph.conf
# Flatten volumes created from snapshots to remove dependency
# from volume to snapshot (boolean value)
#rbd_flatten_volume_from_snapshot=false
rbd_flatten_volume_from_snapshot={{ controller.storage.get('flatten_volume_from_snapshot', False)|lower }}
# The libvirt uuid of the secret for the rbd_user volumes
# (string value)
#rbd_secret_uuid=da74ccb7-aa59-1721-a172-0006b1aa4e3e
rbd_secret_uuid={{ controller.storage.secret_uuid }}
# Directory where temporary image files are stored when the
# volume driver does not write them directly to the volume.
# (string value)
#volume_tmp_dir=<None>
# 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=5
# Volumes will be chunked into objects of this size (in
# megabytes). (integer value)
#rbd_store_chunk_size=4
# 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=-1
{%- endfor %}
{%- endif %}
{%- if controller.storage.engine == "hp3par" %}
{%- for type in controller.get('types', []) %}
[{{ type.backend }}]
hp3par_api_url={{ controller.storage.url }}
# 3PAR Super user username
hp3par_username={{ controller.storage.user }}
# 3PAR Super user password
hp3par_password={{ controller.storage.password }}
# 3PAR CPG to use for volume creation
hp3par_cpg={{ controller.storage.cpg }}
# IP address of SAN controller for SSH access to the array
san_ip={{ controller.storage.host }}
# Username for SAN controller for SSH access to the array
san_login={{ controller.storage.login }}
# Password for SAN controller for SSH access to the array
san_password={{ controller.storage.password }}
# FIBRE CHANNEL(uncomment the next line to enable the FC driver)
volume_driver=cinder.volume.drivers.san.hp.hp_3par_fc.HP3PARFCDriver
# iSCSI (uncomment the next line to enable the iSCSI driver and
# hp3par_iscsi_ips or iscsi_ip_address)
#volume_driver=cinder.volume.drivers.san.hp.hp_3par_iscsi.HP3PARISCSIDriver
# iSCSI multiple port configuration
# hp3par_iscsi_ips=10.10.220.253:3261,10.10.222.234
#hp3par_iscsi_ips=10.10.103.151
# Still available for single port iSCSI configuration
#iscsi_ip_address=10.10.103.151
## OPTIONAL SETTINGS
# Enable HTTP debugging to 3PAR
# hp3par_debug=True
hp3par_debug={{ controller.storage.debug }}
# Enable CHAP authentication for iSCSI connections.
hp3par_iscsi_chap_enabled=false
# The CPG to use for Snapshots for volumes. If empty hp3par_cpg will be used.
hp3par_snap_cpg={{ controller.storage.snapcpg }}
# Time in hours to retain a snapshot. You can't delete it before this expires.
hp3par_snapshot_retention=2
# Time in hours when a snapshot expires and is deleted. This must be larger than retention.
hp3par_snapshot_expiration=4
{%- endfor %}
{%- endif %}
{%- if controller.storage.engine == "fujitsu" %}
{%- for type in controller.get('types', []) %}
[{{ type.backend }}]
volume_backend_name={{ type.backend }}
volume_driver=cinder.volume.drivers.fujitsu.fujitsu_eternus_dx_fc.FJDXFCDriver
cinder_eternus_config_file=/etc/cinder/cinder_fujitsu_eternus_dx_{{ type.backend }}.xml
{%- endfor %}
{%- endif %}
{%- if controller.storage.engine == "gpfs" %}
{%- for type in controller.get('types', []) %}
[{{ type.backend }}]
volume_backend_name={{ type.backend }}
volume_driver = cinder.volume.drivers.ibm.gpfs.GPFSDriver
gpfs_mount_point_base={{ type.mount_point }}
#gpfs_mount_point_base=/mnt/gpfs-openstack/cinder/gold
gpfs_max_clone_depth=3
gpfs_sparse_volumes=true
gpfs_storage_pool=system
{%- endfor %}
{%- endif %}
{%- endif %}