blob: bce66093cd2424146b60f669f2f97a62f89f4d84 [file] [log] [blame]
{%- from "designate/map.jinja" import server, pool_manager with context %}
[DEFAULT]
#
# From designate.opts
#
# Name of this node (string value)
#host = current_hostname
# Directory where the designate python module is installed (string value)
#pybasedir = /usr/lib/python3/dist-packages
# Top-level directory for maintaining designate's state (string value)
#state_path = /var/lib/designate
# Central Topic (string value)
#central_topic = central
# mDNS Topic (string value)
#mdns_topic = mdns
# Pool Manager Topic (string value)
#pool_manager_topic = pool_manager
# Worker Topic (string value)
#worker_topic = worker
# TTL Value (integer value)
#default_ttl = 3600
# SOA refresh-min value (integer value)
# Deprecated group/name - [DEFAULT]/default_soa_refresh
#default_soa_refresh_min = 3500
# SOA max value (integer value)
#default_soa_refresh_max = 3600
# SOA retry (integer value)
#default_soa_retry = 600
# SOA expire (integer value)
#default_soa_expire = 86400
# SOA minimum value (integer value)
#default_soa_minimum = 3600
# Supported record types (list value)
#supported_record_type = A,AAAA,CNAME,MX,SRV,TXT,SPF,NS,PTR,SSHFP,SOA
# Which API to use. (string value)
#network_api = neutron
# Send notifications if there's a failure in the API. (boolean value)
#notify_api_faults = false
# The notification plugin to use (string value)
#notification_plugin = default
# Quota driver to use (string value)
#quota_driver = storage
# Number of zones allowed per tenant (integer value)
#quota_zones = 10
{%- if server.get('quota', {}).zones is defined %}
quota_zones = {{ server.quota.zones }}
{%- endif %}
# Number of recordsets allowed per zone (integer value)
#quota_zone_recordsets = 500
# Number of records allowed per zone (integer value)
#quota_zone_records = 500
# Number of records allowed per recordset (integer value)
#quota_recordset_records = 20
# Number of recordsets allowed in a zone export (integer value)
#quota_api_export_size = 1000
# Timeout in seconds for XFR's. (integer value)
#xfr_timeout = 10
# designate-rootwrap configuration (string value)
#root_helper = sudo designate-rootwrap /etc/designate/rootwrap.conf
# Number of backlog requests to configure the socket with (integer value)
#backlog = 4096
# Sets the value of TCP_KEEPIDLE in seconds for each server socket. Not supported on OS X. (integer value)
#tcp_keepidle = 600
{%- if server.logging is defined %}
{%- set _data = server.logging %}
{%- include "oslo_templates/files/queens/oslo/_log.conf" %}
{%- endif %}
{%- 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
#
# From oslo.service.service
#
# 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>
# Enables or disables logging values of all registered options when starting a service (at DEBUG level). (boolean value)
#log_options = true
# Specify a timeout after which a gracefully shutdown server will exit. Zero value means endless wait. (integer value)
#graceful_shutdown_timeout = 60
[backend:agent:bind9]
#
# From designate.agent
#
# RNDC Host (string value)
#rndc_host = 127.0.0.1
# RNDC Port (integer value)
#rndc_port = 953
# RNDC Config File (string value)
#rndc_config_file = <None>
# RNDC Key File (string value)
#rndc_key_file = <None>
# Path where zone files are stored (string value)
#zone_file_path = $state_path/zones
# Host to query when finding zones (string value)
#query_destination = 127.0.0.1
[backend:agent:denominator]
#
# From designate.agent
#
# Name of the affected provider (string value)
#name = fake
# Path to Denominator configuration file (string value)
#config_file = /etc/denominator.conf
[backend:agent:djbdns]
#
# From designate.agent
#
# tcpclient executable path or rootwrap command name (string value)
#tcpclient_cmd_name = tcpclient
# axfr-get executable path or rootwrap command name (string value)
#axfr_get_cmd_name = axfr-get
# tinydns-data executable path or rootwrap command name (string value)
#tinydns_data_cmd_name = tinydns-data
# TinyDNS data directory (string value)
#tinydns_datadir = /var/lib/djbdns
# Host to query when finding zones (string value)
#query_destination = 127.0.0.1
[backend:agent:gdnsd]
#
# From designate.agent
#
# gdnsd executable path or rootwrap command name (string value)
#gdnsd_cmd_name = gdnsd
# gdnsd configuration directory path (string value)
#confdir_path = /etc/gdnsd
# Host to query when finding zones (string value)
#query_destination = 127.0.0.1
[backend:agent:knot2]
#
# From designate.agent
#
# knotc executable path or rootwrap command name (string value)
#knotc_cmd_name = knotc
# Host to query when finding zones (string value)
#query_destination = 127.0.0.1
[coordination]
#
# From designate.opts
#
# The backend URL to use for distributed coordination. If unset services that need coordination will function as a standalone service. This
# is a `tooz` url - see https://docs.openstack.org/tooz/latest/user/compatibility.html (string value)
#backend_url = <None>
# Number of seconds between heartbeats for distributed coordination. (floating point value)
#heartbeat_interval = 1.0
# Number of seconds between checks to see if group membership has changed (floating point value)
#run_watchers_interval = 10.0
[cors]
{%- if server.cors is defined %}
{%- set _data = server.cors %}
{%- include "oslo_templates/files/queens/oslo/_cors.conf" %}
{%- endif %}
{%- for name, _data in server.notification_handlers.iteritems() %}
{%- if not _data.get('zone_id') %}
{%- do _data.update({'zone_id': server.domain_id}) %}
{%- endif %}
{% include "designate/files/" + server.version|string + "/notification_handlers/_" + name + ".conf" %}
{%- endfor %}
[healthcheck]
{%- if server.healthcheck is defined %}
{%- set _data = server.healthcheck %}
{%- include "oslo_templates/files/queens/oslo/_healthcheck.conf" %}
{%- endif %}
[heartbeat_emitter]
#
# From designate.opts
#
# Number of seconds between heartbeats for reporting state (floating point value)
#heartbeat_interval = 5.0
# Emitter to use (string value)
#emitter_type = rpc
[keystone]
#
# From designate.opts
#
# The default service_type for endpoint URL discovery. (string value)
#service_type = <None>
# The default service_name for endpoint URL discovery. (string value)
#service_name = <None>
# List of interfaces, in order of preference, for endpoint URL. (list value)
#valid_interfaces = <None>
# The default region_name for endpoint URL discovery. (string value)
#region_name = <None>
# Always use this endpoint URL for requests for this client. NOTE: The unversioned endpoint should be specified here; to request a
# particular API version, use the `version`, `min-version`, and/or `max-version` options. (string value)
#endpoint_override = <None>
# Minimum Major API version within a given Major API version for endpoint URL discovery. Mutually exclusive with min_version and max_version
# (string value)
#version = <None>
# The minimum major version of a given API, intended to be used as the lower bound of a range with max_version. Mutually exclusive with
# version. If min_version is given with no max_version it is as if max version is "latest". (string value)
#min_version = <None>
# The maximum major version of a given API, intended to be used as the upper bound of a range with min_version. Mutually exclusive with
# version. (string value)
#max_version = <None>
# DEPRECATED: The default interface for endpoint URL discovery. (string value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Using valid-interfaces is preferrable because it is capable of accepting a list of possible interfaces.
#interface = <None>
# PEM encoded Certificate Authority to use when verifying HTTPs connections. (string value)
#cafile = <None>
# PEM encoded client certificate cert file (string value)
#certfile = <None>
# PEM encoded client certificate key file (string value)
#keyfile = <None>
# Verify HTTPS connections. (boolean value)
#insecure = false
# Timeout value for http requests (integer value)
#timeout = <None>
# Collect per-API call timing information. (boolean value)
#collect_timing = false
# Log requests to multiple loggers. (boolean value)
#split_loggers = false
[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" %}
[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
[monasca:statsd]
#
# From designate.opts
#
# enable (boolean value)
#enabled = false
# UDP port (integer value)
#port = 8125
# hostname (string value)
#hostname = 127.0.0.1
[network_api:neutron]
#
# From designate.opts
#
# URL to use if None in the ServiceCatalog that is passed by the request context. Format: <region>|<url> (list value)
#endpoints = <None>
# Endpoint type to use (string value)
#endpoint_type = publicURL
# timeout value for connecting to neutron in seconds (integer value)
#timeout = 30
# username for connecting to neutron in admin context (string value)
#admin_username = <None>
# password for connecting to neutron in admin context (string value)
#admin_password = <None>
# tenant name for connecting to neutron in admin context (string value)
#admin_tenant_name = <None>
# auth url for connecting to neutron in admin context (string value)
#auth_url = <None>
# if set, ignore any SSL validation issues (boolean value)
#insecure = false
# auth strategy for connecting to neutron in admin context (string value)
#auth_strategy = keystone
# Location of ca certificates file to use for neutron client requests. (string value)
#ca_certificates_file = <None>
[oslo_concurrency]
{%- set _data = server.get('concurrency', {}) %}
{%- include "oslo_templates/files/queens/oslo/_concurrency.conf" %}
[oslo_messaging_notifications]
{%- set _data = server.get('notification', {}) %}
{%- include "oslo_templates/files/queens/oslo/messaging/_notifications.conf" %}
{%- 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_middleware]
{%- set _data = server %}
{%- include "oslo_templates/files/queens/oslo/_middleware.conf" %}
[oslo_policy]
{%- include "oslo_templates/files/queens/oslo/_policy.conf" %}
[pool_manager_cache:memcache]
#
# From designate.opts
#
# Time in seconds to expire cache. (integer value)
#expiration = 3600
# Memcached servers or None for in process cache. (list value)
#memcached_servers = <None>
[pool_manager_cache:sqlalchemy]
{%- set _data = {} %}
{%- do _data.update({'engine': server.database.engine, 'user': server.database.user, 'password': server.database.password, 'host': server.database.host, 'name': server.database.name.pool_manager})%}
{%- if server.database.x509 is defined %}
{%- do _data.update({'x509': server.database.x509}) %}
{%- endif %}
{%- if server.database.ssl is defined %}
{%- do _data.update({'ssl': server.database.ssl}) %}
{%- if 'cacert_file' not in server.database.ssl.keys() %}{% do _data['ssl'].update({'cacert_file': server.cacert_file}) %}{% endif %}
{%- endif %}
{%- include "oslo_templates/files/queens/oslo/_database.conf" %}
[producer_task:delayed_notify]
#
# From designate.producer
#
# Run interval in seconds (integer value)
#interval = 5
# Default amount of results returned per page (integer value)
#per_page = 100
# How many zones to receive NOTIFY on each run (integer value)
#batch_size = 100
[producer_task:periodic_exists]
#
# From designate.producer
#
# Run interval in seconds (integer value)
#interval = 3600
# Default amount of results returned per page (integer value)
#per_page = 100
[producer_task:periodic_secondary_refresh]
#
# From designate.producer
#
# Run interval in seconds (integer value)
#interval = 3600
# Default amount of results returned per page (integer value)
#per_page = 100
[producer_task:worker_periodic_recovery]
#
# From designate.producer
#
# Run interval in seconds (integer value)
#interval = 120
# Default amount of results returned per page (integer value)
#per_page = 100
[producer_task:zone_purge]
#
# From designate.producer
#
# Run interval in seconds (integer value)
#interval = 3600
# Default amount of results returned per page (integer value)
#per_page = 100
# How old deleted zones should be (deleted_at) to be purged, in seconds (integer value)
#time_threshold = 604800
# How many zones to be purged on each run (integer value)
#batch_size = 100
[proxy]
#
# From designate.opts
#
# Proxy HTTP requests via this proxy. (string value)
#http_proxy = <None>
# Proxy HTTPS requests via this proxy (string value)
#https_proxy = <None>
# These addresses should not be proxied (list value)
#no_proxy =
[service:agent]
#
# From designate.agent
#
# Number of agent worker processes to spawn (integer value)
#workers = <None>
# Number of agent greenthreads to spawn (integer value)
#threads = 1000
# DEPRECATED: Agent Bind Host (IP address value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Replaced by 'listen' option
#host = <None>
# DEPRECATED: Agent Port Number (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 'listen' option
#port = <None>
# Agent host:port pairs to listen on (list value)
#listen = 0.0.0.0:5358
# The Agent TCP Backlog (integer value)
#tcp_backlog = 100
# Agent TCP Receive Timeout (floating point value)
#tcp_recv_timeout = 0.5
# List of IP addresses allowed to NOTIFY The Agent (list value)
#allow_notify =
# List of masters for the Agent, format ip:port (list value)
#masters =
# The backend driver to use, e.g. bind9, djbdns, knot2 (string value)
#backend_driver = bind9
# An IP address to be used to fetch zones transferred in (string value)
#transfer_source = <None>
# Delay after a NOTIFY arrives for a zone that the Agent will pause and drop subsequent NOTIFYs for that zone (floating point value)
#notify_delay = 0.0
[service:api]
#
# From designate.api
#
# Number of api worker processes to spawn (integer value)
#workers = <None>
# Number of api greenthreads to spawn (integer value)
#threads = 1000
# Enable host request headers (boolean value)
#enable_host_header = false
# the url used as the base for all API responses,This should consist of the scheme (http/https),the hostname, port, and any paths that are
# addedto the base of Designate is URLs,For example http://dns.openstack.example.com/dns (string value)
#api_base_uri = http://127.0.0.1:9001/
api_base_uri = {{ server.api.base_uri }}
# DEPRECATED: API Bind Host (IP address value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Replaced by 'listen' option
#api_host = <None>
# DEPRECATED: API Port Number (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 'listen' option
#api_port = <None>
# API host:port pairs to listen on (list value)
#listen = 0.0.0.0:9001
listen = {{ server.bind.api.address }}:9001
# File name for the paste.deploy config for designate-api (string value)
#api_paste_config = api-paste.ini
# The strategy to use for auth. Supports noauth or keystone (string value)
#auth_strategy = keystone
# enable-api-v2 which enable in a future (boolean value)
#enable_api_v2 = true
# enable-api-admin (boolean value)
#enable_api_admin = false
enable_api_admin = {{ server.get('admin_api', {}).get('enabled', False) }}
# Maximum line size of message headers to be accepted. max_header_line may need to be increased when using large tokens (typically those
# generated by the Keystone v3 API with big service catalogs). (integer value)
#max_header_line = 16384
# Enabled API Extensions for the V2 API (list value)
#enabled_extensions_v2 =
enabled_extensions_v2 = quotas,reports
# Default per-page limit for the V2 API, a value of None means show all results by default (integer value)
#default_limit_v2 = 20
# Max per-page limit for the V2 API (integer value)
#max_limit_v2 = 1000
# Verify that the requested Project ID for quota target is a valid project in Keystone. (boolean value)
#quotas_verify_project_id = false
# Enabled Admin API Extensions (list value)
#enabled_extensions_admin =
{%- if server.get('admin_api', {}).get('enabled_extensions_admin', False) %}
enabled_extensions_admin = {{ server.admin_api.enabled_extensions_admin }}
{%- endif %}
# Default per-page limit for the Admin API, a value of None means show all results by default (integer value)
#default_limit_admin = 20
# Max per-page limit for the Admin API (integer value)
#max_limit_admin = 1000
# Enable API Maintenance Mode (boolean value)
#maintenance_mode = false
# Role allowed to bypass maintaince mode (string value)
#maintenance_mode_role = admin
# The HTTP Header that will be used to determine which the original request protocol scheme was, even if it was removed by an SSL
# terminating proxy. (string value)
#secure_proxy_ssl_header = X-Forwarded-Proto
# A scheme that will be used to override the request protocol scheme, even if it was set by an SSL terminating proxy. (string value)
#override_proto = <None>
# Verify that the requested Project ID for quota target
# is a valid project in Keystone.
quotas_verify_project_id = {{ server.api.get('quotas_verify_project_id', False) }}
[service:central]
#
# From designate.central
#
# Number of central worker processes to spawn (integer value)
#workers = <None>
# Number of central greenthreads to spawn (integer value)
#threads = 1000
# The storage driver to use (string value)
#storage_driver = sqlalchemy
# Enabled Notification Handlers (list value)
#enabled_notification_handlers =
# Maximum zone name length (integer value)
#max_zone_name_len = 255
# Maximum recordset name length (integer value)
# Deprecated group/name - [service:central]/max_record_name_len
#max_recordset_name_len = 255
# E-Mail for Managed resources (string value)
#managed_resource_email = hostmaster@example.com
# The Tenant ID that will own any managed resources. (string value)
#managed_resource_tenant_id = 00000000-0000-0000-0000-000000000000
# Minimum TTL allowed (integer value)
#min_ttl = <None>
# The name of the default pool (string value)
#default_pool_id = 794ccc2c-d751-44fe-b57f-8894c9f5c842
# RPC topic name of central service. (string value)
#central_topic = central
#
# From designate.opts
#
# Enabled Pool Scheduling filters (list value)
#scheduler_filters = default_pool
[service:mdns]
#
# From designate.mdns
#
# Number of mdns worker processes to spawn (integer value)
#workers = <None>
# Number of mdns greenthreads to spawn (integer value)
#threads = 1000
# DEPRECATED: mDNS Bind Host (IP address value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Replaced by 'listen' option
#host = <None>
# DEPRECATED: mDNS Port Number (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 'listen' option
#port = <None>
# mDNS host:port pairs to listen on (list value)
#listen = 0.0.0.0:5354
listen = {{ server.mdns.address }}:{{ server.mdns.port }}
# mDNS TCP Backlog (integer value)
#tcp_backlog = 100
# mDNS TCP Receive Timeout (floating point value)
#tcp_recv_timeout = 0.5
# Send all traffic over TCP (boolean value)
#all_tcp = false
# Enforce all incoming queries (including AXFR) are TSIG signed (boolean value)
#query_enforce_tsig = false
# The storage driver to use (string value)
#storage_driver = sqlalchemy
# Maximum message size to emit (integer value)
#max_message_size = 65535
# RPC topic name for mini-DNS (string value)
#mdns_topic = mdns
[service:pool_manager]
#
# From designate.pool_manager
#
# Number of Pool Manager worker processes to spawn (integer value)
#workers = <None>
{%- if pool_manager.workers is defined %}
workers = {{ pool_manager.workers }}
{%- endif %}
# Number of Pool Manager greenthreads to spawn (integer value)
#threads = 1000
# The ID of the pool managed by this instance of the Pool Manager (string value)
#pool_id = 794ccc2c-d751-44fe-b57f-8894c9f5c842
{%- if pool_manager.pool_id is defined %}
pool_id = {{ pool_manager.pool_id }}
{%- endif %}
# DEPRECATED: The percentage of servers requiring a successful update for a zone change to be considered active (integer value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Migrated to designate-worker
#threshold_percentage = 100
# DEPRECATED: The time to wait for a response from a server (integer value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Migrated to designate-worker
#poll_timeout = 30
# DEPRECATED: The time between retrying to send a request and waiting for a response from a server (integer value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Migrated to designate-worker
#poll_retry_interval = 15
# DEPRECATED: The maximum number of times to retry sending a request and wait for a response from a server (integer value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Migrated to designate-worker
#poll_max_retries = 10
# DEPRECATED: The time to wait before sending the first request to a server (integer value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Migrated to designate-worker
#poll_delay = 5
# The flag for the recovery timer (boolean value)
#enable_recovery_timer = true
# The time between recovering from failures (integer value)
#periodic_recovery_interval = 120
# The flag for the sync timer (boolean value)
#enable_sync_timer = true
{%- if pool_manager.enable_sync_timer is defined %}
enable_sync_timer = {{ pool_manager.enable_sync_timer }}
{%- endif %}
# The time between synchronizing the servers with storage (integer value)
#periodic_sync_interval = 1800
{%- if pool_manager.periodic_sync_interval is defined %}
periodic_sync_interval = {{ pool_manager.periodic_sync_interval }}
{%- endif %}
# Zones Updated within last N seconds will be syncd.Use an empty value to sync all zones. (integer value)
#periodic_sync_seconds = 21600
{%- if pool_manager.periodic_sync_seconds is defined %}
periodic_sync_seconds = {{ pool_manager.periodic_sync_seconds }}
{%- endif %}
# Number of attempts to update a zone during sync (integer value)
#periodic_sync_max_attempts = 3
{%- if pool_manager.periodic_sync_max_attempts is defined %}
periodic_sync_max_attempts = {{ pool_manager.periodic_sync_max_attempts }}
{%- endif %}
# Interval between zone update attempts during sync (integer value)
#periodic_sync_retry_interval = 30
{%- if pool_manager.periodic_sync_retry_interval is defined %}
periodic_sync_retry_interval = {{ pool_manager.periodic_sync_retry_interval }}
{%- endif %}
# The cache driver to use (string value)
#cache_driver = memcache
# RPC topic name for pool-manager (string value)
#pool_manager_topic = pool_manager
[service:producer]
#
# From designate.producer
#
# Number of Producer worker processes to spawn (integer value)
#workers = <None>
# Number of Producer greenthreads to spawn (integer value)
#threads = 1000
# Enabled tasks to run (list value)
#enabled_tasks = <None>
# The storage driver to use (string value)
#storage_driver = sqlalchemy
# DEPRECATED: Whether to allow synchronous zone exports (boolean value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Migrated to designate-worker
#export_synchronous = true
[service:sink]
#
# From designate.sink
#
# Number of sink worker processes to spawn (integer value)
#workers = <None>
# Number of sink greenthreads to spawn (integer value)
#threads = 1000
# Enabled Notification Handlers (list value)
#enabled_notification_handlers =
{%- set handlers = [] %}
{%- for name, handler in server.notification_handlers.iteritems() %}
{%- if handler.get('enabled', False) %}
{%- do handlers.append(name) %}
{%- endif %}
{%- endfor %}
{%- if handlers %}
enabled_notification_handlers = {{ handlers|sort|join(', ') }}
{%- endif %}
# pool name to use for oslo.messaging notification listener. Note that listener pooling is not supported by all oslo.messaging drivers.
# (string value)
#listener_pool_name = <None>
listener_pool_name = {{ server.get('sink', {}).get('listener_pool_name', 'designate-sink') }}
[service:worker]
#
# From designate.worker
#
# DEPRECATED: Whether to send events to worker instead of Pool Manager (boolean value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: In Rocky, this option will disappear because worker will be enabled by default
#enabled = false
{# TODO: remove enabled option when https://bugs.launchpad.net/designate/+bug/1676827 is fixed #}
# Whether to send events to worker instead of Pool Manager
{%- if pool_manager.enabled is defined and pool_manager.enabled == true %}
enabled = False
{%- else %}
enabled = True
{%- endif %}
# Number of Worker worker processes to spawn (integer value)
#workers = <None>
# Number of Worker threads to spawn per process (integer value)
#threads = 200
# The storage driver to use (string value)
#storage_driver = sqlalchemy
# The percentage of servers requiring a successful update for a domain change to be considered active (integer value)
#threshold_percentage = 100
# The time to wait for a response from a server (integer value)
#poll_timeout = 30
# The time between retrying to send a request and waiting for a response from a server (integer value)
#poll_retry_interval = 15
# The maximum number of times to retry sending a request and wait for a response from a server (integer value)
#poll_max_retries = 10
# The time to wait before sending the first request to a server (integer value)
#poll_delay = 5
# Whether to allow worker to send NOTIFYs, this will noop NOTIFYs in mdns if true (boolean value)
#notify = true
# Whether to allow synchronous zone exports (boolean value)
#export_synchronous = true
# RPC topic for worker component (string value)
#worker_topic = worker
[service:zone_manager]
#
# From designate.producer
#
# DEPRECATED: Number of Zone Manager worker processes to spawn (integer value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Migrated to designate-worker
#workers = <None>
# DEPRECATED: Number of Zone Manager greenthreads to spawn (integer value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Migrated to designate-worker
#threads = 1000
# DEPRECATED: Enabled tasks to run (list value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Migrated to designate-worker
#enabled_tasks = <None>
# DEPRECATED: The storage driver to use (string value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Migrated to designate-worker
#storage_driver = sqlalchemy
# DEPRECATED: Whether to allow synchronous zone exports (boolean value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Migrated to designate-worker
#export_synchronous = true
[keystone]
valid_interfaces = {{ server.identity.get('endpoint_type', 'internal') }}
region_name = {{ server.region }}
{%- if server.identity.get('protocol', 'http') == 'https' %}
cafile = {{ server.identity.get('cacert_file', server.cacert_file) }}
{%- endif %}
[ssl]
{%- include "oslo_templates/files/queens/oslo/service/_ssl.conf" %}
[storage:sqlalchemy]
{%- set _data = {} %}
{%- do _data.update({'engine': server.database.engine, 'user': server.database.user, 'password': server.database.password, 'host': server.database.host, 'name': server.database.name.main_database})%}
{%- if server.database.x509 is defined %}
{%- do _data.update({'x509': server.database.x509}) %}
{%- endif %}
{%- if server.database.ssl is defined %}
{%- do _data.update({'ssl': server.database.ssl}) %}
{%- if 'cacert_file' not in server.database.ssl.keys() %}{% do _data['ssl'].update({'cacert_file': server.cacert_file}) %}{% endif %}
{%- endif %}
{%- include "oslo_templates/files/queens/oslo/_database.conf" %}