From 2f54d6f77c9b1f4ec998d141a10ae13d28dbbd6b Mon Sep 17 00:00:00 2001 From: Mark Vanderwiel Date: Wed, 18 Mar 2015 15:11:26 -0500 Subject: [PATCH] Sync with new kilo sections Trying to stay in sync with base, many section changes in kilo. * Remove all unused key=value, as they making diff a nightmare * Put in ALL section headers, makes diff easier each time * Did NOT change any defaults or logic * Updated spec to use specific section matching to unsure correctness To see the diff, just diff template against base sample here: http://git.openstack.org/cgit/openstack/keystone/plain/etc/keystone.conf.sample Change-Id: Iec379ddac6749ed9d4aea1a5501f9986845afce1 Closes-Bug: #1433717 --- spec/server_spec.rb | 156 ++- templates/default/keystone.conf.erb | 1562 +++++++-------------------- 2 files changed, 460 insertions(+), 1258 deletions(-) diff --git a/spec/server_spec.rb b/spec/server_spec.rb index ea6b7f9..898bff7 100644 --- a/spec/server_spec.rb +++ b/spec/server_spec.rb @@ -386,7 +386,7 @@ it 'default saml attributes' do saml_default_attrs.each do |attr| default_value = /^#{attr}$/ - expect(chef_run).to render_file(path).with_content(default_value) + expect(chef_run).to render_config_file(path).with_section_content('saml', default_value) end end @@ -398,7 +398,7 @@ saml_override_attrs.each do |attr| node.set['openstack']['identity']['saml']["#{attr}"] = "value_for_#{attr}" override_value = /^#{attr}=value_for_#{attr}$/ - expect(chef_run).to render_file(path).with_content(override_value) + expect(chef_run).to render_config_file(path).with_section_content('saml', override_value) end end end @@ -412,7 +412,7 @@ it 'empty default ipd attributes' do optional_attrs.each do |attr| default_value = /^#{attr}=$/ - expect(chef_run).to render_file(path).with_content(default_value) + expect(chef_run).to render_config_file(path).with_section_content('saml', default_value) end end @@ -420,14 +420,14 @@ optional_attrs.each do |attr| node.set['openstack']['identity']['saml']["#{attr}"] = "value_for_#{attr}" override_value = /^#{attr}=value_for_#{attr}$/ - expect(chef_run).to render_file(path).with_content(override_value) + expect(chef_run).to render_config_file(path).with_section_content('saml', override_value) end end end end it 'has no list_limits by default' do - expect(chef_run).not_to render_file(path).with_content(/^list_limit=/) + expect(chef_run).not_to render_config_file(path).with_section_content('DEFAULT', /^list_limit=/) end it 'sets list limits correctly' do @@ -436,11 +436,11 @@ node.set['openstack']['identity']['catalog']['list_limit'] = 333 node.set['openstack']['identity']['identity']['list_limit'] = 444 node.set['openstack']['identity']['policy']['list_limit'] = 555 - expect(chef_run).to render_file(path).with_content(/^list_limit=111$/) - expect(chef_run).to render_file(path).with_content(/^list_limit=222$/) - expect(chef_run).to render_file(path).with_content(/^list_limit=333$/) - expect(chef_run).to render_file(path).with_content(/^list_limit=444$/) - expect(chef_run).to render_file(path).with_content(/^list_limit=555$/) + expect(chef_run).to render_config_file(path).with_section_content('DEFAULT', /^list_limit=111$/) + expect(chef_run).to render_config_file(path).with_section_content('assignment', /^list_limit=222$/) + expect(chef_run).to render_config_file(path).with_section_content('catalog', /^list_limit=333$/) + expect(chef_run).to render_config_file(path).with_section_content('identity', /^list_limit=444$/) + expect(chef_run).to render_config_file(path).with_section_content('policy', /^list_limit=555$/) end it 'templates misc_keystone array correctly' do @@ -455,38 +455,22 @@ expect(resource).to notify('service[keystone]').to(:restart) end - it 'has default worker values' do - expect(chef_run).not_to render_file(path).with_content(/^admin_workers=/) - expect(chef_run).not_to render_file(path).with_content(/^public_workers=/) - end - - it 'has specific worker values' do - node.set['openstack']['identity']['admin_workers'] = 123 - node.set['openstack']['identity']['public_workers'] = 456 - expect(chef_run).to render_file(path).with_content(/^admin_workers=123$/) - expect(chef_run).to render_file(path).with_content(/^public_workers=456$/) - end - - it 'has rpc_backend set for rabbit' do - node.set['openstack']['mq']['service_type'] = 'rabbitmq' - expect(chef_run).to render_file(path).with_content('rpc_backend=rabbit') - end - - it 'has rpc_backend set for qpid' do - node.set['openstack']['mq']['service_type'] = 'qpid' - expect(chef_run).to render_file(path).with_content('rpc_backend=qpid') - end - - describe '[DEFAULT] section' do - it 'has admin token' do - r = line_regexp('admin_token = bootstrap-token') - expect(chef_run).to render_file(path).with_content(r) + describe '[eventlet_server] section' do + it 'has default worker values' do + expect(chef_run).not_to render_config_file(path).with_section_content('eventlet_server', /^admin_workers=/) + expect(chef_run).not_to render_config_file(path).with_section_content('eventlet_server', /^public_workers=/) end + it 'has specific worker values' do + node.set['openstack']['identity']['admin_workers'] = 123 + node.set['openstack']['identity']['public_workers'] = 456 + expect(chef_run).to render_config_file(path).with_section_content('eventlet_server', /^admin_workers=123$/) + expect(chef_run).to render_config_file(path).with_section_content('eventlet_server', /^public_workers=456$/) + end describe 'bind_interface is nil' do it 'has bind host from endpoint' do r = line_regexp('public_bind_host = 127.0.1.1') - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('eventlet_server', r) end end @@ -499,14 +483,14 @@ it 'has bind host from interface ip' do r = line_regexp('public_bind_host = 10.0.0.2') - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('eventlet_server', r) end end describe 'admin bind_interface is nil' do it 'has admin bind host from endpoint' do r = line_regexp('admin_bind_host = 127.0.1.1') - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('eventlet_server', r) end end @@ -519,41 +503,58 @@ it 'has admin bind host from interface ip' do r = line_regexp('admin_bind_host = 10.0.0.2') - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('eventlet_server', r) end end describe 'port numbers' do ['public_port', 'admin_port'].each do |x| it "has #{x}" do - expect(chef_run).to render_file(path).with_content(/^#{x} = \d+$/) + expect(chef_run).to render_config_file(path).with_section_content('eventlet_server', /^#{x} = \d+$/) end end end + end + + it 'has rpc_backend set for rabbit' do + node.set['openstack']['mq']['service_type'] = 'rabbitmq' + expect(chef_run).to render_config_file(path).with_section_content('DEFAULT', /^rpc_backend=rabbit$/) + end + + it 'has rpc_backend set for qpid' do + node.set['openstack']['mq']['service_type'] = 'qpid' + expect(chef_run).to render_config_file(path).with_section_content('DEFAULT', /^rpc_backend=qpid$/) + end + + describe '[DEFAULT] section' do + it 'has admin token' do + r = line_regexp('admin_token = bootstrap-token') + expect(chef_run).to render_config_file(path).with_section_content('DEFAULT', r) + end describe 'logging verbosity' do ['verbose', 'debug'].each do |x| it "has #{x} option" do r = line_regexp("#{x} = False") - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('DEFAULT', r) end end end describe 'syslog configuration' do log_file = /^log_file = \/\w+/ - log_conf = /^log_config = \/\w+/ + log_conf = /^log_config_append = \/\w+/ it 'renders log_file correctly' do - expect(chef_run).to render_file(path).with_content(log_file) - expect(chef_run).not_to render_file(path).with_content(log_conf) + expect(chef_run).to render_config_file(path).with_section_content('DEFAULT', log_file) + expect(chef_run).not_to render_config_file(path).with_section_content('DEFAULT', log_conf) end it 'renders log_config correctly' do node.set['openstack']['identity']['syslog']['use'] = true - expect(chef_run).to render_file(path).with_content(log_conf) - expect(chef_run).not_to render_file(path).with_content(log_file) + expect(chef_run).to render_config_file(path).with_section_content('DEFAULT', log_conf) + expect(chef_run).not_to render_config_file(path).with_section_content('DEFAULT', log_file) end end @@ -562,8 +563,8 @@ pub = line_regexp('public_endpoint = https://127.0.1.1:5000/') adm = line_regexp('admin_endpoint = https://127.0.1.1:35357/') - expect(chef_run).to render_file(path).with_content(pub) - expect(chef_run).to render_file(path).with_content(adm) + expect(chef_run).to render_config_file(path).with_section_content('DEFAULT', pub) + expect(chef_run).to render_config_file(path).with_section_content('DEFAULT', adm) end end @@ -572,24 +573,24 @@ # `Openstack#memcached_servers' is stubbed in spec_helper.rb to # return an empty array, so we expect an empty `servers' list. r = line_regexp('servers = ') - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('memcache', r) end it 'has servers when hostnames are configured' do # Re-stub `Openstack#memcached_servers' here hosts = ['host1:111', 'host2:222'] - regex = line_regexp("servers = #{hosts.join(',')}") + r = line_regexp("servers = #{hosts.join(',')}") allow_any_instance_of(Chef::Recipe).to receive(:memcached_servers) .and_return(hosts) - expect(chef_run).to render_file(path).with_content(regex) + expect(chef_run).to render_config_file(path).with_section_content('memcache', r) end end describe '[sql] section' do it 'has a connection' do r = /^connection = \w+/ - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('database', r) end end @@ -604,11 +605,8 @@ it 'does not configure attributes' do optional_attrs.each do |a| - enabled = /^#{Regexp.quote(a)} = \w+/ - disabled = /^##{Regexp.quote(a)}=()?$/ - - expect(chef_run).to render_file(path).with_content(disabled) - expect(chef_run).not_to render_file(path).with_content(enabled) + r = /^#{Regexp.quote(a)} =$/ + expect(chef_run).not_to render_config_file(path).with_section_content('ldap', r) end end @@ -616,7 +614,7 @@ context 'when use_tls disabled' do it 'does not set tls_ options if use_tls is disabled' do [/^tls_cacertfile = /, /^tls_cacertdir = /, /^tls_req_cert = /].each do |setting| - expect(chef_run).not_to render_file(path).with_content(setting) + expect(chef_run).not_to render_config_file(path).with_section_content('ldap', setting) end end end @@ -629,21 +627,21 @@ context 'when cert paths are configured' do it 'has a tls_cacertfile when configured' do node.set['openstack']['identity']['ldap']['tls_cacertfile'] = 'tls_cacertfile_value' - expect(chef_run).to render_file(path).with_content(/^tls_cacertfile = tls_cacertfile_value$/) - expect(chef_run).not_to render_file(path).with_content(/^tls_cacertdir = /) + expect(chef_run).to render_config_file(path).with_section_content('ldap', /^tls_cacertfile = tls_cacertfile_value$/) + expect(chef_run).not_to render_config_file(path).with_section_content('ldap', /^tls_cacertdir = /) end it 'has a tls_cacertdir when configured and tls_cacertfile unset' do node.set['openstack']['identity']['ldap']['tls_cacertfile'] = nil node.set['openstack']['identity']['ldap']['tls_cacertdir'] = 'tls_cacertdir_value' - expect(chef_run).to render_file(path).with_content(/^tls_cacertdir = tls_cacertdir_value$/) - expect(chef_run).not_to render_file(path).with_content(/^tls_cacertfile = /) + expect(chef_run).to render_config_file(path).with_section_content('ldap', /^tls_cacertdir = tls_cacertdir_value$/) + expect(chef_run).not_to render_config_file(path).with_section_content('ldap', /^tls_cacertfile = /) end end context 'when tls_req_cert validation disabled' do it 'has a tls_req_cert set to never' do node.set['openstack']['identity']['ldap']['tls_req_cert'] = 'never' - expect(chef_run).to render_file(path).with_content(/^tls_req_cert = never$/) + expect(chef_run).to render_config_file(path).with_section_content('ldap', /^tls_req_cert = never$/) end end end @@ -677,8 +675,7 @@ user_pass_attribute} required_attrs.each do |a| - expect(chef_run).to render_file(path).with_content( - /^#{Regexp.quote(a)} = \w+/) + expect(chef_run).to render_config_file(path).with_section_content('ldap', /^#{Regexp.quote(a)} = \w+/) end end end @@ -686,7 +683,7 @@ describe '[identity] section' do it 'configures driver' do r = line_regexp('driver = keystone.identity.backends.sql.Identity') - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('identity', r) end [ @@ -695,7 +692,7 @@ %r(^domain_config_dir=/etc/keystone/domains$) ].each do |line| it "has a #{line.source} line" do - expect(chef_run).to render_file(path).with_content(line) + expect(chef_run).to render_config_file(path).with_section_content('identity', line) end end end @@ -703,7 +700,7 @@ describe '[assignment] section' do it 'configures driver' do r = line_regexp('driver = keystone.assignment.backends.sql.Assignment') - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('assignment', r) end end @@ -718,39 +715,39 @@ end it 'configures driver' do - expect(chef_run).to render_file(path).with_content(sql) - expect(chef_run).not_to render_file(path).with_content(templated) + expect(chef_run).to render_config_file(path).with_content(sql) + expect(chef_run).not_to render_config_file(path).with_section_content('catalog', templated) end it 'configures driver with templated backend' do node.set['openstack']['identity']['catalog']['backend'] = 'templated' - expect(chef_run).to render_file(path).with_content(templated) - expect(chef_run).not_to render_file(path).with_content(sql) + expect(chef_run).to render_config_file(path).with_section_content('catalog', templated) + expect(chef_run).not_to render_config_file(path).with_section_content('catalog', sql) end end describe '[token] section' do it 'configures driver' do r = line_regexp('driver = keystone.token.persistence.backends.sql.Token') - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('token', r) end it 'sets token expiration time' do r = line_regexp('expiration = 3600') - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('token', r) end it 'sets token hash algorithm' do r = line_regexp('hash_algorithm = md5') - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('token', r) end end describe '[policy] section' do it 'configures driver' do r = line_regexp('driver = keystone.policy.backends.sql.Policy') - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('policy', r) end end @@ -768,7 +765,7 @@ it 'configures cert options' do opts.each do |key, val| r = line_regexp("#{key} = #{val}") - expect(chef_run).to render_file(path).with_content(r) + expect(chef_run).to render_config_file(path).with_section_content('signing', r) end end end @@ -777,8 +774,7 @@ before { node.set['openstack']['auth']['strategy'] = 'uuid' } it 'does not configure cert options' do opts.each do |key, val| - expect(chef_run).not_to render_file(path).with_content( - /^#{key} = /) + expect(chef_run).not_to render_config_file(path).with_section_content('signing', /^#{key} = /) end end end diff --git a/templates/default/keystone.conf.erb b/templates/default/keystone.conf.erb index 1c1f94d..f46c238 100644 --- a/templates/default/keystone.conf.erb +++ b/templates/default/keystone.conf.erb @@ -2,538 +2,119 @@ [DEFAULT] # -# Options defined in keystone +# From keystone # -# A "shared secret" that can be used to bootstrap Keystone. -# This "token" does not represent a user, and carries no -# explicit authorization. To disable in production (highly -# recommended), remove AdminTokenAuthMiddleware from your -# paste application pipelines (for example, in keystone- -# paste.ini). (string value) -#admin_token=ADMIN -admin_token = <%= @bootstrap_token %> - -# The IP address of the network interface for the public -# service to listen on. (string value) -# Deprecated group/name - [DEFAULT]/bind_host -#public_bind_host=0.0.0.0 -public_bind_host = <%= @bind_address %> - -# The IP address of the network interface for the admin -# service to listen on. (string value) -# Deprecated group/name - [DEFAULT]/bind_host -admin_bind_host = <%= @admin_bind_address %> - -# (Deprecated) The port which the OpenStack Compute service -# listens on. This option was only used for string replacement -# in the templated catalog backend. Templated catalogs should -# replace the "$(compute_port)s" substitution with the static -# port of the compute service. As of Juno, this option is -# deprecated and will be removed in the L release. (integer -# value) -#compute_port=8774 -compute_port = 8774 - -# The port number which the admin service listens on. (integer +# A "shared secret" that can be used to bootstrap Keystone. This "token" does +# not represent a user, and carries no explicit authorization. To disable in +# production (highly recommended), remove AdminTokenAuthMiddleware from your +# paste application pipelines (for example, in keystone-paste.ini). (string # value) -#admin_port=35357 -admin_port = <%= @admin_port %> - -# The port number which the public service listens on. -# (integer value) -#public_port=5000 -public_port = <%= @public_port %> +#admin_token = ADMIN +admin_token = <%= @bootstrap_token %> -# The base public endpoint URL for Keystone that is advertised -# to clients (NOTE: this does NOT affect how Keystone listens -# for connections). Defaults to the base host URL of the -# request. E.g. a request to http://server:5000/v2.0/users -# will default to http://server:5000. You should only need to -# set this value if the base URL contains a path (e.g. -# /prefix/v2.0) or the endpoint should be found on a different -# server. (string value) -#public_endpoint= +# The base public endpoint URL for Keystone that is advertised to clients +# (NOTE: this does NOT affect how Keystone listens for connections). Defaults +# to the base host URL of the request. E.g. a request to +# http://server:5000/v3/users will default to http://server:5000. You should +# only need to set this value if the base URL contains a path (e.g. /prefix/v3) +# or the endpoint should be found on a different server. (string value) +#public_endpoint = public_endpoint = <%= @public_endpoint %> -# The base admin endpoint URL for Keystone that is advertised -# to clients (NOTE: this does NOT affect how Keystone listens -# for connections). Defaults to the base host URL of the -# request. E.g. a request to http://server:35357/v2.0/users -# will default to http://server:35357. You should only need to -# set this value if the base URL contains a path (e.g. -# /prefix/v2.0) or the endpoint should be found on a different -# server. (string value) -#admin_endpoint= +# The base admin endpoint URL for Keystone that is advertised to clients (NOTE: +# this does NOT affect how Keystone listens for connections). Defaults to the +# base host URL of the request. E.g. a request to http://server:35357/v3/users +# will default to http://server:35357. You should only need to set this value +# if the base URL contains a path (e.g. /prefix/v3) or the endpoint should be +# found on a different server. (string value) +#admin_endpoint = admin_endpoint = <%= @admin_endpoint %> -# The number of worker processes to serve the public WSGI -# application (integer value) -<% if node["openstack"]["identity"]["public_workers"] %> -public_workers=<%= node["openstack"]["identity"]["public_workers"] %> -<% end %> - -# The number of worker processes to serve the admin WSGI -# application (integer value) -<% if node["openstack"]["identity"]["admin_workers"] %> -admin_workers=<%= node["openstack"]["identity"]["admin_workers"] %> -<% end %> - -# Enforced by optional sizelimit middleware -# (keystone.middleware:RequestBodySizeLimiter). (integer -# value) -#max_request_body_size=114688 - -# Limit the sizes of user & project ID/names. (integer value) -#max_param_size=64 - -# Similar to max_param_size, but provides an exception for -# token values. (integer value) -#max_token_size=8192 - -# During a SQL upgrade member_role_id will be used to create a -# new role that will replace records in the assignment table -# with explicit role grants. After migration, the -# member_role_id will be used in the API add_user_to_project. -# (string value) -#member_role_id=9fe2ff9ee4384b1894a90878d3e92bab - -# During a SQL upgrade member_role_name will be used to create -# a new role that will replace records in the assignment table -# with explicit role grants. After migration, member_role_name -# will be ignored. (string value) -#member_role_name=_member_ - -# The value passed as the keyword "rounds" to passlib's -# encrypt method. (integer value) -#crypt_strength=40000 - -# Set this to true if you want to enable TCP_KEEPALIVE on -# server sockets, i.e. sockets used by the Keystone wsgi -# server for client connections. (boolean value) -#tcp_keepalive=false - -# Sets the value of TCP_KEEPIDLE in seconds for each server -# socket. Only applies if tcp_keepalive is true. Not supported -# on OS X. (integer value) -#tcp_keepidle=600 - -# The maximum number of entities that will be returned in a -# collection, with no limit set by default. This global limit -# may be then overridden for a specific driver, by specifying -# a list_limit in the appropriate section (e.g. [assignment]). -# (integer value) -#list_limit= <% if node['openstack']['identity']['list_limit'] %> +# The maximum number of entities that will be returned in a collection, with no +# limit set by default. This global limit may be then overridden for a specific +# driver, by specifying a list_limit in the appropriate section (e.g. +# [assignment]). (integer value) +#list_limit= list_limit=<%= node['openstack']['identity']['list_limit'] %> <% end %> -# Set this to false if you want to enable the ability for -# user, group and project entities to be moved between domains -# by updating their domain_id. Allowing such movement is not -# recommended if the scope of a domain admin is being -# restricted by use of an appropriate policy file (see -# policy.v3cloudsample as an example). (boolean value) -#domain_id_immutable=true - -# If set to true, strict password length checking is performed -# for password manipulation. If a password exceeds the maximum -# length, the operation will fail with an HTTP 403 Forbidden -# error. If set to false, passwords are automatically -# truncated to the maximum length. (boolean value) -#strict_password_check=false - - # -# Options defined in oslo.messaging +# From keystone.notifications # - -# Use durable queues in amqp. (boolean value) -# Deprecated group/name - [DEFAULT]/rabbit_durable_queues -#amqp_durable_queues=false - -# Auto-delete queues in amqp. (boolean value) -#amqp_auto_delete=false - -# Size of RPC connection pool. (integer value) -#rpc_conn_pool_size=30 -rpc_conn_pool_size=<%= node["openstack"]["identity"]["rpc_conn_pool_size"] %> - -# Modules of exceptions that are permitted to be recreated -# upon receiving exception data from an rpc call. (list value) -#allowed_rpc_exception_modules=oslo.messaging.exceptions,nova.exception,cinder.exception,exceptions - -# Qpid broker hostname. (string value) -#qpid_hostname=localhost - -# Qpid broker port. (integer value) -#qpid_port=5672 - -# Qpid HA cluster host:port pairs. (list value) -#qpid_hosts=$qpid_hostname:$qpid_port - -# Username for Qpid connection. (string value) -#qpid_username= - -# Password for Qpid connection. (string value) -#qpid_password= - -# Space separated list of SASL mechanisms to use for auth. -# (string value) -#qpid_sasl_mechanisms= - -# Seconds between connection keepalive heartbeats. (integer -# value) -#qpid_heartbeat=60 - -# Transport to use, either 'tcp' or 'ssl'. (string value) -#qpid_protocol=tcp - -# Whether to disable the Nagle algorithm. (boolean value) -#qpid_tcp_nodelay=true - -# The qpid topology version to use. Version 1 is what was -# originally used by impl_qpid. Version 2 includes some -# backwards-incompatible changes that allow broker federation -# to work. Users should update to version 2 when they are -# able to take everything down, as it requires a clean break. -# (integer value) -#qpid_topology_version=1 - -# SSL version to use (valid only if SSL enabled). valid values -# are TLSv1, SSLv23 and SSLv3. SSLv2 may be available on some -# distributions. (string value) -#kombu_ssl_version= - -# SSL key file (valid only if SSL enabled). (string value) -#kombu_ssl_keyfile= - -# SSL cert file (valid only if SSL enabled). (string value) -#kombu_ssl_certfile= - -# SSL certification authority file (valid only if SSL -# enabled). (string value) -#kombu_ssl_ca_certs= - -# How long to wait before reconnecting in response to an AMQP -# consumer cancel notification. (floating point value) -#kombu_reconnect_delay=1.0 - -# The RabbitMQ broker address where a single node is used. -# (string value) -#rabbit_host=localhost - -# The RabbitMQ broker port where a single node is used. -# (integer value) -#rabbit_port=5672 - -# RabbitMQ HA cluster host:port pairs. (list value) -#rabbit_hosts=$rabbit_host:$rabbit_port - -# Connect over SSL for RabbitMQ. (boolean value) -#rabbit_use_ssl=false - -# The RabbitMQ userid. (string value) -#rabbit_userid=guest - -# The RabbitMQ password. (string value) -#rabbit_password=guest - -# the RabbitMQ login method (string value) -#rabbit_login_method=AMQPLAIN - -# The RabbitMQ virtual host. (string value) -#rabbit_virtual_host=/ - -# How frequently to retry connecting with RabbitMQ. (integer -# value) -#rabbit_retry_interval=1 - -# How long to backoff for between retries when connecting to -# RabbitMQ. (integer value) -#rabbit_retry_backoff=2 - -# Maximum number of RabbitMQ connection retries. Default is 0 -# (infinite retry count). (integer value) -#rabbit_max_retries=0 - -# Use HA queues in RabbitMQ (x-ha-policy: all). If you change -# this option, you must wipe the RabbitMQ database. (boolean -# value) -#rabbit_ha_queues=false - -# If passed, use a fake RabbitMQ provider. (boolean value) -#fake_rabbit=false - -# ZeroMQ bind address. Should be a wildcard (*), an ethernet -# interface, or IP. The "host" option should point or resolve -# to this address. (string value) -#rpc_zmq_bind_address=* - -# MatchMaker driver. (string value) -#rpc_zmq_matchmaker=oslo.messaging._drivers.matchmaker.MatchMakerLocalhost - -# ZeroMQ receiver listening port. (integer value) -#rpc_zmq_port=9501 - -# Number of ZeroMQ contexts, defaults to 1. (integer value) -#rpc_zmq_contexts=1 - -# Maximum number of ingress messages to locally buffer per -# topic. Default is unlimited. (integer value) -#rpc_zmq_topic_backlog= - -# Directory for holding IPC sockets. (string value) -#rpc_zmq_ipc_dir=/var/run/openstack - -# Name of this node. Must be a valid hostname, FQDN, or IP -# address. Must match "host" option, if running Nova. (string -# value) -#rpc_zmq_host=keystone - -# Seconds to wait before a cast expires (TTL). Only supported -# by impl_zmq. (integer value) -#rpc_cast_timeout=30 - -# Heartbeat frequency. (integer value) -#matchmaker_heartbeat_freq=300 - -# Heartbeat time-to-live. (integer value) -#matchmaker_heartbeat_ttl=600 - -# Host to locate redis. (string value) -#host=127.0.0.1 - -# Use this port to connect to redis host. (integer value) -#port=6379 - -# Password for Redis server (optional). (string value) -#password= - -# Size of RPC greenthread pool. (integer value) -#rpc_thread_pool_size=64 -rpc_thread_pool_size=<%= node["openstack"]["identity"]["rpc_thread_pool_size"] %> - -# Driver or drivers to handle sending notifications. (multi -# valued) -#notification_driver= - -# AMQP topic used for OpenStack notifications. (list value) -# Deprecated group/name - [rpc_notifier2]/topics -#notification_topics=notifications - -# Seconds to wait for a response from a call. (integer value) -#rpc_response_timeout=60 -rpc_response_timeout=<%= node["openstack"]["identity"]["rpc_response_timeout"] %> - -# A URL representing the messaging driver to use and its full -# configuration. If not set, we fall back to the rpc_backend -# option and driver specific configuration. (string value) -#transport_url= - -# The messaging driver to use, defaults to rabbit. Other -# drivers include qpid and zmq. (string value) -#rpc_backend=rabbit -rpc_backend=<%= node["openstack"]["identity"]["rpc_backend"] %> - -# The default exchange under which topics are scoped. May be -# overridden by an exchange name specified in the -# transport_url option. (string value) -#control_exchange=openstack -control_exchange=<%= node["openstack"]["identity"]["control_exchange"] %> - - # -# Options defined in keystone.notifications +# From keystone.openstack.common.eventlet_backdoor # - -# Default publisher_id for outgoing notifications (string -# value) -#default_publisher_id= - - # -# Options defined in keystone.middleware.ec2_token +# From keystone.openstack.common.policy # -# URL to get token from ec2 request. (string value) -#keystone_ec2_url=http://localhost:5000/v2.0/ec2tokens - -# Required if EC2 server requires client certificate. (string -# value) -#keystone_ec2_keyfile= - -# Client certificate key filename. Required if EC2 server -# requires client certificate. (string value) -#keystone_ec2_certfile= - -# A PEM encoded certificate authority to use when verifying -# HTTPS connections. Defaults to the system CAs. (string -# value) -#keystone_ec2_cafile= - -# Disable SSL certificate verification. (boolean value) -#keystone_ec2_insecure=false - - # -# Options defined in keystone.openstack.common.eventlet_backdoor +# From oslo.log # -# Enable eventlet backdoor. Acceptable values are 0, , -# and :, where 0 results in listening on a random -# tcp port number; results in listening on the -# specified port number (and not enabling backdoor if that -# port is in use); and : results in listening on -# the smallest unused port number within the specified range -# of port numbers. The chosen port is displayed in the -# service's log file. (string value) -#backdoor_port= - - -# -# Options defined in keystone.openstack.common.lockutils -# - -# Enables or disables inter-process locks. (boolean value) -#disable_process_locking=false - -# Directory to use for lock files. (string value) -#lock_path= - - -# -# Options defined in keystone.openstack.common.log -# - -# Print debugging output (set logging level to DEBUG instead -# of default WARNING level). (boolean value) -#debug=false +# Print debugging output (set logging level to DEBUG instead of default WARNING +# level). (boolean value) +#debug = false debug = <%= node["openstack"]["identity"]["debug"] %> -# Print more verbose output (set logging level to INFO instead -# of default WARNING level). (boolean value) -#verbose=false +# Print more verbose output (set logging level to INFO instead of default +# WARNING level). (boolean value) +#verbose = false verbose = <%= node["openstack"]["identity"]["verbose"] %> -# Log output to standard error. (boolean value) -#use_stderr=true - -# Format string to use for log messages with context. (string -# value) -#logging_context_format_string=%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s - -# Format string to use for log messages without context. -# (string value) -#logging_default_format_string=%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s - -# Data to append to log format when level is DEBUG. (string -# value) -#logging_debug_format_suffix=%(funcName)s %(pathname)s:%(lineno)d - -# Prefix each line of exception output with this format. -# (string value) -#logging_exception_prefix=%(asctime)s.%(msecs)03d %(process)d TRACE %(name)s %(instance)s - -# List of logger=LEVEL pairs. (list value) -#default_log_levels=amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN - -# Enables or disables publication of error events. (boolean -# value) -#publish_errors=false - -# Enables or disables fatal status of deprecations. (boolean -# value) -#fatal_deprecations=false - -# The format for an instance that is passed with the log -# message. (string value) -#instance_format="[instance: %(uuid)s] " - -# The format for an instance UUID that is passed with the log -# message. (string value) -#instance_uuid_format="[instance: %(uuid)s] " - -# The name of a logging configuration file. This file is -# appended to any existing logging configuration files. For -# details about logging configuration files, see the Python -# logging module documentation. (string value) -# Deprecated group/name - [DEFAULT]/log_config -#log_config_append= - -# (Optional) Name of log file to output to. If no default is -# set, logging will go to stdout. (string value) -# Deprecated group/name - [DEFAULT]/logfile -#log_file= - -# (Optional) The base directory used for relative --log-file -# paths. (string value) -# Deprecated group/name - [DEFAULT]/logdir -#log_dir= - <% if node["openstack"]["identity"]["syslog"]["use"] %> -log_config = /etc/openstack/logging.conf +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. (string value) +# Deprecated group/name - [DEFAULT]/log_config +#log_config_append = +log_config_append = /etc/openstack/logging.conf <% else %> +# (Optional) Name of log file to output to. If no default is set, logging will +# go to stdout. (string value) +# Deprecated group/name - [DEFAULT]/logfile +#log_file = log_file = /var/log/keystone/keystone.log <% end %> -# DEPRECATED. A logging.Formatter log message format string -# which may use any of the available logging.LogRecord -# attributes. This option is deprecated. Please use -# logging_context_format_string and -# logging_default_format_string instead. (string value) -#log_format= - -# Format string for %%(asctime)s in log records. Default: -# %(default)s . (string value) -#log_date_format=%Y-%m-%d %H:%M:%S - -# Use syslog for logging. Existing syslog format is DEPRECATED -# during I, and will change in J to honor RFC5424. (boolean -# value) -#use_syslog=false - -# (Optional) Enables or disables syslog rfc5424 format for -# logging. If enabled, prefixes the MSG part of the syslog -# message with APP-NAME (RFC5424). The format without the APP- -# NAME is deprecated in I, and will be removed in J. (boolean -# value) -#use_syslog_rfc_format=false - -# Syslog facility to receive log lines. (string value) -#syslog_log_facility=LOG_USER - +# +# From oslo.messaging +# # -# Options defined in keystone.openstack.common.policy +# Options defined in keystone.middleware.ec2_token # -# The JSON file that defines policies. (string value) -#policy_file=policy.json +# Size of RPC thread pool. (integer value) +#rpc_thread_pool_size = 64 +rpc_thread_pool_size=<%= node["openstack"]["identity"]["rpc_thread_pool_size"] %> -# Default rule. Enforced when a requested rule is not found. -# (string value) -#policy_default_rule=default +# Seconds to wait for a response from a call. (integer value) +#rpc_response_timeout = 60 +rpc_response_timeout=<%= node["openstack"]["identity"]["rpc_response_timeout"] %> + +# The messaging driver to use, defaults to rabbit. Other drivers include qpid +# and zmq. (string value) +#rpc_backend = rabbit +rpc_backend=<%= node["openstack"]["identity"]["rpc_backend"] %> +# The default exchange under which topics are scoped. May be overridden by an +# exchange name specified in the transport_url option. (string value) +#control_exchange = keystone +control_exchange=<%= node["openstack"]["identity"]["control_exchange"] %> [assignment] # -# Options defined in keystone +# From keystone # # Assignment backend driver. (string value) -#driver= +#driver = driver = keystone.assignment.backends.<%= node["openstack"]["identity"]["assignment"]["backend"] %>.Assignment -# Toggle for assignment caching. This has no effect unless -# global caching is enabled. (boolean value) -#caching=true - -# TTL (in seconds) to cache assignment data. This has no -# effect unless global caching is enabled. (integer value) -#cache_time= - # Maximum number of entities that will be returned in an # assignment collection. (integer value) #list_limit= @@ -541,255 +122,124 @@ driver = keystone.assignment.backends.<%= node["openstack"]["identity"]["assignm list_limit=<%= node['openstack']['identity']['assignment']['list_limit'] %> <% end %> - [auth] # -# Options defined in keystone +# From keystone # -# Default auth methods. (list value) -#methods=external,password,token -methods = password,token - -# The password auth plugin module. (string value) -#password=keystone.auth.plugins.password.Password -password = keystone.auth.plugins.password.Password - -# The token auth plugin module. (string value) -#token=keystone.auth.plugins.token.Token -token = keystone.auth.plugins.token.Token - -# The external (REMOTE_USER) auth plugin module. (string -# value) -#external=keystone.auth.plugins.external.DefaultDomain - - [cache] # -# Options defined in keystone +# From keystone # -# Prefix for building the configuration dictionary for the -# cache region. This should not need to be changed unless -# there is another dogpile.cache region with the same -# configuration name. (string value) -#config_prefix=cache.keystone - -# Default TTL, in seconds, for any cached item in the -# dogpile.cache region. This applies to any cached method that -# doesn't have an explicit cache expiration time defined for -# it. (integer value) -#expiration_time=600 - -# Dogpile.cache backend module. It is recommended that -# Memcache (dogpile.cache.memcached) or Redis -# (dogpile.cache.redis) be used in production deployments. -# Small workloads (single process) like devstack can use the -# dogpile.cache.memory backend. (string value) -#backend=keystone.common.cache.noop - -# Arguments supplied to the backend module. Specify this -# option once per argument to be passed to the dogpile.cache -# backend. Example format: ":". (multi valued) -#backend_argument= - -# Proxy classes to import that will affect the way the -# dogpile.cache backend functions. See the dogpile.cache -# documentation on changing-backend-behavior. (list value) -#proxies= - -# Global toggle for all caching using the should_cache_fn -# mechanism. (boolean value) -#enabled=false - -# Extra debugging from the cache backend (cache keys, -# get/set/delete/etc calls). This is only really useful if you -# need to see the specific cache-backend get/set/delete calls -# with the keys/values. Typically this should be left set to -# false. (boolean value) -#debug_cache_backend=false - - [catalog] # -# Options defined in keystone +# From keystone # -# Catalog template file name for use with the template catalog -# backend. (string value) -#template_file=default_catalog.templates - # Catalog backend driver. (string value) -#driver=keystone.catalog.backends.sql.Catalog +#driver = keystone.catalog.backends.sql.Catalog <% if node["openstack"]["identity"]["catalog"]["backend"] == "templated" -%> driver = keystone.catalog.backends.templated.TemplatedCatalog <% else -%> driver = keystone.catalog.backends.<%= node["openstack"]["identity"]["catalog"]["backend"] %>.Catalog <% end -%> -# Toggle for catalog caching. This has no effect unless global -# caching is enabled. (boolean value) -#caching=true - -# Time to cache catalog data (in seconds). This has no effect -# unless global and catalog caching are enabled. (integer -# value) -#cache_time= - -# Maximum number of entities that will be returned in a -# catalog collection. (integer value) -#list_limit= <% if node['openstack']['identity']['catalog']['list_limit'] %> +# Maximum number of entities that will be returned in a catalog collection. +# (integer value) +#list_limit = list_limit=<%= node['openstack']['identity']['catalog']['list_limit'] %> <% end %> - [credential] # -# Options defined in keystone +# From keystone # -# Credential backend driver. (string value) -#driver=keystone.credential.backends.sql.Credential - - [database] # -# Options defined in oslo.db +# From oslo.db # -# The file name to use with SQLite. (string value) -#sqlite_db=oslo.sqlite - -# If True, SQLite uses synchronous mode. (boolean value) -#sqlite_synchronous=true - -# The back end to use for the database. (string value) -# Deprecated group/name - [DEFAULT]/db_backend -#backend=sqlalchemy - -# The SQLAlchemy connection string to use to connect to the -# database. (string value) +# The SQLAlchemy connection string to use to connect to the database. (string +# value) # Deprecated group/name - [DEFAULT]/sql_connection # Deprecated group/name - [DATABASE]/sql_connection # Deprecated group/name - [sql]/connection -#connection= +#connection = connection = <%= @sql_connection %> -# The SQLAlchemy connection string to use to connect to the -# slave database. (string value) -#slave_connection= - -# The SQL mode to be used for MySQL sessions. This option, -# including the default, overrides any server-set SQL mode. To -# use whatever SQL mode is set by the server configuration, -# set this to no value. Example: mysql_sql_mode= (string -# value) -#mysql_sql_mode=TRADITIONAL - -# Timeout before idle SQL connections are reaped. (integer -# value) -# Deprecated group/name - [DEFAULT]/sql_idle_timeout -# Deprecated group/name - [DATABASE]/sql_idle_timeout -# Deprecated group/name - [sql]/idle_timeout -#idle_timeout=3600 - -# Minimum number of SQL connections to keep open in a pool. -# (integer value) -# Deprecated group/name - [DEFAULT]/sql_min_pool_size -# Deprecated group/name - [DATABASE]/sql_min_pool_size -#min_pool_size=1 - -# Maximum number of SQL connections to keep open in a pool. -# (integer value) -# Deprecated group/name - [DEFAULT]/sql_max_pool_size -# Deprecated group/name - [DATABASE]/sql_max_pool_size -#max_pool_size= - -# Maximum db connection retries during startup. Set to -1 to -# specify an infinite retry count. (integer value) -# Deprecated group/name - [DEFAULT]/sql_max_retries -# Deprecated group/name - [DATABASE]/sql_max_retries -#max_retries=10 - -# Interval between retries of opening a SQL connection. -# (integer value) -# Deprecated group/name - [DEFAULT]/sql_retry_interval -# Deprecated group/name - [DATABASE]/reconnect_interval -#retry_interval=10 - -# If set, use this value for max_overflow with SQLAlchemy. -# (integer value) -# Deprecated group/name - [DEFAULT]/sql_max_overflow -# Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow -#max_overflow= - -# Verbosity of SQL debugging information: 0=None, -# 100=Everything. (integer value) -# Deprecated group/name - [DEFAULT]/sql_connection_debug -#connection_debug=0 - -# Add Python stack traces to SQL as comment strings. (boolean -# value) -# Deprecated group/name - [DEFAULT]/sql_connection_trace -#connection_trace=false - -# If set, use this value for pool_timeout with SQLAlchemy. -# (integer value) -# Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout -#pool_timeout= +[endpoint_filter] -# Enable the experimental use of database reconnect on -# connection lost. (boolean value) -#use_db_reconnect=false +# +# Options defined in keystone +# -# Seconds between database connection retries. (integer value) -#db_retry_interval=1 +[endpoint_policy] -# If True, increases the interval between database connection -# retries up to db_max_retry_interval. (boolean value) -#db_inc_retry_interval=true +# +# From keystone +# +[eventlet_server] -# If db_inc_retry_interval is set, the maximum seconds between -# database connection retries. (integer value) -#db_max_retry_interval=10 +# +# From keystone +# -# Maximum database connection retries before error is raised. -# Set to -1 to specify an infinite retry count. (integer -# value) -#db_max_retries=20 +<% if node["openstack"]["identity"]["public_workers"] %> +# The number of worker processes to serve the public eventlet application. +# Defaults to number of CPUs (minimum of 2). (integer value) +# Deprecated group/name - [DEFAULT]/public_workers +#public_workers = +public_workers=<%= node["openstack"]["identity"]["public_workers"] %> +<% end %> +<% if node["openstack"]["identity"]["admin_workers"] %> +# The number of worker processes to serve the admin eventlet application. +# Defaults to number of CPUs (minimum of 2). (integer value) +# Deprecated group/name - [DEFAULT]/admin_workers +#admin_workers = +admin_workers=<%= node["openstack"]["identity"]["admin_workers"] %> +<% end %> -[ec2] +# The IP address of the network interface for the public service to listen on. +# (string value) +# Deprecated group/name - [DEFAULT]/bind_host +# Deprecated group/name - [DEFAULT]/public_bind_host +#public_bind_host = 0.0.0.0 +public_bind_host = <%= @bind_address %> -# -# Options defined in keystone -# +# The port number which the public service listens on. (integer value) +# Deprecated group/name - [DEFAULT]/public_port +#public_port = 5000 +public_port = <%= @public_port %> -# EC2Credential backend driver. (string value) -#driver=keystone.contrib.ec2.backends.kvs.Ec2 -driver = keystone.contrib.ec2.backends.sql.Ec2 +# The IP address of the network interface for the admin service to listen on. +# (string value) +# Deprecated group/name - [DEFAULT]/bind_host +# Deprecated group/name - [DEFAULT]/admin_bind_host +#admin_bind_host = 0.0.0.0 +admin_bind_host = <%= @admin_bind_address %> +# The port number which the admin service listens on. (integer value) +# Deprecated group/name - [DEFAULT]/admin_port +#admin_port = 35357 +admin_port = <%= @admin_port %> -[endpoint_filter] +[eventlet_server_ssl] # -# Options defined in keystone +# From keystone # - -# Endpoint Filter backend driver (string value) -#driver=keystone.contrib.endpoint_filter.backends.sql.EndpointFilter - -# Toggle to return all active endpoints if no filter exists. # (boolean value) #return_all_endpoints_if_no_filter=true - [federation] # @@ -803,406 +253,313 @@ driver = keystone.contrib.ec2.backends.sql.Ec2 # the environment. (string value) #assertion_prefix= - [identity] # -# Options defined in keystone +# From keystone # -# This references the domain to use for all Identity API v2 -# requests (which are not aware of domains). A domain with -# this ID will be created for you by keystone-manage db_sync -# in migration 008. The domain referenced by this ID cannot be -# deleted on the v3 API, to prevent accidentally breaking the -# v2 API. There is nothing special about this domain, other -# than the fact that it must exist to order to maintain -# support for your v2 clients. (string value) +# This references the domain to use for all Identity API v2 requests (which are +# not aware of domains). A domain with this ID will be created for you by +# keystone-manage db_sync in migration 008. The domain referenced by this ID +# cannot be deleted on the v3 API, to prevent accidentally breaking the v2 API. +# There is nothing special about this domain, other than the fact that it must +# exist to order to maintain support for your v2 clients. (string value) +#default_domain_id = default default_domain_id=<%= node["openstack"]["identity"]["identity"]["default_domain_id"] %> -# A subset (or all) of domains can have their own identity -# driver, each with their own partial configuration file in a -# domain configuration directory. Only values specific to the -# domain need to be placed in the domain specific -# configuration file. This feature is disabled by default; set -# to true to enable. (boolean value) +# A subset (or all) of domains can have their own identity driver, each with +# their own partial configuration options, stored in either the resource +# backend or in a file in a domain configuration directory (depending on the +# setting of domain_configurations_from_database). Only values specific to the +# domain need to be specified in this manner. This feature is disabled by +# default; set to true to enable. (boolean value) +#domain_specific_drivers_enabled = false domain_specific_drivers_enabled=<%= node["openstack"]["identity"]["identity"]["domain_specific_drivers_enabled"] %> -# Path for Keystone to locate the domain specific identity -# configuration files if domain_specific_drivers_enabled is -# set to true. (string value) +# Path for Keystone to locate the domain specific identity configuration files +# if domain_specific_drivers_enabled is set to true. (string value) +#domain_config_dir = /etc/keystone/domains domain_config_dir=<%= node["openstack"]["identity"]["identity"]["domain_config_dir"] %> # Identity backend driver. (string value) -#driver=keystone.identity.backends.sql.Identity +#driver = keystone.identity.backends.sql.Identity driver = keystone.identity.backends.<%= node["openstack"]["identity"]["identity"]["backend"] %>.Identity -# Maximum supported length for user passwords; decrease to -# improve performance. (integer value) -#max_password_length=4096 - -# Maximum number of entities that will be returned in an -# identity collection. (integer value) -#list_limit= <% if node['openstack']['identity']['identity']['list_limit'] %> +# Maximum number of entities that will be returned in an identity collection. +# (integer value) +#list_limit = list_limit=<%= node['openstack']['identity']['identity']['list_limit'] %> <% end %> - [identity_mapping] # -# Options defined in keystone +# From keystone # -# Keystone Identity Mapping backend driver. (string value) -#driver=keystone.identity.mapping_backends.sql.Mapping - -# Public ID generator for user and group entities. The -# Keystone identity mapper only supports generators that -# produce no more than 64 characters. (string value) -#generator=keystone.identity.id_generators.sha256.Generator - -# The format of user and group IDs changed in Juno for -# backends that do not generate UUIDs (e.g. LDAP), with -# keystone providing a hash mapping to the underlying -# attribute in LDAP. By default this mapping is disabled, -# which ensures that existing IDs will not change. Even when -# the mapping is enabled by using domain specific drivers, any -# users and groups from the default domain being handled by -# LDAP will still not be mapped to ensure their IDs remain -# backward compatible. Setting this value to False will enable -# the mapping for even the default LDAP driver. It is only -# safe to do this if you do not already have assignments for -# users and groups from the default LDAP domain, and it is -# acceptable for Keystone to provide the different IDs to -# clients than it did previously. Typically this means that -# the only time you can set this value to False is when -# configuring a fresh installation. (boolean value) -#backward_compatible_ids=true - - [kvs] # -# Options defined in keystone +# From keystone # -# Extra dogpile.cache backend modules to register with the -# dogpile.cache library. (list value) -#backends= - -# Prefix for building the configuration dictionary for the KVS -# region. This should not need to be changed unless there is -# another dogpile.cache region with the same configuration -# name. (string value) -#config_prefix=keystone.kvs - -# Toggle to disable using a key-mangling function to ensure -# fixed length keys. This is toggle-able for debugging -# purposes, it is highly recommended to always leave this set -# to true. (boolean value) -#enable_key_mangler=true - -# Default lock timeout for distributed locking. (integer -# value) -#default_lock_timeout=5 - - [ldap] # -# Options defined in keystone +# From keystone # # URL for connecting to the LDAP server. (string value) -#url=ldap://localhost +#url = ldap://localhost url = <%= @ldap["url"] %> # User BindDN to query the LDAP server. (string value) -#user= +#user = user = <%= @ldap["user"] %> -# Password for the BindDN to query the LDAP server. (string -# value) -#password= <% if @ldap["password"] -%> +# Password for the BindDN to query the LDAP server. (string value) +#password = password = <%= @ldap["password"] %> <% end -%> # LDAP server suffix (string value) -#suffix=cn=example,cn=com +#suffix = cn=example,cn=com suffix = <%= @ldap["suffix"] %> -# If true, will add a dummy member to groups. This is required -# if the objectclass for groups requires the "member" -# attribute. (boolean value) -#use_dumb_member=false +# If true, will add a dummy member to groups. This is required if the +# objectclass for groups requires the "member" attribute. (boolean value) +#use_dumb_member = false use_dumb_member = <%= @ldap["use_dumb_member"] %> -# DN of the "dummy member" to use when "use_dumb_member" is -# enabled. (string value) -#dumb_member=cn=dumb,dc=nonexistent +# DN of the "dummy member" to use when "use_dumb_member" is enabled. (string +# value) +#dumb_member = cn=dumb,dc=nonexistent dumb_member = <%= @ldap["dumb_member"] %> -# Delete subtrees using the subtree delete control. Only -# enable this option if your LDAP server supports subtree -# deletion. (boolean value) -#allow_subtree_delete=false +# Delete subtrees using the subtree delete control. Only enable this option if +# your LDAP server supports subtree deletion. (boolean value) +#allow_subtree_delete = false allow_subtree_delete = <%= @ldap["allow_subtree_delete"] %> -# The LDAP scope for queries, this can be either "one" -# (onelevel/singleLevel) or "sub" (subtree/wholeSubtree). -# (string value) -#query_scope=one +# The LDAP scope for queries, this can be either "one" (onelevel/singleLevel) +# or "sub" (subtree/wholeSubtree). (string value) +#query_scope = one query_scope = <%= @ldap["query_scope"] %> -# Maximum results per page; a value of zero ("0") disables -# paging. (integer value) -#page_size=0 +# Maximum results per page; a value of zero ("0") disables paging. (integer +# value) +#page_size = 0 page_size = <%= @ldap["page_size"] %> -# The LDAP dereferencing option for queries. This can be -# either "never", "searching", "always", "finding" or -# "default". The "default" option falls back to using default -# dereferencing configured by your ldap.conf. (string value) -#alias_dereferencing=default +# The LDAP dereferencing option for queries. This can be either "never", +# "searching", "always", "finding" or "default". The "default" option falls +# back to using default dereferencing configured by your ldap.conf. (string +# value) +#alias_dereferencing = default alias_dereferencing = <%= @ldap["alias_dereferencing"] %> -# Sets the LDAP debugging level for LDAP calls. A value of 0 -# means that debugging is not enabled. This value is a -# bitmask, consult your LDAP documentation for possible -# values. (integer value) -#debug_level= - -# Override the system's default referral chasing behavior for -# queries. (boolean value) -#chase_referrals= - -# Search base for users. (string value) -#user_tree_dn= <% if @ldap["user_tree_dn"] -%> +# Search base for users. (string value) +#user_tree_dn = user_tree_dn = <%= @ldap["user_tree_dn"] %> <% end -%> -# LDAP search filter for users. (string value) -#user_filter= <% if @ldap["user_filter"] -%> +# LDAP search filter for users. (string value) +#user_filter = user_filter = <%= @ldap["user_filter"] %> <% end -%> - # LDAP objectclass for users. (string value) -#user_objectclass=inetOrgPerson +#user_objectclass = inetOrgPerson user_objectclass = <%= @ldap["user_objectclass"] %> -# LDAP attribute mapped to user id. (string value) -#user_id_attribute=cn +# LDAP attribute mapped to user id. WARNING: must not be a multivalued +# attribute. (string value) +#user_id_attribute = cn user_id_attribute = <%= @ldap["user_id_attribute"] %> # LDAP attribute mapped to user name. (string value) -#user_name_attribute=sn +#user_name_attribute = sn user_name_attribute = <%= @ldap["user_name_attribute"] %> # LDAP attribute mapped to user email. (string value) -#user_mail_attribute=email +#user_mail_attribute = mail user_mail_attribute = <%= @ldap["user_mail_attribute"] %> # LDAP attribute mapped to password. (string value) -#user_pass_attribute=userPassword +#user_pass_attribute = userPassword user_pass_attribute = <%= @ldap["user_pass_attribute"] %> # LDAP attribute mapped to user enabled flag. (string value) -#user_enabled_attribute=enabled +#user_enabled_attribute = enabled user_enabled_attribute = <%= @ldap["user_enabled_attribute"] %> -# Bitmask integer to indicate the bit that the enabled value -# is stored in if the LDAP server represents "enabled" as a -# bit on an integer rather than a boolean. A value of "0" -# indicates the mask is not used. If this is not set to "0" -# the typical value is "2". This is typically used when -# "user_enabled_attribute = userAccountControl". (integer -# value) -#user_enabled_mask=0 +# Bitmask integer to indicate the bit that the enabled value is stored in if +# the LDAP server represents "enabled" as a bit on an integer rather than a +# boolean. A value of "0" indicates the mask is not used. If this is not set to +# "0" the typical value is "2". This is typically used when +# "user_enabled_attribute = userAccountControl". (integer value) +#user_enabled_mask = 0 user_enabled_mask = <%= @ldap["user_enabled_mask"] %> -# Default value to enable users. This should match an -# appropriate int value if the LDAP server uses non-boolean -# (bitmask) values to indicate if a user is enabled or -# disabled. If this is not set to "True" the typical value is -# "512". This is typically used when "user_enabled_attribute = -# userAccountControl". (string value) -#user_enabled_default=True +# Default value to enable users. This should match an appropriate int value if +# the LDAP server uses non-boolean (bitmask) values to indicate if a user is +# enabled or disabled. If this is not set to "True" the typical value is "512". +# This is typically used when "user_enabled_attribute = userAccountControl". +# (string value) +#user_enabled_default = True user_enabled_default = <%= @ldap["user_enabled_default"] %> -# List of attributes stripped off the user on update. (list -# value) -#user_attribute_ignore=default_project_id,tenants +# List of attributes stripped off the user on update. (list value) +#user_attribute_ignore = default_project_id,tenants user_attribute_ignore = <%= @ldap["user_attribute_ignore"] %> -# LDAP attribute mapped to default_project_id for users. -# (string value) -#user_default_project_id_attribute= - # Allow user creation in LDAP backend. (boolean value) -#user_allow_create=true +#user_allow_create = true user_allow_create = <%= @ldap["user_allow_create"] %> # Allow user updates in LDAP backend. (boolean value) -#user_allow_update=true +#user_allow_update = true user_allow_update = <%= @ldap["user_allow_update"] %> # Allow user deletion in LDAP backend. (boolean value) -#user_allow_delete=true +#user_allow_delete = true user_allow_delete = <%= @ldap["user_allow_delete"] %> -# If true, Keystone uses an alternative method to determine if -# a user is enabled or not by checking if they are a member of -# the "user_enabled_emulation_dn" group. (boolean value) -#user_enabled_emulation=false +# If true, Keystone uses an alternative method to determine if a user is +# enabled or not by checking if they are a member of the +# "user_enabled_emulation_dn" group. (boolean value) +#user_enabled_emulation = false user_enabled_emulation = <%= @ldap["user_enabled_emulation"] %> -# DN of the group entry to hold enabled users when using -# enabled emulation. (string value) -#user_enabled_emulation_dn= <% if @ldap["user_enabled_emulation_dn"] -%> +# DN of the group entry to hold enabled users when using enabled emulation. +# (string value) +#user_enabled_emulation_dn = user_enabled_emulation_dn = <%= @ldap["user_enabled_emulation_dn"] %> <% end -%> -# List of additional LDAP attributes used for mapping -# additional attribute mappings for users. Attribute mapping -# format is :, where ldap_attr is the -# attribute in the LDAP entry and user_attr is the Identity -# API attribute. (list value) -#user_additional_attribute_mapping= - +<% if @ldap["project_tree_dn"] -%> # Search base for projects (string value) # Deprecated group/name - [ldap]/tenant_tree_dn -#project_tree_dn= -<% if @ldap["project_tree_dn"] -%> +#project_tree_dn = project_tree_dn = <%= @ldap["project_tree_dn"] %> <% end -%> +<% if @ldap["project_filter"] -%> # LDAP search filter for projects. (string value) # Deprecated group/name - [ldap]/tenant_filter -#project_filter= -<% if @ldap["project_filter"] -%> +#project_filter = project_filter = <%= @ldap["project_filter"] %> <% end -%> +# LDAP objectclass for projects. (string value) +# Deprecated group/name - [ldap]/tenant_objectclass +#project_objectclass = groupOfNames +project_objectclass = <%= @ldap["project_objectclass"] %> + # LDAP attribute mapped to project id. (string value) # Deprecated group/name - [ldap]/tenant_id_attribute -#project_id_attribute=cn +#project_id_attribute = cn project_id_attribute = <%= @ldap["project_id_attribute"] %> -# LDAP attribute mapped to project membership for user. -# (string value) +# LDAP attribute mapped to project membership for user. (string value) # Deprecated group/name - [ldap]/tenant_member_attribute -#project_member_attribute=member +#project_member_attribute = member project_member_attribute = <%= @ldap["project_member_attribute"] %> # LDAP attribute mapped to project name. (string value) # Deprecated group/name - [ldap]/tenant_name_attribute -#project_name_attribute=ou +#project_name_attribute = ou project_name_attribute = <%= @ldap["project_name_attribute"] %> # LDAP attribute mapped to project description. (string value) # Deprecated group/name - [ldap]/tenant_desc_attribute -#project_desc_attribute=description +#project_desc_attribute = description project_desc_attribute = <%= @ldap["project_desc_attribute"] %> # LDAP attribute mapped to project enabled. (string value) # Deprecated group/name - [ldap]/tenant_enabled_attribute -#project_enabled_attribute=enabled +#project_enabled_attribute = enabled project_enabled_attribute = <%= @ldap["project_enabled_attribute"] %> # LDAP attribute mapped to project domain_id. (string value) # Deprecated group/name - [ldap]/tenant_domain_id_attribute -#project_domain_id_attribute=businessCategory +#project_domain_id_attribute = businessCategory project_domain_id_attribute = <%= @ldap["project_domain_id_attribute"] %> -# List of attributes stripped off the project on update. (list -# value) -# Deprecated group/name - [ldap]/tenant_attribute_ignore -#project_attribute_ignore= <% if @ldap["project_attribute_ignore"] -%> +# List of attributes stripped off the project on update. (list value) +# Deprecated group/name - [ldap]/tenant_attribute_ignore +#project_attribute_ignore = project_attribute_ignore = <%= @ldap["project_attribute_ignore"] %> <% end -%> -# LDAP objectclass for projects. (string value) -# Deprecated group/name - [ldap]/tenant_objectclass -#project_objectclass=groupOfNames -project_objectclass = <%= @ldap["project_objectclass"] %> - # Allow project creation in LDAP backend. (boolean value) # Deprecated group/name - [ldap]/tenant_allow_create -#project_allow_create=true +#project_allow_create = true project_allow_create = <%= @ldap["project_allow_create"] %> # Allow project update in LDAP backend. (boolean value) # Deprecated group/name - [ldap]/tenant_allow_update -#project_allow_update=true +#project_allow_update = true project_allow_update = <%= @ldap["project_allow_update"] %> # Allow project deletion in LDAP backend. (boolean value) # Deprecated group/name - [ldap]/tenant_allow_delete -#project_allow_delete=true +#project_allow_delete = true project_allow_delete = <%= @ldap["project_allow_delete"] %> -# If true, Keystone uses an alternative method to determine if -# a project is enabled or not by checking if they are a member -# of the "project_enabled_emulation_dn" group. (boolean value) +# If true, Keystone uses an alternative method to determine if a project is +# enabled or not by checking if they are a member of the +# "project_enabled_emulation_dn" group. (boolean value) # Deprecated group/name - [ldap]/tenant_enabled_emulation -#project_enabled_emulation=false +#project_enabled_emulation = false project_enabled_emulation = <%= @ldap["project_enabled_emulation"] %> -# DN of the group entry to hold enabled projects when using -# enabled emulation. (string value) -# Deprecated group/name - [ldap]/tenant_enabled_emulation_dn -#project_enabled_emulation_dn= <% if @ldap["project_enabled_emulation_dn"] -%> +# DN of the group entry to hold enabled projects when using enabled emulation. +# (string value) +# Deprecated group/name - [ldap]/tenant_enabled_emulation_dn +#project_enabled_emulation_dn = project_enabled_emulation_dn = <%= @ldap["project_enabled_emulation_dn"] %> <% end -%> -# Additional attribute mappings for projects. Attribute -# mapping format is :, where ldap_attr -# is the attribute in the LDAP entry and user_attr is the -# Identity API attribute. (list value) -# Deprecated group/name - [ldap]/tenant_additional_attribute_mapping -#project_additional_attribute_mapping= - -# Search base for roles. (string value) -#role_tree_dn= <% if @ldap["role_tree_dn"] -%> +# Search base for roles. (string value) +#role_tree_dn = role_tree_dn = <%= @ldap["role_tree_dn"] %> <% end -%> -# LDAP search filter for roles. (string value) -#role_filter= <% if @ldap["role_filter"] -%> +# LDAP search filter for roles. (string value) +#role_filter = role_filter = <%= @ldap["role_filter"] %> <% end -%> # LDAP objectclass for roles. (string value) -#role_objectclass=organizationalRole +#role_objectclass = organizationalRole role_objectclass = <%= @ldap["role_objectclass"] %> # LDAP attribute mapped to role id. (string value) -#role_id_attribute=cn +#role_id_attribute = cn role_id_attribute = <%= @ldap["role_id_attribute"] %> # LDAP attribute mapped to role name. (string value) -#role_name_attribute=ou +#role_name_attribute = ou role_name_attribute = <%= @ldap["role_name_attribute"] %> # LDAP attribute mapped to role membership. (string value) #role_member_attribute=roleOccupant role_member_attribute = <%= @ldap["role_member_attribute"] %> -# List of attributes stripped off the role on update. (list -# value) -#role_attribute_ignore= <% if @ldap["role_attribute_ignore"] -%> +# List of attributes stripped off the role on update. (list value) +#role_attribute_ignore = role_attribute_ignore = <%= @ldap["role_attribute_ignore"] %> <% end -%> @@ -1218,130 +575,80 @@ role_allow_update = <%= @ldap["role_allow_update"] %> #role_allow_delete=true role_allow_delete = <%= @ldap["role_allow_delete"] %> -# Additional attribute mappings for roles. Attribute mapping -# format is :, where ldap_attr is the -# attribute in the LDAP entry and user_attr is the Identity -# API attribute. (list value) -#role_additional_attribute_mapping= - -# Search base for groups. (string value) -#group_tree_dn= <% if @ldap["group_tree_dn"] -%> +# Search base for groups. (string value) +#group_tree_dn = group_tree_dn = <%= @ldap["group_tree_dn"] %> <% end -%> -# LDAP search filter for groups. (string value) -#group_filter= <% if @ldap["group_filter"] -%> +# LDAP search filter for groups. (string value) +#group_filter = group_filter = <%= @ldap["group_filter"] %> <% end -%> # LDAP objectclass for groups. (string value) -#group_objectclass=groupOfNames +#group_objectclass = groupOfNames group_objectclass = <%= @ldap["group_objectclass"] %> # LDAP attribute mapped to group id. (string value) -#group_id_attribute=cn +#group_id_attribute = cn group_id_attribute = <%= @ldap["group_id_attribute"] %> # LDAP attribute mapped to group name. (string value) -#group_name_attribute=ou +#group_name_attribute = ou group_name_attribute = <%= @ldap["group_name_attribute"] %> -# LDAP attribute mapped to show group membership. (string -# value) -#group_member_attribute=member +# LDAP attribute mapped to show group membership. (string value) +#group_member_attribute = member group_member_attribute = <%= @ldap["group_member_attribute"] %> # LDAP attribute mapped to group description. (string value) -#group_desc_attribute=description +#group_desc_attribute = description group_desc_attribute = <%= @ldap["group_desc_attribute"] %> -# List of attributes stripped off the group on update. (list -# value) -#group_attribute_ignore= <% if @ldap["group_attribute_ignore"] -%> +# List of attributes stripped off the group on update. (list value) +#group_attribute_ignore = group_attribute_ignore = <%= @ldap["group_attribute_ignore"] %> <% end -%> # Allow group creation in LDAP backend. (boolean value) -#group_allow_create=true +#group_allow_create = true group_allow_create = <%= @ldap["group_allow_create"] %> # Allow group update in LDAP backend. (boolean value) -#group_allow_update=true +#group_allow_update = true group_allow_update = <%= @ldap["group_allow_update"] %> # Allow group deletion in LDAP backend. (boolean value) -#group_allow_delete=true +#group_allow_delete = true group_allow_delete = <%= @ldap["group_allow_delete"] %> -# Additional attribute mappings for groups. Attribute mapping -# format is :, where ldap_attr is the -# attribute in the LDAP entry and user_attr is the Identity -# API attribute. (list value) -#group_additional_attribute_mapping= - -# Enable TLS for communicating with LDAP servers. (boolean -# value) -#use_tls=false +# Enable TLS for communicating with LDAP servers. (boolean value) +#use_tls = false <% if @ldap["use_tls"] -%> use_tls = True -# CA certificate file path for communicating with LDAP -# servers. (string value) -#tls_cacertfile= -# CA certificate directory path for communicating with LDAP -# servers. (string value) -#tls_cacertdir= +# CA certificate file path for communicating with LDAP servers. (string value) +#tls_cacertfile = +# CA certificate directory path for communicating with LDAP servers. (string +# value) +#tls_cacertdir = <% if @ldap["tls_cacertfile"] -%> tls_cacertfile = <%= @ldap["tls_cacertfile"] %> <% elsif @ldap["tls_cacertdir"] -%> tls_cacertdir = <%= @ldap["tls_cacertdir"] %> <% end -%> -# Valid options for tls_req_cert are demand, never, and allow. -# (string value) -#tls_req_cert=demand +# Valid options for tls_req_cert are demand, never, and allow. (string value) +#tls_req_cert = demand <% if @ldap["tls_req_cert"] -%> tls_req_cert = <%= @ldap["tls_req_cert"] %> <% end -%> <% end -%> -# Enable LDAP connection pooling. (boolean value) -#use_pool=false - -# Connection pool size. (integer value) -#pool_size=10 - -# Maximum count of reconnect trials. (integer value) -#pool_retry_max=3 - -# Time span in seconds to wait between two reconnect trials. -# (floating point value) -#pool_retry_delay=0.1 - -# Connector timeout in seconds. Value -1 indicates indefinite -# wait for response. (integer value) -#pool_connection_timeout=-1 - -# Connection lifetime in seconds. (integer value) -#pool_connection_lifetime=600 - -# Enable LDAP connection pooling for end user authentication. -# If use_pool is disabled, then this setting is meaningless -# and is not used at all. (boolean value) -#use_auth_pool=false - -# End user auth connection pool size. (integer value) -#auth_pool_size=100 - -# End user auth connection lifetime in seconds. (integer -# value) -#auth_pool_connection_lifetime=60 - - [matchmaker_ring] # @@ -1352,359 +659,258 @@ tls_req_cert = <%= @ldap["tls_req_cert"] %> # Deprecated group/name - [DEFAULT]/matchmaker_ringfile #ringfile=/etc/oslo/matchmaker_ring.json - [memcache] # # Options defined in keystone # +<% if @memcache_servers -%> # Memcache servers in the format of "host:port". (list value) #servers=localhost:11211 -<% if @memcache_servers -%> servers = <%= @memcache_servers %> <% end -%> -# Number of compare-and-set attempts to make when using -# compare-and-set in the token memcache back end. (integer -# value) -#max_compare_and_set_retry=16 - - [oauth1] # -# Options defined in keystone +# From keystone # -# Credential backend driver. (string value) -#driver=keystone.contrib.oauth1.backends.sql.OAuth1 +[os_inherit] -# Duration (in seconds) for the OAuth Request Token. (integer -# value) -#request_token_duration=28800 +# +# From keystone +# -# Duration (in seconds) for the OAuth Access Token. (integer -# value) -#access_token_duration=86400 +[oslo_messaging_amqp] +# +# From oslo.messaging +# -[os_inherit] +[oslo_messaging_qpid] # -# Options defined in keystone +# From oslo.messaging # -# role-assignment inheritance to projects from owning domain -# can be optionally enabled. (boolean value) -#enabled=false +# Size of RPC connection pool. (integer value) +# Deprecated group/name - [DEFAULT]/rpc_conn_pool_size +#rpc_conn_pool_size = 30 +rpc_conn_pool_size=<%= node["openstack"]["identity"]["rpc_conn_pool_size"] %> +[oslo_messaging_rabbit] +# +# From oslo.messaging +# -[paste_deploy] +[oslo_middleware] # -# Options defined in keystone +# From oslo.middleware # +[paste_deploy] -# Name of the paste configuration file that defines the -# available pipelines. (string value) -#config_file=keystone-paste.ini - +# +# From keystone +# [policy] # -# Options defined in keystone +# From keystone # # Policy backend driver. (string value) -#driver=keystone.policy.backends.sql.Policy +#driver = keystone.policy.backends.sql.Policy driver = keystone.policy.backends.<%= node["openstack"]["identity"]["policy"]["backend"] %>.Policy -# Maximum number of entities that will be returned in a policy -# collection. (integer value) -#list_limit= <% if node['openstack']['identity']['policy']['list_limit'] %> +# Maximum number of entities that will be returned in a policy collection. +# (integer value) +#list_limit = list_limit=<%= node['openstack']['identity']['policy']['list_limit'] %> <% end %> - -[revoke] +[resource] # -# Options defined in keystone +# From keystone # -# An implementation of the backend for persisting revocation -# events. (string value) -#driver=keystone.contrib.revoke.backends.kvs.Revoke - -# This value (calculated in seconds) is added to token -# expiration before a revocation event may be removed from the -# backend. (integer value) -#expiration_buffer=1800 +[revoke] -# Toggle for revocation event cacheing. This has no effect -# unless global caching is enabled. (boolean value) -#caching=true +# +# From keystone +# +[role] +# +# From keystone +# [saml] # -# Options defined in keystone +# From keystone # -# Default TTL, in seconds, for any generated SAML assertion -# created by Keystone. (integer value) +# Default TTL, in seconds, for any generated SAML assertion created by +# Keystone. (integer value) +#assertion_expiration_time = 3600 assertion_expiration_time=<%= node["openstack"]["identity"]["saml"]["assertion_expiration_time"] %> -# Binary to be called for XML signing. Install the appropriate -# package, specify absolute path or adjust your PATH -# environment variable if the binary cannot be found. (string -# value) +# Binary to be called for XML signing. Install the appropriate package, specify +# absolute path or adjust your PATH environment variable if the binary cannot +# be found. (string value) +#xmlsec1_binary = xmlsec1 xmlsec1_binary=<%= node["openstack"]["identity"]["saml"]["xmlsec1_binary"] %> -# Path of the certfile for SAML signing. For non-production -# environments, you may be interested in using `keystone- -# manage pki_setup` to generate self-signed certificates. -# Note, the path cannot contain a comma. (string value) +# Path of the certfile for SAML signing. For non-production environments, you +# may be interested in using `keystone-manage pki_setup` to generate self- +# signed certificates. Note, the path cannot contain a comma. (string value) +#certfile = /etc/keystone/ssl/certs/signing_cert.pem certfile=<%= node["openstack"]["identity"]["saml"]["certfile"] %> -# Path of the keyfile for SAML signing. Note, the path cannot -# contain a comma. (string value) +# Path of the keyfile for SAML signing. Note, the path cannot contain a comma. +# (string value) +#keyfile = /etc/keystone/ssl/private/signing_key.pem keyfile=<%= node["openstack"]["identity"]["saml"]["keyfile"] %> -# Entity ID value for unique Identity Provider identification. -# Usually FQDN is set with a suffix. A value is required to -# generate IDP Metadata. For example: -# https://keystone.example.com/v3/OS-FEDERATION/saml2/idp -# (string value) +# Entity ID value for unique Identity Provider identification. Usually FQDN is +# set with a suffix. A value is required to generate IDP Metadata. For example: +# https://keystone.example.com/v3/OS-FEDERATION/saml2/idp (string value) +#idp_entity_id = idp_entity_id=<%= node["openstack"]["identity"]["saml"]["idp_entity_id"] %> -# Identity Provider Single-Sign-On service value, required in -# the Identity Provider's metadata. A value is required to -# generate IDP Metadata. For example: -# https://keystone.example.com/v3/OS-FEDERATION/saml2/sso -# (string value) +# Identity Provider Single-Sign-On service value, required in the Identity +# Provider's metadata. A value is required to generate IDP Metadata. For +# example: https://keystone.example.com/v3/OS-FEDERATION/saml2/sso (string +# value) +#idp_sso_endpoint = idp_sso_endpoint=<%= node["openstack"]["identity"]["saml"]["idp_sso_endpoint"] %> # Language used by the organization. (string value) +#idp_lang = en idp_lang=<%= node["openstack"]["identity"]["saml"]["idp_lang"] %> -# Organization name the installation belongs to. (string -# value) +# Organization name the installation belongs to. (string value) +#idp_organization_name = idp_organization_name=<%= node["openstack"]["identity"]["saml"]["idp_organization_name"] %> # Organization name to be displayed. (string value) +#idp_organization_display_name = idp_organization_display_name=<%= node["openstack"]["identity"]["saml"]["idp_organization_display_name"] %> # URL of the organization. (string value) +#idp_organization_url = idp_organization_url=<%= node["openstack"]["identity"]["saml"]["idp_organization_url"] %> # Company of contact person. (string value) +#idp_contact_company = idp_contact_company=<%= node["openstack"]["identity"]["saml"]["idp_contact_company"] %> # Given name of contact person (string value) +#idp_contact_name = idp_contact_name=<%= node["openstack"]["identity"]["saml"]["idp_contact_name"] %> # Surname of contact person. (string value) +#idp_contact_surname = idp_contact_surname=<%= node["openstack"]["identity"]["saml"]["idp_contact_surname"] %> # Email address of contact person. (string value) +#idp_contact_email = idp_contact_email=<%= node["openstack"]["identity"]["saml"]["idp_contact_email"] %> # Telephone number of contact person. (string value) +#idp_contact_telephone = idp_contact_telephone=<%= node["openstack"]["identity"]["saml"]["idp_contact_telephone"] %> -# Contact type. Allowed values are: technical, support, -# administrative billing, and other (string value) +# Contact type. Allowed values are: technical, support, administrative billing, +# and other (string value) +#idp_contact_type = other idp_contact_type=<%= node["openstack"]["identity"]["saml"]["idp_contact_type"] %> -# Path to the Identity Provider Metadata file. This file -# should be generated with the keystone-manage -# saml_idp_metadata command. (string value) +# Path to the Identity Provider Metadata file. This file should be generated +# with the keystone-manage saml_idp_metadata command. (string value) +#idp_metadata_path = /etc/keystone/saml2_idp_metadata.xml idp_metadata_path=<%= node["openstack"]["identity"]["saml"]["idp_metadata_path"] %> - [signing] # -# Options defined in keystone +# From keystone # -# Deprecated in favor of provider in the [token] section. -# (string value) -#token_format= - <% if node["openstack"]["auth"]["strategy"] == "pki" -%> -# Path of the certfile for token signing. For non-production -# environments, you may be interested in using `keystone- -# manage pki_setup` to generate self-signed certificates. -# (string value) -#certfile=/etc/keystone/ssl/certs/signing_cert.pem +# Path of the certfile for token signing. For non-production environments, you +# may be interested in using `keystone-manage pki_setup` to generate self- +# signed certificates. (string value) +#certfile = /etc/keystone/ssl/certs/signing_cert.pem certfile = <%= node["openstack"]["identity"]["signing"]["certfile"] %> # Path of the keyfile for token signing. (string value) -#keyfile=/etc/keystone/ssl/private/signing_key.pem +#keyfile = /etc/keystone/ssl/private/signing_key.pem keyfile = <%= node["openstack"]["identity"]["signing"]["keyfile"] %> # Path of the CA for token signing. (string value) -#ca_certs=/etc/keystone/ssl/certs/ca.pem +#ca_certs = /etc/keystone/ssl/certs/ca.pem ca_certs = <%= node["openstack"]["identity"]["signing"]["ca_certs"] %> -# Path of the CA key for token signing. (string value) -#ca_key=/etc/keystone/ssl/private/cakey.pem - -# Key size (in bits) for token signing cert (auto generated -# certificate). (integer value) -#key_size=2048 +# Key size (in bits) for token signing cert (auto generated certificate). +# (integer value) +#key_size = 2048 key_size = <%= node["openstack"]["identity"]["signing"]["key_size"] %> -# Days the token signing cert is valid for (auto generated -# certificate). (integer value) -#valid_days=3650 +# Days the token signing cert is valid for (auto generated certificate). +# (integer value) +#valid_days = 3650 valid_days = <%= node["openstack"]["identity"]["signing"]["valid_days"] %> # TODO: Is this used anymore? ca_password = <%= node["openstack"]["identity"]["signing"]["ca_password"] %> <% end -%> - - -# Certificate subject (auto generated certificate) for token -# signing. (string value) -#cert_subject=/C=US/ST=Unset/L=Unset/O=Unset/CN=www.example.com - - [ssl] # -# Options defined in keystone +# From keystone # -# Toggle for SSL support on the Keystone eventlet servers. -# (boolean value) -#enable=false - -# Path of the certfile for SSL. For non-production -# environments, you may be interested in using `keystone- -# manage ssl_setup` to generate self-signed certificates. -# (string value) -#certfile=/etc/keystone/ssl/certs/keystone.pem - -# Path of the keyfile for SSL. (string value) -#keyfile=/etc/keystone/ssl/private/keystonekey.pem - -# Path of the ca cert file for SSL. (string value) -#ca_certs=/etc/keystone/ssl/certs/ca.pem - -# Path of the CA key file for SSL. (string value) -#ca_key=/etc/keystone/ssl/private/cakey.pem - -# Require client certificate. (boolean value) -#cert_required=false - -# SSL key length (in bits) (auto generated certificate). -# (integer value) -#key_size=1024 - -# Days the certificate is valid for once signed (auto -# generated certificate). (integer value) -#valid_days=3650 - -# SSL certificate subject (auto generated certificate). -# (string value) -#cert_subject=/C=US/ST=Unset/L=Unset/O=Unset/CN=localhost - - -[stats] - -# -# Options defined in keystone -# - -# Stats backend driver. (string value) -#driver=keystone.contrib.stats.backends.kvs.Stats - - [token] # -# Options defined in keystone +# From keystone # -# External auth mechanisms that should add bind information to -# token, e.g., kerberos,x509. (list value) -#bind= - -# Enforcement policy on tokens presented to Keystone with bind -# information. One of disabled, permissive, strict, required -# or a specifically required bind mode, e.g., kerberos or x509 -# to require binding to that authentication. (string value) -#enforce_token_bind=permissive - -# Amount of time a token should remain valid (in seconds). -# (integer value) -#expiration=3600 +# Amount of time a token should remain valid (in seconds). (integer value) +#expiration = 3600 expiration = <%= node["openstack"]["identity"]["token"]["expiration"] %> -# Controls the token construction, validation, and revocation -# operations. Core providers are -# "keystone.token.providers.[pkiz|pki|uuid].Provider". The -# default provider is pkiz. (string value) -#provider= +# Controls the token construction, validation, and revocation operations. Core +# providers are "keystone.token.providers.[fernet|pkiz|pki|uuid].Provider". The +# default provider is uuid. (string value) +#provider = keystone.token.providers.uuid.Provider provider = keystone.token.providers.<%= node["openstack"]["auth"]["strategy"] %>.Provider # Token persistence backend driver. (string value) -#driver=keystone.token.persistence.backends.sql.Token +#driver = keystone.token.persistence.backends.sql.Token driver = keystone.token.persistence.backends.<%= node["openstack"]["identity"]["token"]["backend"] %>.Token -# Toggle for token system cacheing. This has no effect unless -# global caching is enabled. (boolean value) -#caching=true - -# Time to cache the revocation list and the revocation events -# if revoke extension is enabled (in seconds). This has no -# effect unless global and token caching are enabled. (integer -# value) -#revocation_cache_time=3600 - -# Time to cache tokens (in seconds). This has no effect unless -# global and token caching are enabled. (integer value) -#cache_time= - -# Revoke token by token identifier. Setting revoke_by_id to -# true enables various forms of enumerating tokens, e.g. `list -# tokens for user`. These enumerations are processed to -# determine the list of tokens to revoke. Only disable if you -# are switching to using the Revoke extension with a backend -# other than KVS, which stores events in memory. (boolean -# value) -#revoke_by_id=true - -# The hash algorithm to use for PKI tokens. This can be set to -# any algorithm that hashlib supports. WARNING: Before -# changing this value, the auth_token middleware must be -# configured with the hash_algorithms, otherwise token +# The hash algorithm to use for PKI tokens. This can be set to any algorithm +# that hashlib supports. WARNING: Before changing this value, the auth_token +# middleware must be configured with the hash_algorithms, otherwise token # revocation will not be processed correctly. (string value) -#hash_algorithm=md5 +#hash_algorithm = md5 hash_algorithm = <%= node["openstack"]["identity"]["token"]["hash_algorithm"] %> - [trust] # -# Options defined in keystone +# From keystone # -# Delegation and impersonation features can be optionally -# disabled. (boolean value) -#enabled=true - -# Trust backend driver. (string value) -#driver=keystone.trust.backends.sql.Trust - # Misc options <% if node["openstack"]["identity"]["misc_keystone"] %> <% node["openstack"]["identity"]["misc_keystone"].each do |m| %>