| {%- from "barbican/map.jinja" import server with context -%} |
| |
| {%- set connection_x509_ssl_option = '' %} |
| {%- if server.database.get('x509',{}).get('enabled',False) %} |
| {%- set connection_x509_ssl_option = '&ssl_ca=' ~ server.database.x509.ca_file ~ '&ssl_cert=' ~ server.database.x509.cert_file ~ '&ssl_key=' ~ server.database.x509.key_file %} |
| {%- elif server.database.get('ssl',{}).get('enabled',False) %} |
| {%- set connection_x509_ssl_option = '&ssl_ca=' ~ server.database.ssl.get('cacert_file', server.cacert_file) %} |
| {%- endif %} |
| |
| [DEFAULT] |
| |
| # |
| # From barbican.common.config |
| # |
| |
| # Role used to identify an authenticated user as administrator. |
| # (string value) |
| #admin_role = admin |
| |
| # Allow unauthenticated users to access the API with read-only |
| # privileges. This only applies when using ContextMiddleware. (boolean |
| # value) |
| #allow_anonymous_access = false |
| |
| # Maximum allowed http request size against the barbican-api. (integer |
| # value) |
| #max_allowed_request_size_in_bytes = 15000 |
| max_allowed_request_size_in_bytes = 1000000 |
| |
| # Maximum allowed secret size in bytes. (integer value) |
| #max_allowed_secret_in_bytes = 10000 |
| max_allowed_secret_in_bytes = 10000 |
| |
| # Host name, for use in HATEOAS-style references Note: Typically this |
| # would be the load balanced endpoint that clients would use to |
| # communicate back with this service. If a deployment wants to derive |
| # host from wsgi request instead then make this blank. Blank is needed |
| # to override default config value which is 'http://localhost:9311' |
| # (string value) |
| #host_href = http://localhost:9311 |
| {%- if server.host_href is defined %} |
| host_href = {{ server.host_href }} |
| {%- endif %} |
| |
| # SQLAlchemy connection string for the reference implementation |
| # registry server. Any valid SQLAlchemy connection string is fine. |
| # See: |
| # http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine. |
| # Note: For absolute addresses, use '////' slashes after 'sqlite:'. |
| # (string value) |
| #sql_connection = sqlite:///barbican.sqlite |
| sql_connection = {{ server.database.engine }}://{{ server.database.user }}:{{ server.database.password }}@{{ server.database.host }}/{{ server.database.name }}?charset=utf8{{ connection_x509_ssl_option|string }} |
| |
| # Period in seconds after which SQLAlchemy should reestablish its |
| # connection to the database. MySQL uses a default `wait_timeout` of 8 |
| # hours, after which it will drop idle connections. This can result in |
| # 'MySQL Gone Away' exceptions. If you notice this, you can lower this |
| # value to ensure that SQLAlchemy reconnects before MySQL can drop the |
| # connection. (integer value) |
| #sql_idle_timeout = 3600 |
| sql_idle_timeout = {{ server.database.get('sql_idle_timeout', 3600) }} |
| |
| # Maximum number of database connection retries during startup. Set to |
| # -1 to specify an infinite retry count. (integer value) |
| #sql_max_retries = 60 |
| |
| # Interval between retries of opening a SQL connection. (integer |
| # value) |
| #sql_retry_interval = 1 |
| |
| # Create the Barbican database on service startup. (boolean value) |
| #db_auto_create = true |
| db_auto_create = False |
| |
| # Maximum page size for the 'limit' paging URL parameter. (integer |
| # value) |
| #max_limit_paging = 100 |
| max_limit_paging = 100 |
| |
| # Default page size for the 'limit' paging URL parameter. (integer |
| # value) |
| #default_limit_paging = 10 |
| default_limit_paging = 10 |
| |
| # Accepts a class imported from the sqlalchemy.pool module, and |
| # handles the details of building the pool for you. If commented out, |
| # SQLAlchemy will select based on the database dialect. Other options |
| # are QueuePool (for SQLAlchemy-managed connections) and NullPool (to |
| # disabled SQLAlchemy management of connections). See |
| # http://docs.sqlalchemy.org/en/latest/core/pooling.html for more |
| # details (string value) |
| #sql_pool_class = QueuePool |
| |
| # Show SQLAlchemy pool-related debugging output in logs (sets DEBUG |
| # log level output) if specified. (boolean value) |
| #sql_pool_logging = false |
| |
| # Size of pool used by SQLAlchemy. This is the largest number of |
| # connections that will be kept persistently in the pool. Can be set |
| # to 0 to indicate no size limit. To disable pooling, use a NullPool |
| # with sql_pool_class instead. Comment out to allow SQLAlchemy to |
| # select the default. (integer value) |
| #sql_pool_size = 5 |
| |
| # # The maximum overflow size of the pool used by SQLAlchemy. When the |
| # number of checked-out connections reaches the size set in |
| # sql_pool_size, additional connections will be returned up to this |
| # limit. It follows then that the total number of simultaneous |
| # connections the pool will allow is sql_pool_size + |
| # sql_pool_max_overflow. Can be set to -1 to indicate no overflow |
| # limit, so no limit will be placed on the total number of concurrent |
| # connections. Comment out to allow SQLAlchemy to select the default. |
| # (integer value) |
| #sql_pool_max_overflow = 10 |
| |
| # Enable eventlet backdoor. Acceptable values are 0, <port>, and |
| # <start>:<end>, where 0 results in listening on a random tcp port |
| # number; <port> results in listening on the specified port number |
| # (and not enabling backdoor if that port is in use); and |
| # <start>:<end> 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 = <None> |
| |
| # Enable eventlet backdoor, using the provided path as a unix socket |
| # that can receive connections. This option is mutually exclusive with |
| # 'backdoor_port' in that only one should be provided. If both are |
| # provided then the existence of this option overrides the usage of |
| # that option. (string value) |
| #backdoor_socket = <None> |
| |
| |
| {%- set _data = server.get('logging', {}) %} |
| {%- include "oslo_templates/files/queens/oslo/_log.conf" %} |
| |
| {%- set _data = server.message_queue %} |
| {%- include "oslo_templates/files/queens/oslo/messaging/_default.conf" %} |
| |
| # |
| # From oslo.service.periodic_task |
| # |
| |
| # Some periodic tasks can be run in a separate process. Should we run |
| # them here? (boolean value) |
| #run_external_periodic_tasks = true |
| |
| {%- include "oslo_templates/files/queens/oslo/service/_wsgi_default.conf" %} |
| |
| [certificate] |
| |
| # |
| # From barbican.certificate.plugin |
| # |
| |
| # Extension namespace to search for plugins. (string value) |
| #namespace = barbican.certificate.plugin |
| |
| # List of certificate plugins to load. (multi valued) |
| #enabled_certificate_plugins = simple_certificate |
| |
| |
| [certificate_event] |
| |
| # |
| # From barbican.certificate.plugin |
| # |
| |
| # Extension namespace to search for eventing plugins. (string value) |
| #namespace = barbican.certificate.event.plugin |
| |
| # List of certificate plugins to load. (multi valued) |
| #enabled_certificate_event_plugins = simple_certificate_event |
| |
| |
| [cors] |
| {%- if server.cors is defined %} |
| {%- set _data = server.cors %} |
| {%- include "oslo_templates/files/queens/oslo/_cors.conf" %} |
| {%- endif %} |
| |
| |
| [crypto] |
| |
| # |
| # From barbican.plugin.crypto |
| # |
| |
| # Extension namespace to search for plugins. (string value) |
| #namespace = barbican.crypto.plugin |
| namespace = barbican.crypto.plugin |
| |
| # List of crypto plugins to load. (multi valued) |
| #enabled_crypto_plugins = simple_crypto |
| |
| {% for store_name, store in server.get('store', {}).iteritems() %} |
| [secretstore:{{ store_name }}] |
| {%- if store.store_plugin is defined %} |
| secret_store_plugin = {{ store.store_plugin }} |
| {%- endif %} |
| {%- if store.crypto_plugin is defined %} |
| crypto_plugin = {{ store.crypto_plugin }} |
| {%- endif %} |
| {%- if store.global_default is defined %} |
| global_default = {{ store.global_default }} |
| {%- endif %} |
| {% endfor %} |
| |
| {% for plugin_name, plugin in server.get('plugin', {}).iteritems() %} |
| {%- set plugin_fragment = "barbican/files/" + server.version + "/plugin/_" + plugin_name +".conf" %} |
| [{{ plugin_name }}_plugin] |
| {%- include plugin_fragment %} |
| {% endfor %} |
| |
| [keystone_authtoken] |
| {%- set _data = server.identity %} |
| {%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': server.cacert_file}) %}{% endif %} |
| {%- set auth_type = _data.get('auth_type', 'password') %} |
| {%- include "oslo_templates/files/queens/keystonemiddleware/_auth_token.conf" %} |
| {%- include "oslo_templates/files/queens/keystoneauth/_type_" + auth_type + ".conf" %} |
| |
| [keystone_notifications] |
| |
| # |
| # From barbican.common.config |
| # |
| |
| # True enables keystone notification listener functionality. (boolean |
| # value) |
| #enable = false |
| enable = {{ server.get('ks_notifications_enable', 'False') }} |
| |
| # 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 |
| |
| # Keystone notification queue topic name. This name needs to match one |
| # of values mentioned in Keystone deployment's 'notification_topics' |
| # configuration e.g. notification_topics=notifications, |
| # barbican_notificationsMultiple servers may listen on a topic and |
| # messages will be dispatched to one of the servers in a round-robin |
| # fashion. That's why Barbican service should have its own dedicated |
| # notification queue so that it receives all of Keystone |
| # notifications. (string value) |
| #topic = notifications |
| |
| # True enables requeue feature in case of notification processing |
| # error. Enable this only when underlying transport supports this |
| # feature. (boolean value) |
| #allow_requeue = false |
| allow_requeue = {{ server.get('ks_notifications_allow_requeue', 'False') }} |
| |
| # Version of tasks invoked via notifications (string value) |
| #version = 1.0 |
| |
| # Define the number of max threads to be used for notification server |
| # processing functionality. (integer value) |
| #thread_pool_size = 10 |
| |
| |
| [matchmaker_redis] |
| |
| # |
| # From oslo.messaging |
| # |
| |
| # DEPRECATED: Host to locate redis. (string value) |
| # This option is deprecated for removal. |
| # Its value may be silently ignored in the future. |
| # Reason: Replaced by [DEFAULT]/transport_url |
| #host = 127.0.0.1 |
| |
| # DEPRECATED: Use this port to connect to redis host. (port value) |
| # Minimum value: 0 |
| # Maximum value: 65535 |
| # This option is deprecated for removal. |
| # Its value may be silently ignored in the future. |
| # Reason: Replaced by [DEFAULT]/transport_url |
| #port = 6379 |
| |
| # DEPRECATED: Password for Redis server (optional). (string value) |
| # This option is deprecated for removal. |
| # Its value may be silently ignored in the future. |
| # Reason: Replaced by [DEFAULT]/transport_url |
| #password = |
| |
| # DEPRECATED: List of Redis Sentinel hosts (fault tolerance mode), |
| # e.g., [host:port, host1:port ... ] (list value) |
| # This option is deprecated for removal. |
| # Its value may be silently ignored in the future. |
| # Reason: Replaced by [DEFAULT]/transport_url |
| #sentinel_hosts = |
| |
| # Redis replica set name. (string value) |
| #sentinel_group_name = oslo-messaging-zeromq |
| |
| # Time in ms to wait between connection attempts. (integer value) |
| #wait_timeout = 2000 |
| |
| # Time in ms to wait before the transaction is killed. (integer value) |
| #check_timeout = 20000 |
| |
| # Timeout in ms on blocking socket operations. (integer value) |
| #socket_timeout = 10000 |
| |
| {%- if server.message_queue is defined %} |
| {%- set _data = server.message_queue %} |
| {%- if _data.engine == 'rabbitmq' %} |
| {%- set messaging_engine = 'rabbit' %} |
| {%- else %} |
| {%- set messaging_engine = _data.engine %} |
| {%- endif %} |
| [oslo_messaging_{{ messaging_engine }}] |
| {%- include "oslo_templates/files/queens/oslo/messaging/_" + messaging_engine + ".conf" %} |
| {%- endif %} |
| |
| |
| [oslo_messaging_notifications] |
| {%- set _data = server.get('notification', {}) %} |
| {%- include "oslo_templates/files/queens/oslo/messaging/_notifications.conf" %} |
| |
| |
| [oslo_middleware] |
| {%- set _data = server %} |
| {%- include "oslo_templates/files/queens/oslo/_middleware.conf" %} |
| |
| [oslo_policy] |
| {%- if server.policy is defined %} |
| {%- set _data = server.policy %} |
| {%- include "oslo_templates/files/queens/oslo/_policy.conf" %} |
| {%- endif %} |
| |
| |
| [queue] |
| |
| # |
| # From barbican.common.config |
| # |
| |
| # True enables queuing, False invokes workers synchronously (boolean |
| # value) |
| #enable = false |
| {% if server.async_queues_enable is defined %} |
| enable = {{ server.async_queues_enable }} |
| {%- endif %} |
| |
| # Queue namespace (string value) |
| #namespace = barbican |
| |
| # Queue topic name (string value) |
| #topic = barbican.workers |
| |
| # Version of tasks invoked via queue (string value) |
| #version = 1.1 |
| |
| # Server name for RPC task processing server (string value) |
| #server_name = barbican.queue |
| |
| # Number of asynchronous worker processes (integer value) |
| #asynchronous_workers = 1 |
| |
| |
| [quotas] |
| |
| # |
| # From barbican.common.config |
| # |
| |
| # Number of secrets allowed per project (integer value) |
| #quota_secrets = -1 |
| |
| # Number of orders allowed per project (integer value) |
| #quota_orders = -1 |
| |
| # Number of containers allowed per project (integer value) |
| #quota_containers = -1 |
| |
| # Number of consumers allowed per project (integer value) |
| #quota_consumers = -1 |
| |
| # Number of CAs allowed per project (integer value) |
| #quota_cas = -1 |
| |
| |
| [retry_scheduler] |
| |
| # |
| # From barbican.common.config |
| # |
| |
| # Seconds (float) to wait before starting retry scheduler (floating |
| # point value) |
| #initial_delay_seconds = 10.0 |
| |
| # Seconds (float) to wait between periodic schedule events (floating |
| # point value) |
| #periodic_interval_max_seconds = 10.0 |
| |
| |
| [secretstore] |
| |
| # |
| # From barbican.plugin.secret_store |
| # |
| |
| # Extension namespace to search for plugins. (string value) |
| #namespace = barbican.secretstore.plugin |
| |
| # List of secret store plugins to load. (multi valued) |
| #enabled_secretstore_plugins = store_crypto |
| |
| # Flag to enable multiple secret store plugin backend support. Default |
| # is False (boolean value) |
| #enable_multiple_secret_stores = false |
| enable_multiple_secret_stores = True |
| |
| # List of suffix to use for looking up plugins which are supported |
| # with multiple backend support. (list value) |
| #stores_lookup_suffix = <None> |
| stores_lookup_suffix = {{ server.get('store', {}).keys() | join(', ') }} |
| |
| |
| [ssl] |
| {%- include "oslo_templates/files/queens/oslo/service/_ssl.conf" %} |