blob: af2fc9a263bf03cbf4ffc063f6a02e40871d5765 [file] [log] [blame]
{%- from "gnocchi/map.jinja" import cfg,server,statsd with context %}
{%- set storage = cfg.get('storage', {}) %}
{%- set _database = cfg.database %}
{%- set connection_x509_ssl_option = '' %}
{%- if _database.get('x509',{}).get('enabled',False) %}
{%- set connection_x509_ssl_option = '&ssl_ca=' ~ _database.x509.ca_file ~ '&ssl_cert=' ~ _database.x509.cert_file ~ '&ssl_key=' ~ _database.x509.key_file %}
{%- elif _database.get('ssl',{}).get('enabled',False) %}
{%- set connection_x509_ssl_option = '&ssl_ca=' ~ _database.ssl.get('cacert_file', cfg.cacert_file) %}
{%- endif %}
[DEFAULT]
#
# From cotyledon
#
# Enables or disables logging values of all registered options when starting a
# service (at DEBUG level). (boolean value)
# Note: This option can be changed without restarting.
#log_options = true
# Specify a timeout after which a gracefully shutdown server will exit. Zero
# value means endless wait. (integer value)
# Note: This option can be changed without restarting.
#graceful_shutdown_timeout = 60
#
# From gnocchi
#
# If set to true, the logging level will be set to DEBUG. (boolean value)
#debug = false
debug = {{ cfg.debug }}
# If set to true, the logging level will be set to INFO. (boolean value)
#verbose = true
# Base directory for log files. If not set, logging will go to stderr. (string
# value)
#log_dir = <None>
# (Optional) Name of log file to send logging output to. If no default is set,
# logging will go to stderr as defined by use_stderr. (string value)
#log_file = <None>
# Coordination driver URL (string value)
#coordination_url = <None>
{%- if cfg.coordination_backend is defined %}
coordination_url = {{ cfg.coordination_backend.url }}
{%- endif %}
# Number of threads to use to parallelize some operations. Default is set to
# the number of CPU available. (integer value)
# Minimum value: 1
# Deprecated group/name - [storage]/aggregation_workers_number
#parallel_operations = <None>
{%- if storage.aggregation_workers is defined %}
parallel_operations = {{ storage.aggregation_workers }}
{%- elif cfg.parallel_operations is defined %}
parallel_operations = {{ cfg.parallel_operations }}
{%- endif %}
# Use syslog for logging. (boolean value)
#use_syslog = false
{%- if cfg.use_syslog is defined %}
use_syslog = {{ cfg.use_syslog }}
{%- endif %}
# Enable journald for logging. If running in a systemd environment you may wish
# to enable journal support. Doing so will use the journal native protocol
# which includes structured metadata in addition to log messages. (boolean
# value)
#use_journal = false
{%- if cfg.use_journal is defined %}
use_journal = {{ cfg.use_journal }}
{%- endif %}
# Syslog facility to receive log lines. (string value)
#syslog_log_facility = user
{%- if cfg.syslog_log_facility is defined %}
syslog_log_facility = {{ cfg.syslog_log_facility }}
{%- endif %}
[api]
#
# From gnocchi
#
# Path to API Paste configuration. (string value)
#paste_config = api-paste.ini
# Authentication mode to use. (string value)
# Possible values:
# remoteuser - <No description provided>
# keystone - <No description provided>
# basic - <No description provided>
#auth_mode = basic
auth_mode = {{ server.identity.engine }}
# The maximum number of items returned in a single response from a collection
# resource (integer value)
#max_limit = 1000
{%- if server.get('api', {}).max_limit is defined %}
max_limit = {{ server.api.max_limit }}
{%- endif %}
# Number of seconds before timeout when attempting to do some operations.
# (integer value)
# Minimum value: 0
# Deprecated group/name - [api]/refresh_timeout
#operation_timeout = 10
{%- if server.get('api', {}).refresh_timeout is defined %}
operation_timeout = {{ server.api.refresh_timeout }}
{%- elif server.api.operation_timeout is defined %}
operation_timeout = {{ server.api.operation_timeout }}
{%- endif %}
# Host to listen on (host address value)
#host = 0.0.0.0
# Port to listen on (port value)
# Minimum value: 0
# Maximum value: 65535
#port = 8041
# Socket type to use for uWSGI:
# * http: support HTTP/1.1 and keepalive,
# but not chunked encoding (InfluxDB)
# * http-socket/socket: support chunked encoding, but require a upstream HTTP
# Server for HTTP/1.1, keepalive and HTTP protocol correctness.
# (string value)
# Possible values:
# http - <No description provided>
# http-socket - <No description provided>
# socket - <No description provided>
#uwsgi_mode = http
[archive_policy]
#
# From gnocchi
#
# Default aggregation methods to use in created archive policies (list value)
#default_aggregation_methods = mean,min,max,sum,std,count
{%- if server.get('archive_policy', {}).default_aggregation_methods is defined %}
default_aggregation_methods = {{ ','.join(server.archive_policy.default_aggregation_methods) }}
{%- endif %}
[cors]
{%- if server.cors is defined %}
{%- set _data = server.cors %}
{%- include "oslo_templates/files/rocky/oslo/_cors.conf" %}
{%- endif %}
[incoming]
{%- set _storage = storage.get('incoming', {}) %}
{%- if _storage.driver is defined %}
driver = {{ _storage.driver }}
{% include "gnocchi/files/" + cfg.version|string + "/storage/_" + _storage.driver + ".conf" %}
{%- endif %}
[indexer]
#
# From gnocchi
#
# Indexer driver to use (string value)
#url = <None>
url = {{ cfg.database.engine }}+pymysql://{{ cfg.database.user }}:{{ cfg.database.password }}@{{ cfg.database.host }}/{{ cfg.database.name }}?charset=utf8{{ connection_x509_ssl_option|string }}
{%- if server.identity.engine == 'keystone' %}
[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') %}
{%- if server.get('cache',{}).members is defined and 'cache' not in _data.keys() %}
{% do _data.update({'cache': server.cache}) %}
{%- endif %}
{%- include "oslo_templates/files/rocky/keystonemiddleware/_auth_token.conf" %}
{%- include "oslo_templates/files/rocky/keystoneauth/_type_" + auth_type + ".conf" %}
{%- endif %}
[oslo_middleware]
{%- set _data = server %}
{%- include "oslo_templates/files/rocky/oslo/_middleware.conf" %}
[oslo_policy]
{%- if server.policy is defined %}
{%- set _data = server.policy %}
{%- include "oslo_templates/files/rocky/oslo/_policy.conf" %}
{%- endif %}
[statsd]
#
# From gnocchi
#
# The listen IP for statsd (host address value)
#host = 0.0.0.0
{%- if statsd.get('bind', {}).address is defined %}
host = {{ statsd.bind.address }}
{%- endif %}
# The port for statsd (port value)
# Minimum value: 0
# Maximum value: 65535
#port = 8125
{%- if statsd.get('bind', {}).port is defined %}
port = {{ statsd.bind.port }}
{%- endif %}
# Resource UUID to use to identify statsd in Gnocchi (unknown value)
#resource_id = <None>
{%- if statsd.get('enabled', False) %}
resource_id = {{ statsd.resource_id }}
{%- endif %}
# Creator value to use to identify statsd in Gnocchi (string value)
#creator = <None>
{%- if statsd.user_id is defined and statsd.project_id is defined %}
creator = {{ statsd.user_id }}:{{ statsd.project_id }}
{%- endif %}
# Archive policy name to use when creating metrics (string value)
#archive_policy_name = <None>
{%- if statsd.archive_policy_name is defined %}
archive_policy_name = {{ statsd.archive_policy_name }}
{%- endif %}
# Delay between flushes (floating point value)
#flush_delay = 10
{%- if statsd.flush_delay is defined %}
flush_delay = {{ statsd.flush_delay }}
{%- endif %}
[storage]
{%- set _storage = storage %}
{%- if _storage.driver is defined %}
driver = {{ _storage.driver }}
{% include "gnocchi/files/" + cfg.version|string + "/storage/_" + _storage.driver + ".conf" %}
{%- endif %}
file_basepath = /var/lib/gnocchi