# Masakari Configuration Options

The following is a sample Masakari configuration for adaptation and use. It is auto-generated from Masakari when this documentation is built, so if you are having issues with an option, please compare your version of Masakari with the version of this documentation.

The sample configuration can also be downloaded from `here`.

    [DEFAULT]

    #
    # From masakari.conf
    #

    #
    # This determines the strategy to use for authentication: keystone or noauth2.
    # 'noauth2' is designed for testing only, as it does no actual credential
    # checking. 'noauth2' provides administrative credentials only if 'admin' is
    # specified as the username.
    #
    # * Possible values:
    #
    #   Either 'keystone' (default) or 'noauth2'.
    #
    # * Services that use this:
    #
    #   ``masakari-api``
    #
    # * Related options:
    #
    #   None
    #  (string value)
    # Possible values:
    # keystone - <No description provided>
    # noauth2 - <No description provided>
    #auth_strategy = keystone

    #
    # When True, the 'X-Forwarded-For' header is treated as the canonical remote
    # address. When False (the default), the 'remote_address' header is used.
    #
    # You should only enable this if you have an HTML sanitizing proxy.
    #
    # * Possible values:
    #
    #   True, False (default)
    #
    # * Services that use this:
    #
    #   ``masakari-api``
    #
    # * Related options:
    #
    #   None
    #  (boolean value)
    #use_forwarded_for = false

    #
    # As a query can potentially return many thousands of items, you can limit the
    # maximum number of items in a single response by setting this option.
    #
    # * Possible values:
    #
    #   Any positive integer. Default is 1000.
    #
    # * Services that use this:
    #
    #   ``masakari-api``
    #
    # * Related options:
    #
    #   None
    #  (integer value)
    #osapi_max_limit = 1000

    #
    # This string is prepended to the normal URL that is returned in links to the
    # OpenStack Masakari API. If it is empty (the default), the URLs are returned
    # unchanged.
    #
    # * Possible values:
    #
    #   Any string, including an empty string (the default).
    #
    # * Services that use this:
    #
    #   ``masakari-api``
    #
    # * Related options:
    #
    #   None
    #  (string value)
    #osapi_masakari_link_prefix = <None>

    # Explicitly specify the temporary working directory. (string value)
    #tempdir = <None>

    #
    # Determine if monkey patching should be applied.
    #
    # Related options:
    #
    # * ``monkey_patch_modules``: This must have values set for this option to have
    #   any effect
    #  (boolean value)
    #monkey_patch = false

    #
    # List of modules/decorators to monkey patch.
    #
    # This option allows you to patch a decorator for all functions in specified
    # modules.
    #
    # Related options:
    #
    # * ``monkey_patch``: This must be set to ``True`` for this option to
    #   have any effect
    #  (list value)
    #monkey_patch_modules = masakari.api:masakari.cmd

    # DEPRECATED:
    # This is the message queue topic that the masakari engine 'listens' on. It is
    # used when the masakari engine is started up to configure the queue, and
    # whenever an RPC call to the masakari engine is made.
    #
    # * Possible values:
    #
    #   Any string, but there is almost never any reason to ever change this value
    #   from its default of 'engine'.
    #
    # * Services that use this:
    #
    #   ``masakari-engine``
    #
    # * Related options:
    #
    #   None
    #  (string value)
    # This option is deprecated for removal since 3.0.0.
    # Its value may be silently ignored in the future.
    # Reason:
    # Configurable RPC topic provides little value and it can easily break
    # Masakari if operator configures it to the same topic used by other OpenStack
    # services.
    #masakari_topic = ha_engine

    # Interval in seconds for identifying duplicate notifications. If the
    # notification received is identical to the previous ones whose status is either
    # new or running and if it's created_timestamp and the current timestamp is less
    # than this config option value, then the notification will be considered as
    # duplicate and it will be ignored. (integer value)
    # Minimum value: 0
    #duplicate_notification_detection_interval = 180

    # Number of seconds to wait after a service is enabled or disabled. (integer
    # value)
    #wait_period_after_service_update = 180

    # Wait until instance is evacuated (integer value)
    #wait_period_after_evacuation = 90

    # The monitoring interval for looping (integer value)
    #verify_interval = 1

    # Number of seconds to wait for instance to shut down (integer value)
    #wait_period_after_power_off = 180

    # Number of seconds to wait for instance to start (integer value)
    #wait_period_after_power_on = 60

    # Interval in seconds for processing notifications which are in error or new
    # state. (integer value)
    #process_unfinished_notifications_interval = 120

    # Interval in seconds for identifying notifications which are in new state. If
    # the notification is in new state till this config option value after it's
    # generated_time, then it is considered that notification is ignored by the
    # messaging queue and will be processed by 'process_unfinished_notifications'
    # periodic task. (integer value)
    # Note: This option can be changed without restarting.
    #retry_notification_new_status_interval = 60

    # Interval in seconds for checking running notifications. (integer value)
    #check_expired_notifications_interval = 600

    # Interval in seconds for identifying running notifications expired. (integer
    # value)
    #notifications_expired_interval = 86400

    # Number of threads to be used for evacuating and confirming instances during
    # execution of host_failure workflow. (integer value)
    # Minimum value: 1
    #host_failure_recovery_threads = 3

    #
    # Defines which driver to use for executing notification workflows.
    #  (string value)
    #notification_driver = taskflow_driver

    # Make exception message format errors fatal (boolean value)
    #fatal_exception_format_errors = false

    # Match this value when searching for nova in the service catalog. Format is:
    # separated values of the form: <service_type>:<service_name>:<endpoint_type>
    # (string value)
    #nova_catalog_admin_info = compute:nova:publicURL

    # Region name of this node (string value)
    #os_region_name = <None>

    # Location of ca certificates file to use for nova client requests. (string
    # value)
    #nova_ca_certificates_file = <None>

    # Allow to perform insecure SSL requests to nova (boolean value)
    #nova_api_insecure = false

    # OpenStack privileged account username. Used for requests to other services
    # (such as Nova) that require an account with special rights. (string value)
    #os_privileged_user_name = <None>

    # Password associated with the OpenStack privileged account. (string value)
    #os_privileged_user_password = <None>

    # Tenant name associated with the OpenStack privileged account. (string value)
    #os_privileged_user_tenant = <None>

    # Auth URL associated with the OpenStack privileged account. (uri value)
    #os_privileged_user_auth_url = <None>

    # User domain name associated with the OpenStack privileged account. (string
    # value)
    #os_user_domain_name = default

    # Project domain name associated with the OpenStack privileged account. (string
    # value)
    #os_project_domain_name = default

    # Scope for system operations. (string value)
    #os_system_scope = <None>

    # Directory where the masakari python module is installed (string value)
    #pybasedir = /build/masakari-HqgOqV/masakari-21.0.0

    # Directory where masakari binaries are installed (string value)
    #bindir = /usr/local/bin

    # Top-level directory for maintaining masakari's state (string value)
    #state_path = $pybasedir

    #
    # Hostname, FQDN or IP address of this host. Must be valid within AMQP key.
    #
    # Possible values:
    #
    # * String with hostname, FQDN or IP address. Default is hostname of this host.
    #  (host address value)
    #host = lcy02-amd64-060

    # Full class name for the Manager for masakari engine (string value)
    #engine_manager = masakari.engine.manager.MasakariManager

    # Seconds between nodes reporting state to datastore (integer value)
    #report_interval = 10

    # Enable periodic tasks (boolean value)
    #periodic_enable = true

    # Max interval time between periodic tasks execution in seconds. (integer value)
    #periodic_interval_max = 300

    # Range of seconds to randomly delay when starting the periodic task scheduler
    # to reduce stampeding. (Disable by setting to 0) (integer value)
    #periodic_fuzzy_delay = 60

    # Use APIs with SSL enabled (boolean value)
    #use_ssl = false

    # The IP address on which the Masakari API will listen. (host address value)
    #masakari_api_listen = 0.0.0.0

    # The port on which the Masakari API will listen. (integer value)
    # Minimum value: 1
    # Maximum value: 65535
    #masakari_api_listen_port = 15868

    # Number of workers for Masakari API service. The default will be the number of
    # CPUs available. (integer value)
    #masakari_api_workers = <None>

    # Maximum time since last check-in for up service (integer value)
    #service_down_time = 60

    #
    # From oslo.log
    #

    # If set to true, the logging level will be set to DEBUG instead of the default
    # INFO level. (boolean value)
    # Note: This option can be changed without restarting.
    #debug = false

    # 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. Note that when logging
    # configuration files are used then all logging configuration is set in the
    # configuration file and other logging configuration options are ignored (for
    # example, log-date-format). (string value)
    # Note: This option can be changed without restarting.
    # Deprecated group/name - [DEFAULT]/log_config
    #log_config_append = <None>

    # Defines the format string for %%(asctime)s in log records. Default:
    # %(default)s . This option is ignored if log_config_append is set. (string
    # value)
    #log_date_format = %Y-%m-%d %H:%M:%S

    # (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. This option is ignored if
    # log_config_append is set. (string value)
    # Deprecated group/name - [DEFAULT]/logfile
    #log_file = <None>

    # (Optional) The base directory used for relative log_file  paths. This option
    # is ignored if log_config_append is set. (string value)
    # Deprecated group/name - [DEFAULT]/logdir
    #log_dir = <None>

    # Use syslog for logging. Existing syslog format is DEPRECATED and will be
    # changed later to honor RFC5424. This option is ignored if log_config_append is
    # set. (boolean value)
    #use_syslog = false

    # 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.This option is
    # ignored if log_config_append is set. (boolean value)
    #use_journal = false

    # Syslog facility to receive log lines. This option is ignored if
    # log_config_append is set. (string value)
    #syslog_log_facility = LOG_USER

    # Use JSON formatting for logging. This option is ignored if log_config_append
    # is set. (boolean value)
    #use_json = false

    # Log output to standard error. This option is ignored if log_config_append is
    # set. (boolean value)
    #use_stderr = false

    # (Optional) Set the 'color' key according to log levels. This option takes
    # effect only when logging to stderr or stdout is used. This option is ignored
    # if log_config_append is set. (boolean value)
    #log_color = false

    # The amount of time before the log files are rotated. This option is ignored
    # unless log_rotation_type is set to "interval". (integer value)
    #log_rotate_interval = 1

    # Rotation interval type. The time of the last file change (or the time when the
    # service was started) is used when scheduling the next rotation. (string value)
    # Possible values:
    # Seconds - <No description provided>
    # Minutes - <No description provided>
    # Hours - <No description provided>
    # Days - <No description provided>
    # Weekday - <No description provided>
    # Midnight - <No description provided>
    #log_rotate_interval_type = days

    # Maximum number of rotated log files. (integer value)
    #max_logfile_count = 30

    # Log file maximum size in MB. This option is ignored if "log_rotation_type" is
    # not set to "size". (integer value)
    #max_logfile_size_mb = 200

    # Log rotation type. (string value)
    # Possible values:
    # interval - Rotate logs at predefined time intervals.
    # size - Rotate logs once they reach a predefined size.
    # none - Do not rotate log files.
    #log_rotation_type = none

    # Format string to use for log messages with context. Used by
    # oslo_log.formatters.ContextFormatter (string value)
    #logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(global_request_id)s %(request_id)s %(user_identity)s] %(instance)s%(message)s

    # Format string to use for log messages when context is undefined. Used by
    # oslo_log.formatters.ContextFormatter (string value)
    #logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s

    # Additional data to append to log message when logging level for the message is
    # DEBUG. Used by oslo_log.formatters.ContextFormatter (string value)
    #logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d

    # Prefix each line of exception output with this format. Used by
    # oslo_log.formatters.ContextFormatter (string value)
    #logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s

    # Defines the format string for %(user_identity)s that is used in
    # logging_context_format_string. Used by oslo_log.formatters.ContextFormatter
    # (string value)
    #logging_user_identity_format = %(user)s %(project)s %(domain)s %(system_scope)s %(user_domain)s %(project_domain)s

    # List of package logging levels in logger=LEVEL pairs. This option is ignored
    # if log_config_append is set. (list value)
    #default_log_levels = amqp=WARN,boto=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,oslo_messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,oslo_policy=INFO,dogpile.core.dogpile=INFO

    # Enables or disables publication of error events. (boolean value)
    #publish_errors = 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] "

    # Interval, number of seconds, of log rate limiting. (integer value)
    #rate_limit_interval = 0

    # Maximum number of logged messages per rate_limit_interval. (integer value)
    #rate_limit_burst = 0

    # Log level name used by rate limiting. Logs with level greater or equal to
    # rate_limit_except_level are not filtered. An empty string means that all
    # levels are filtered. (string value)
    # Possible values:
    # CRITICAL - <No description provided>
    # ERROR - <No description provided>
    # INFO - <No description provided>
    # WARNING - <No description provided>
    # DEBUG - <No description provided>
    # '' - <No description provided>
    #rate_limit_except_level = CRITICAL

    # Enables or disables fatal status of deprecations. (boolean value)
    #fatal_deprecations = false

    #
    # From oslo.messaging
    #

    # Size of executor thread pool when executor is threading or eventlet. (integer
    # value)
    # Deprecated group/name - [DEFAULT]/rpc_thread_pool_size
    #executor_thread_pool_size = 64

    # Seconds to wait for a response from a call. (integer value)
    #rpc_response_timeout = 60

    # The network address and optional user credentials for connecting to the
    # messaging backend, in URL format. The expected format is:
    #
    # driver://[user:pass@]host:port[,[userN:passN@]hostN:portN]/virtual_host?query
    #
    # Example: rabbit://rabbitmq:password@127.0.0.1:5672//
    #
    # For full details on the fields in the URL see the documentation of
    # oslo_messaging.TransportURL at
    # https://docs.openstack.org/oslo.messaging/latest/reference/transport.html
    # (string value)
    #transport_url = rabbit://

    # 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

    # Add an endpoint to answer to ping calls. Endpoint is named
    # oslo_rpc_server_ping (boolean value)
    #rpc_ping_enabled = false

    #
    # From oslo.service.service
    #

    # DEPRECATED: 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)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'backdoor_port' option is deprecated and will be removed in a
    # future release.
    #backdoor_port = <None>

    # DEPRECATED: 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. Inside the
    # path {pid} will be replaced with the PID of the current process. (string
    # value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'backdoor_socket' option is deprecated and will be removed in a
    # future release.
    #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

    #
    # From oslo.service.wsgi
    #

    # DEPRECATED: File name for the paste.deploy config for api service (string
    # value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'api_paste_config' option is deprecated and will be removed in a
    # future release.
    #api_paste_config = api-paste.ini

    # DEPRECATED: A python format string that is used as the template to generate
    # log lines. The following values can beformatted into it: client_ip, date_time,
    # request_line, status_code, body_length, wall_seconds. (string value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'wsgi_log_format' option is deprecated and will be removed in a
    # future release.
    #wsgi_log_format = %(client_ip)s "%(request_line)s" status: %(status_code)s  len: %(body_length)s time: %(wall_seconds).7f

    # DEPRECATED: Sets the value of TCP_KEEPIDLE in seconds for each server socket.
    # Not supported on OS X. (integer value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'tcp_keepidle' option is deprecated and will be removed in a
    # future release.
    #tcp_keepidle = 600

    # DEPRECATED: Size of the pool of greenthreads used by wsgi (integer value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'wsgi_default_pool_size' option is deprecated and will be removed
    # in a future release.
    #wsgi_default_pool_size = 100

    # DEPRECATED: Maximum line size of message headers to be accepted.
    # max_header_line may need to be increased when using large tokens (typically
    # those generated when keystone is configured to use PKI tokens with big service
    # catalogs). (integer value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'max_header_line' option is deprecated and will be removed in a
    # future release.
    #max_header_line = 16384

    # DEPRECATED: If False, closes the client socket connection explicitly. (boolean
    # value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'wsgi_keep_alive' option is deprecated and will be removed in a
    # future release.
    #wsgi_keep_alive = true

    # DEPRECATED: Timeout for client connections' socket operations. If an incoming
    # connection is idle for this number of seconds it will be closed. A value of
    # '0' means wait forever. (integer value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'client_socket_timeout' option is deprecated and will be removed
    # in a future release.
    #client_socket_timeout = 900

    # DEPRECATED: True if the server should send exception tracebacks to the clients
    # on 500 errors. If False, the server will respond with empty bodies. (boolean
    # value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'wsgi_server_debug' option is deprecated and will be removed in a
    # future release.
    #wsgi_server_debug = false

    [coordination]

    #
    # From masakari.conf
    #

    # The backend URL to use for distributed coordination.By default it's None which
    # means that coordination is disabled. The coordination is implemented for
    # distributed lock management and was tested with etcd.Coordination doesn't work
    # for file driver because lock files aren't removed after lock releasing.
    # (string value)
    #backend_url = <None>

    [cors]

    #
    # From oslo.middleware
    #

    # Indicate whether this resource may be shared with the domain received in the
    # requests "origin" header. Format: "<protocol>://<host>[:<port>]", no trailing
    # slash. Example: https://horizon.example.com (list value)
    #allowed_origin = <None>

    # Indicate that the actual request can include user credentials (boolean value)
    #allow_credentials = true

    # Indicate which headers are safe to expose to the API. Defaults to HTTP Simple
    # Headers. (list value)
    #expose_headers =

    # Maximum cache age of CORS preflight requests. (integer value)
    #max_age = 3600

    # Indicate which methods can be used during the actual request. (list value)
    #allow_methods = OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,PATCH

    # Indicate which header field names may be used during the actual request. (list
    # value)
    #allow_headers =

    [database]

    #
    # From oslo.db
    #

    # If True, SQLite uses synchronous mode. (boolean value)
    #sqlite_synchronous = true

    # The back end to use for the database. (string value)
    #backend = sqlalchemy

    # The SQLAlchemy connection string to use to connect to the database. (string
    # value)
    #connection = <None>

    # The SQLAlchemy connection string to use to connect to the slave database.
    # (string value)
    #slave_connection = <None>

    # The SQLAlchemy asyncio connection string to use to connect to the database.
    # (string value)
    #asyncio_connection = <None>

    # The SQLAlchemy asyncio connection string to use to connect to the slave
    # database. (string value)
    #asyncio_slave_connection = <None>

    # Whether or not to assume a reader context needs to guarantee it can read data
    # committed by a writer assuming replication lag is present; defaults to True.
    # When False, a reader context works the same as async_reader and will select
    # the slave database if present. When using a galera cluster, this can be set to
    # False only if you set mysql_wsrep_sync_wait to 1 (this will guarantee that the
    # reader will wait until writesets are committed).Note that this may incur a
    # performance degradation within the galera cluster. Note also that this
    # parameter has no effect if you do not set any slave_connection. (boolean
    # value)
    #synchronous_reader = true

    # 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

    # For Galera only, configure wsrep_sync_wait causality checks on new
    # connections.  Default is None, meaning don't configure any setting. (integer
    # value)
    #mysql_wsrep_sync_wait = <None>

    # Connections which have been present in the connection pool longer than this
    # number of seconds will be replaced with a new one the next time they are
    # checked out from the pool. (integer value)
    #connection_recycle_time = 3600

    # Maximum number of SQL connections to keep open in a pool. Setting a value of 0
    # indicates no limit. (integer value)
    #max_pool_size = 5

    # Maximum number of database connection retries during startup. Set to -1 to
    # specify an infinite retry count. (integer value)
    #max_retries = 10

    # Interval between retries of opening a SQL connection. (integer value)
    #retry_interval = 10

    # If set, use this value for max_overflow with SQLAlchemy. (integer value)
    #max_overflow = 50

    # Verbosity of SQL debugging information: 0=None, 100=Everything. (integer
    # value)
    # Minimum value: 0
    # Maximum value: 100
    #connection_debug = 0

    # Add Python stack traces to SQL as comment strings. (boolean value)
    #connection_trace = false

    # If set, use this value for pool_timeout with SQLAlchemy. (integer value)
    #pool_timeout = <None>

    # Enable the experimental use of database reconnect on connection lost. (boolean
    # value)
    #use_db_reconnect = false

    # Seconds between retries of a database transaction. (integer value)
    #db_retry_interval = 1

    # If True, increases the interval between retries of a database operation up to
    # db_max_retry_interval. (boolean value)
    #db_inc_retry_interval = true

    # If db_inc_retry_interval is set, the maximum seconds between retries of a
    # database operation. (integer value)
    #db_max_retry_interval = 10

    # Maximum retries in case of connection error or deadlock error before error is
    # raised. Set to -1 to specify an infinite retry count. (integer value)
    #db_max_retries = 20

    # Optional URL parameters to append onto the connection URL at connect time;
    # specify as param1=value1&param2=value2&... (string value)
    #connection_parameters =

    [healthcheck]

    #
    # From oslo.middleware
    #

    # Show more detailed information as part of the response. Security note:
    # Enabling this option may expose sensitive details about the service being
    # monitored. Be sure to verify that it will not violate your security policies.
    # (boolean value)
    #detailed = false

    # Additional backends that can perform health checks and report that information
    # back as part of a request. (list value)
    #backends =

    # A list of network addresses to limit source ip allowed to access healthcheck
    # information. Any request from ip outside of these network addresses are
    # ignored. (list value)
    #allowed_source_ranges =

    # Ignore requests with proxy headers. (boolean value)
    #ignore_proxied_requests = false

    # Check the presence of a file to determine if an application is running on a
    # port. Used by DisableByFileHealthcheck plugin. (string value)
    #disable_by_file_path = <None>

    # Check the presence of a file based on a port to determine if an application is
    # running on a port. Expects a "port:path" list of strings. Used by
    # DisableByFilesPortsHealthcheck plugin. (list value)
    #disable_by_file_paths =

    # Check the presence of files. Used by EnableByFilesHealthcheck plugin. (list
    # value)
    #enable_by_file_paths =

    [host_failure]

    #
    # From masakari.conf
    #

    #
    # Operators can decide whether all instances or only those instances which have
    # ``[host_failure]\ha_enabled_instance_metadata_key`` set to ``True`` should be
    # allowed for evacuation from a failed source compute node.
    # When set to True, it will evacuate all instances from a failed source compute
    # node.
    # First preference will be given to those instances which have
    # ``[host_failure]\ha_enabled_instance_metadata_key`` set to ``True``,
    # and then it will evacuate the remaining ones.
    # When set to False, it will evacuate only those instances which have
    # ``[host_failure]\ha_enabled_instance_metadata_key`` set to ``True``.
    #      (boolean value)
    #evacuate_all_instances = true

    #
    # Operators can decide on the instance metadata key naming that affects the
    # per-instance behaviour of ``[host_failure]\evacuate_all_instances``.
    # The default is the same for both failure types (host, instance) but the value
    # can be overridden to make the metadata key different per failure type.
    #      (string value)
    #ha_enabled_instance_metadata_key = HA_Enabled

    #
    # Operators can decide whether error instances should be allowed for evacuation
    # from a failed source compute node or not. When set to True, it will ignore
    # error instances from evacuation from a failed source compute node. When set to
    # False, it will evacuate error instances along with other instances from a
    # failed source compute node. (boolean value)
    #ignore_instances_in_error_state = false

    #
    # Operators can decide whether reserved_host should be added to aggregate group
    # of failed compute host. When set to True, reserved host will be added to the
    # aggregate group of failed compute host. When set to False, the reserved_host
    # will not be added to the aggregate group of failed compute host. (boolean
    # value)
    #add_reserved_host_to_aggregate = false

    # Compute disable reason in case Masakari detects host failure. (string value)
    #service_disable_reason = Masakari detected host failed.

    [instance_failure]

    #
    # From masakari.conf
    #

    #
    # Operators can decide whether all instances or only those instances which
    # have ``[instance_failure]\ha_enabled_instance_metadata_key`` set to ``True``
    # should be taken into account to recover from instance failure events.
    # When set to True, it will execute instance failure recovery actions for an
    # instance irrespective of whether that particular instance has
    # ``[instance_failure]\ha_enabled_instance_metadata_key`` set to ``True``.
    # When set to False, it will only execute instance failure recovery actions
    # for an instance which has
    # ``[instance_failure]\ha_enabled_instance_metadata_key`` set to ``True``.
    #      (boolean value)
    #process_all_instances = false

    #
    # Operators can decide on the instance metadata key naming that affects the
    # per-instance behaviour of ``[instance_failure]\process_all_instances``.
    # The default is the same for both failure types (host, instance) but the value
    # can be overridden to make the metadata key different per failure type.
    #      (string value)
    #ha_enabled_instance_metadata_key = HA_Enabled

    [keystone_authtoken]

    #
    # From keystonemiddleware.auth_token
    #

    # Complete "public" Identity API endpoint. This endpoint should not be an
    # "admin" endpoint, as it should be accessible by all end users. Unauthenticated
    # clients are redirected to this endpoint to authenticate. Although this
    # endpoint should ideally be unversioned, client support in the wild varies. If
    # you're using a versioned v2 endpoint here, then this should *not* be the same
    # endpoint the service user utilizes for validating tokens, because normal end
    # users may not be able to reach that endpoint. (string value)
    # Deprecated group/name - [keystone_authtoken]/auth_uri
    #www_authenticate_uri = <None>

    # DEPRECATED: Complete "public" Identity API endpoint. This endpoint should not
    # be an "admin" endpoint, as it should be accessible by all end users.
    # Unauthenticated clients are redirected to this endpoint to authenticate.
    # Although this endpoint should ideally be unversioned, client support in the
    # wild varies. If you're using a versioned v2 endpoint here, then this should
    # *not* be the same endpoint the service user utilizes for validating tokens,
    # because normal end users may not be able to reach that endpoint. This option
    # is deprecated in favor of www_authenticate_uri and will be removed in the S
    # release. (string value)
    # This option is deprecated for removal since Queens.
    # Its value may be silently ignored in the future.
    # Reason: The auth_uri option is deprecated in favor of www_authenticate_uri and
    # will be removed in the S  release.
    #auth_uri = <None>

    # API version of the Identity API endpoint. (string value)
    #auth_version = <None>

    # Interface to use for the Identity API endpoint. Valid values are "public",
    # "internal" (default) or "admin". (string value)
    #interface = internal

    # Do not handle authorization requests within the middleware, but delegate the
    # authorization decision to downstream WSGI components. (boolean value)
    #delay_auth_decision = false

    # Request timeout value for communicating with Identity API server. (integer
    # value)
    #http_connect_timeout = <None>

    # How many times are we trying to reconnect when communicating with Identity API
    # Server. (integer value)
    #http_request_max_retries = 3

    # Request environment key where the Swift cache object is stored. When
    # auth_token middleware is deployed with a Swift cache, use this option to have
    # the middleware share a caching backend with swift. Otherwise, use the
    # ``memcached_servers`` option instead. (string value)
    #cache = <None>

    # Required if identity server requires client certificate (string value)
    #certfile = <None>

    # Required if identity server requires client certificate (string value)
    #keyfile = <None>

    # A PEM encoded Certificate Authority to use when verifying HTTPs connections.
    # Defaults to system CAs. (string value)
    #cafile = <None>

    # Verify HTTPS connections. (boolean value)
    #insecure = false

    # The region in which the identity server can be found. (string value)
    #region_name = <None>

    # Optionally specify a list of memcached server(s) to use for caching. If left
    # undefined, tokens will instead be cached in-process. (list value)
    # Deprecated group/name - [keystone_authtoken]/memcache_servers
    #memcached_servers = <None>

    # In order to prevent excessive effort spent validating tokens, the middleware
    # caches previously-seen tokens for a configurable duration (in seconds). Set to
    # -1 to disable caching completely. (integer value)
    #token_cache_time = 300

    # (Optional) If defined, indicate whether token data should be authenticated or
    # authenticated and encrypted. If MAC, token data is authenticated (with HMAC)
    # in the cache. If ENCRYPT, token data is encrypted and authenticated in the
    # cache. If the value is not one of these options or empty, auth_token will
    # raise an exception on initialization. (string value)
    # Possible values:
    # None - <No description provided>
    # MAC - <No description provided>
    # ENCRYPT - <No description provided>
    #memcache_security_strategy = None

    # (Optional, mandatory if memcache_security_strategy is defined) This string is
    # used for key derivation. (string value)
    #memcache_secret_key = <None>

    # (Optional) Global toggle for TLS usage when comunicating with the caching
    # servers. (boolean value)
    #memcache_tls_enabled = false

    # (Optional) Path to a file of concatenated CA certificates in PEM format
    # necessary to establish the caching server's authenticity. If tls_enabled is
    # False, this option is ignored. (string value)
    #memcache_tls_cafile = <None>

    # (Optional) Path to a single file in PEM format containing the client's
    # certificate as well as any number of CA certificates needed to establish the
    # certificate's authenticity. This file is only required when client side
    # authentication is necessary. If tls_enabled is False, this option is ignored.
    # (string value)
    #memcache_tls_certfile = <None>

    # (Optional) Path to a single file containing the client's private key in.
    # Otherwhise the private key will be taken from the file specified in
    # tls_certfile. If tls_enabled is False, this option is ignored. (string value)
    #memcache_tls_keyfile = <None>

    # (Optional) Set the available ciphers for sockets created with the TLS context.
    # It should be a string in the OpenSSL cipher list format. If not specified, all
    # OpenSSL enabled ciphers will be available. (string value)
    #memcache_tls_allowed_ciphers = <None>

    # (Optional) Number of seconds memcached server is considered dead before it is
    # tried again. (integer value)
    #memcache_pool_dead_retry = 300

    # (Optional) Maximum total number of open connections to every memcached server.
    # (integer value)
    #memcache_pool_maxsize = 10

    # (Optional) Socket timeout in seconds for communicating with a memcached
    # server. (integer value)
    #memcache_pool_socket_timeout = 3

    # (Optional) Number of seconds a connection to memcached is held unused in the
    # pool before it is closed. (integer value)
    #memcache_pool_unused_timeout = 60

    # (Optional) Number of seconds that an operation will wait to get a memcached
    # client connection from the pool. (integer value)
    #memcache_pool_conn_get_timeout = 10

    # (Optional) Use the advanced (eventlet safe) memcached client pool. (boolean
    # value)
    #memcache_use_advanced_pool = true

    # (Optional) Indicate whether to set the X-Service-Catalog header. If False,
    # middleware will not ask for service catalog on token validation and will not
    # set the X-Service-Catalog header. (boolean value)
    #include_service_catalog = true

    # Used to control the use and type of token binding. Can be set to: "disabled"
    # to not check token binding. "permissive" (default) to validate binding
    # information if the bind type is of a form known to the server and ignore it if
    # not. "strict" like "permissive" but if the bind type is unknown the token will
    # be rejected. "required" any form of token binding is needed to be allowed.
    # Finally the name of a binding method that must be present in tokens. (string
    # value)
    #enforce_token_bind = permissive

    # A choice of roles that must be present in a service token. Service tokens are
    # allowed to request that an expired token can be used and so this check should
    # tightly control that only actual services should be sending this token. Roles
    # here are applied as an ANY check so any role in this list must be present. For
    # backwards compatibility reasons this currently only affects the allow_expired
    # check. (list value)
    #service_token_roles = service

    # For backwards compatibility reasons we must let valid service tokens pass that
    # don't pass the service_token_roles check as valid. Setting this true will
    # become the default in a future release and should be enabled if possible.
    # (boolean value)
    #service_token_roles_required = false

    # The name or type of the service as it appears in the service catalog. This is
    # used to validate tokens that have restricted access rules. (string value)
    #service_type = <None>

    # Enable the SASL(Simple Authentication and Security Layer) if the SASL_enable
    # is true, else disable. (boolean value)
    #memcache_sasl_enabled = false

    # the user name for the SASL (string value)
    #memcache_username =

    # the username password for SASL (string value)
    #memcache_password =

    # Authentication type to load (string value)
    # Deprecated group/name - [keystone_authtoken]/auth_plugin
    #auth_type = <None>

    # Config Section from which to load plugin specific options (string value)
    #auth_section = <None>

    [osapi_v1]

    #
    # From masakari.conf
    #

    # DEPRECATED:
    # *DEPRECATED*
    #
    # This option is a list of all of the v2.1 API extensions to never load.
    # However,
    # it will be removed in the near future, after which the all the functionality
    # that was previously in extensions will be part of the standard API, and thus
    # always accessible.
    #
    # * Possible values:
    #
    #   A list of strings, each being the alias of an extension that you do not
    #   wish to load.
    #
    # * Services that use this:
    #
    #   ``masakari-api``
    #
    # * Related options:
    #
    #   enabled, extensions_whitelist
    #  (list value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    #extensions_blacklist =

    # DEPRECATED:
    # *DEPRECATED*
    #
    # This is a list of extensions. If it is empty, then *all* extensions except
    # those specified in the extensions_blacklist option will be loaded. If it is
    # not
    # empty, then only those extensions in this list will be loaded, provided that
    # they are also not in the extensions_blacklist option. Once this deprecated
    # option is removed, after which the all the functionality that was previously
    # in
    # extensions will be part of the standard API, and thus always accessible.
    #
    # * Possible values:
    #
    #   A list of strings, each being the alias of an extension that you wish to
    #   load, or an empty list, which indicates that all extensions are to be run.
    #
    # * Services that use this:
    #
    #   ``masakari-api``
    #
    # * Related options:
    #
    #   enabled, extensions_blacklist
    #  (list value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    #extensions_whitelist =

    # DEPRECATED:
    # *DEPRECATED*
    #
    # This option is a string representing a regular expression (regex) that matches
    # the project_id as contained in URLs. If not set, it will match normal UUIDs
    # created by keystone.
    #
    # * Possible values:
    #
    #   A string representing any legal regular expression
    #
    # * Services that use this:
    #
    #   ``masakari-api``
    #
    # * Related options:
    #
    #   None
    #  (string value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    #project_id_regex = <None>

    [oslo_messaging_kafka]

    #
    # From oslo.messaging
    #

    # Max fetch bytes of Kafka consumer (integer value)
    #kafka_max_fetch_bytes = 1048576

    # Default timeout(s) for Kafka consumers (floating point value)
    #kafka_consumer_timeout = 1.0

    # Group id for Kafka consumer. Consumers in one group will coordinate message
    # consumption (string value)
    #consumer_group = oslo_messaging_consumer

    # Upper bound on the delay for KafkaProducer batching in seconds (floating point
    # value)
    #producer_batch_timeout = 0.0

    # Size of batch for the producer async send (integer value)
    #producer_batch_size = 16384

    # The compression codec for all data generated by the producer. If not set,
    # compression will not be used. Note that the allowed values of this depend on
    # the kafka version (string value)
    # Possible values:
    # none - <No description provided>
    # gzip - <No description provided>
    # snappy - <No description provided>
    # lz4 - <No description provided>
    # zstd - <No description provided>
    #compression_codec = none

    # Enable asynchronous consumer commits (boolean value)
    #enable_auto_commit = false

    # The maximum number of records returned in a poll call (integer value)
    #max_poll_records = 500

    # Protocol used to communicate with brokers (string value)
    # Possible values:
    # PLAINTEXT - <No description provided>
    # SASL_PLAINTEXT - <No description provided>
    # SSL - <No description provided>
    # SASL_SSL - <No description provided>
    #security_protocol = PLAINTEXT

    # Mechanism when security protocol is SASL (string value)
    #sasl_mechanism = PLAIN

    # CA certificate PEM file used to verify the server certificate (string value)
    #ssl_cafile =

    # Client certificate PEM file used for authentication. (string value)
    #ssl_client_cert_file =

    # Client key PEM file used for authentication. (string value)
    #ssl_client_key_file =

    # Client key password file used for authentication. (string value)
    #ssl_client_key_password =

    [oslo_messaging_notifications]

    #
    # From oslo.messaging
    #

    # The Drivers(s) to handle sending notifications. Possible values are messaging,
    # messagingv2, routing, log, test, noop (multi valued)
    #driver =

    # A URL representing the messaging driver to use for notifications. If not set,
    # we fall back to the same configuration used for RPC. (string value)
    #transport_url = <None>

    # AMQP topic used for OpenStack notifications. (list value)
    #topics = notifications

    # The maximum number of attempts to re-send a notification message which failed
    # to be delivered due to a recoverable error. 0 - No retry, -1 - indefinite
    # (integer value)
    #retry = -1

    [oslo_messaging_rabbit]

    #
    # From oslo.messaging
    #

    # Use durable queues in AMQP. If rabbit_quorum_queue is enabled, queues will be
    # durable and this value will be ignored. (boolean value)
    #amqp_durable_queues = false

    # Auto-delete queues in AMQP. (boolean value)
    #amqp_auto_delete = false

    # Size of RPC connection pool. (integer value)
    # Minimum value: 1
    #rpc_conn_pool_size = 30

    # The pool size limit for connections expiration policy (integer value)
    #conn_pool_min_size = 2

    # The time-to-live in sec of idle connections in the pool (integer value)
    #conn_pool_ttl = 1200

    # Connect over SSL. (boolean value)
    #ssl = false

    # SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and
    # SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some
    # distributions. (string value)
    #ssl_version =

    # SSL key file (valid only if SSL enabled). (string value)
    #ssl_key_file =

    # SSL cert file (valid only if SSL enabled). (string value)
    #ssl_cert_file =

    # SSL certification authority file (valid only if SSL enabled). (string value)
    #ssl_ca_file =

    # DEPRECATED: Global toggle for enforcing the OpenSSL FIPS mode. This feature
    # requires Python support. This is available in Python 3.9 in all environments
    # and may have been backported to older Python versions on select environments.
    # If the Python executable used does not support OpenSSL FIPS mode, an exception
    # will be raised. (boolean value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: FIPS_mode_set API was removed in OpenSSL 3.0.0. This option has no
    # effect now.
    #ssl_enforce_fips_mode = false

    # DEPRECATED: (DEPRECATED) It is recommend not to use this option anymore. Run
    # the health check heartbeat thread through a native python thread by default.
    # If this option is equal to False then the health check heartbeat will inherit
    # the execution model from the parent process. For example if the parent process
    # has monkey patched the stdlib by using eventlet/greenlet then the heartbeat
    # will be run through a green thread. This option should be set to True only for
    # the wsgi services. (boolean value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The option is related to Eventlet which will be removed. In addition
    # this has never worked as expected with services using eventlet for core
    # service framework.
    #heartbeat_in_pthread = false

    # How long to wait (in seconds) before reconnecting in response to an AMQP
    # consumer cancel notification. (floating point value)
    # Minimum value: 0.0
    # Maximum value: 4.5
    #kombu_reconnect_delay = 1.0

    # Random time to wait for when reconnecting in response to an AMQP consumer
    # cancel notification. (floating point value)
    # Minimum value: 0.0
    #kombu_reconnect_splay = 0.0

    # EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression will not
    # be used. This option may not be available in future versions. (string value)
    #kombu_compression = <None>

    # How long to wait a missing client before abandoning to send it its replies.
    # This value should not be longer than rpc_response_timeout. (integer value)
    # Deprecated group/name - [oslo_messaging_rabbit]/kombu_reconnect_timeout
    #kombu_missing_consumer_retry_timeout = 60

    # Determines how the next RabbitMQ node is chosen in case the one we are
    # currently connected to becomes unavailable. Takes effect only if more than one
    # RabbitMQ node is provided in config. (string value)
    # Possible values:
    # round-robin - <No description provided>
    # shuffle - <No description provided>
    #kombu_failover_strategy = round-robin

    # The RabbitMQ login method. (string value)
    # Possible values:
    # PLAIN - <No description provided>
    # AMQPLAIN - <No description provided>
    # EXTERNAL - <No description provided>
    # RABBIT-CR-DEMO - <No description provided>
    #rabbit_login_method = AMQPLAIN

    # How frequently to retry connecting with RabbitMQ. (integer value)
    # Minimum value: 1
    #rabbit_retry_interval = 1

    # How long to backoff for between retries when connecting to RabbitMQ. (integer
    # value)
    # Minimum value: 0
    #rabbit_retry_backoff = 2

    # Maximum interval of RabbitMQ connection retries. (integer value)
    # Minimum value: 1
    #rabbit_interval_max = 30

    # Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change this
    # option, you must wipe the RabbitMQ database. In RabbitMQ 3.0, queue mirroring
    # is no longer controlled by the x-ha-policy argument when declaring a queue. If
    # you just want to make sure that all queues (except those with auto-generated
    # names) are mirrored across all nodes, run: "rabbitmqctl set_policy HA
    # '^(?!amq\.).*' '{"ha-mode": "all"}' " (boolean value)
    #rabbit_ha_queues = false

    # Use quorum queues in RabbitMQ (x-queue-type: quorum). The quorum queue is a
    # modern queue type for RabbitMQ implementing a durable, replicated FIFO queue
    # based on the Raft consensus algorithm. It is available as of RabbitMQ 3.8.0.
    # If set this option will conflict with the HA queues (``rabbit_ha_queues``) aka
    # mirrored queues, in other words the HA queues should be disabled. Quorum
    # queues are also durable by default so the amqp_durable_queues option is
    # ignored when this option is enabled. (boolean value)
    #rabbit_quorum_queue = false

    # Use quorum queues for transients queues in RabbitMQ. Enabling this option will
    # then make sure those queues are also using quorum kind of rabbit queues, which
    # are HA by default. (boolean value)
    #rabbit_transient_quorum_queue = false

    # Each time a message is redelivered to a consumer, a counter is incremented.
    # Once the redelivery count exceeds the delivery limit the message gets dropped
    # or dead-lettered (if a DLX exchange has been configured) Used only when
    # rabbit_quorum_queue is enabled, Default 0 which means dont set a limit.
    # (integer value)
    #rabbit_quorum_delivery_limit = 0

    # By default all messages are maintained in memory if a quorum queue grows in
    # length it can put memory pressure on a cluster. This option can limit the
    # number of messages in the quorum queue. Used only when rabbit_quorum_queue is
    # enabled, Default 0 which means dont set a limit. (integer value)
    #rabbit_quorum_max_memory_length = 0

    # By default all messages are maintained in memory if a quorum queue grows in
    # length it can put memory pressure on a cluster. This option can limit the
    # number of memory bytes used by the quorum queue. Used only when
    # rabbit_quorum_queue is enabled, Default 0 which means dont set a limit.
    # (integer value)
    #rabbit_quorum_max_memory_bytes = 0

    # Positive integer representing duration in seconds for queue TTL (x-expires).
    # Queues which are unused for the duration of the TTL are automatically deleted.
    # The parameter affects only reply and fanout queues. Setting 0 as value will
    # disable the x-expires. If doing so, make sure you have a rabbitmq policy to
    # delete the queues or you deployment will create an infinite number of queue
    # over time.In case rabbit_stream_fanout is set to True, this option will
    # control data retention policy (x-max-age) for messages in the fanout queue
    # rather then the queue duration itself. So the oldest data in the stream queue
    # will be discarded from it once reaching TTL Setting to 0 will disable x-max-
    # age for stream which make stream grow indefinitely filling up the diskspace
    # (integer value)
    # Minimum value: 0
    #rabbit_transient_queues_ttl = 1800

    # Specifies the number of messages to prefetch. Setting to zero allows unlimited
    # messages. (integer value)
    #rabbit_qos_prefetch_count = 0

    # Number of seconds after which the Rabbit broker is considered down if
    # heartbeat's keep-alive fails (0 disables heartbeat). (integer value)
    #heartbeat_timeout_threshold = 60

    # How often times during the heartbeat_timeout_threshold we check the heartbeat.
    # (integer value)
    #heartbeat_rate = 3

    # DEPRECATED: (DEPRECATED) Enable/Disable the RabbitMQ mandatory flag for direct
    # send. The direct send is used as reply, so the MessageUndeliverable exception
    # is raised in case the client queue does not exist.MessageUndeliverable
    # exception will be used to loop for a timeout to lets a chance to sender to
    # recover.This flag is deprecated and it will not be possible to deactivate this
    # functionality anymore (boolean value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: Mandatory flag no longer deactivable.
    #direct_mandatory_flag = true

    # Enable x-cancel-on-ha-failover flag so that rabbitmq server will cancel and
    # notify consumerswhen queue is down (boolean value)
    #enable_cancel_on_failover = false

    # Should we use consistant queue names or random ones (boolean value)
    #use_queue_manager = false

    # Hostname used by queue manager. Defaults to the value returned by
    # socket.gethostname(). (string value)
    #
    # This option has a sample default set, which means that
    # its actual default value may vary from the one documented
    # below.
    #hostname = node1.example.com

    # Process name used by queue manager (string value)
    #
    # This option has a sample default set, which means that
    # its actual default value may vary from the one documented
    # below.
    #processname = nova-api

    # Use stream queues in RabbitMQ (x-queue-type: stream). Streams are a new
    # persistent and replicated data structure ("queue type") in RabbitMQ which
    # models an append-only log with non-destructive consumer semantics. It is
    # available as of RabbitMQ 3.9.0. If set this option will replace all fanout
    # queues with only one stream queue. (boolean value)
    #rabbit_stream_fanout = false

    [oslo_middleware]

    #
    # From oslo.middleware
    #

    # The maximum body size for each request, in bytes. (integer value)
    #max_request_body_size = 114688

    # Whether the application is behind a proxy or not. This determines if the
    # middleware should parse the headers or not. (boolean value)
    #enable_proxy_headers_parsing = false

    # HTTP basic auth password file. (string value)
    #http_basic_auth_user_file = /etc/htpasswd

    [oslo_policy]

    #
    # From oslo.policy
    #

    # DEPRECATED: This option controls whether or not to enforce scope when
    # evaluating policies. If ``True``, the scope of the token used in the request
    # is compared to the ``scope_types`` of the policy being enforced. If the scopes
    # do not match, an ``InvalidScope`` exception will be raised. If ``False``, a
    # message will be logged informing operators that policies are being invoked
    # with mismatching scope. (boolean value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: This configuration was added temporarily to facilitate a smooth
    # transition to the new RBAC. OpenStack will always enforce scope checks. This
    # configuration option is deprecated and will be removed in the 2025.2 cycle.
    #enforce_scope = true

    # This option controls whether or not to use old deprecated defaults when
    # evaluating policies. If ``True``, the old deprecated defaults are not going to
    # be evaluated. This means if any existing token is allowed for old defaults but
    # is disallowed for new defaults, it will be disallowed. It is encouraged to
    # enable this flag along with the ``enforce_scope`` flag so that you can get the
    # benefits of new defaults and ``scope_type`` together. If ``False``, the
    # deprecated policy check string is logically OR'd with the new policy check
    # string, allowing for a graceful upgrade experience between releases with new
    # policies, which is the default behavior. (boolean value)
    #enforce_new_defaults = true

    # The relative or absolute path of a file that maps roles to permissions for a
    # given service. Relative paths must be specified in relation to the
    # configuration file setting this option. (string value)
    #policy_file = policy.yaml

    # Default rule. Enforced when a requested rule is not found. (string value)
    #policy_default_rule = default

    # Directories where policy configuration files are stored. They can be relative
    # to any directory in the search path defined by the config_dir option, or
    # absolute paths. The file defined by policy_file must exist for these
    # directories to be searched.  Missing or empty directories are ignored. (multi
    # valued)
    #policy_dirs = policy.d

    # Content Type to send and receive data for REST based policy check (string
    # value)
    # Possible values:
    # application/x-www-form-urlencoded - <No description provided>
    # application/json - <No description provided>
    #remote_content_type = application/x-www-form-urlencoded

    # server identity verification for REST based policy check (boolean value)
    #remote_ssl_verify_server_crt = false

    # Absolute path to ca cert file for REST based policy check (string value)
    #remote_ssl_ca_crt_file = <None>

    # Absolute path to client cert for REST based policy check (string value)
    #remote_ssl_client_crt_file = <None>

    # Absolute path client key file REST based policy check (string value)
    #remote_ssl_client_key_file = <None>

    # Timeout in seconds for REST based policy check (floating point value)
    # Minimum value: 0
    #remote_timeout = 60

    [oslo_versionedobjects]

    #
    # From oslo.versionedobjects
    #

    # Make exception message format errors fatal (boolean value)
    #fatal_exception_format_errors = false

    [process_failure]

    #
    # From masakari.conf
    #

    # Compute disable reason in case Masakari detects process failure. (string
    # value)
    #service_disable_reason = Masakari detected process failed.

    [ssl]

    #
    # From masakari.conf
    #

    # DEPRECATED: CA certificate file to use to verify connecting clients. (string
    # value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'ca_file' option is deprecated and will be removed in a future
    # release.
    #ca_file = <None>

    # DEPRECATED: Certificate file to use when starting the server securely. (string
    # value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'cert_file' option is deprecated and will be removed in a future
    # release.
    #cert_file = <None>

    # DEPRECATED: Private key file to use when starting the server securely. (string
    # value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'key_file' option is deprecated and will be removed in a future
    # release.
    #key_file = <None>

    # DEPRECATED: SSL version to use (valid only if SSL enabled). Valid values are
    # TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some
    # distributions. (string value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'version' option is deprecated and will be removed in a future
    # release.
    #version = <None>

    # DEPRECATED: Sets the list of available ciphers. value should be a string in
    # the OpenSSL cipher list format. (string value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The 'ciphers' option is deprecated and will be removed in a future
    # release.
    #ciphers = <None>

    [taskflow]

    #
    # From masakari.conf
    #

    #
    # The SQLAlchemy connection string to use to connect to the taskflow database.
    #  (string value)
    #connection = <None>

    [wsgi]

    #
    # From masakari.conf
    #

    # File name for the paste.deploy config for masakari-api (string value)
    #api_paste_config = api-paste.ini

    # A python format string that is used as the template to generate log lines. The
    # following values can be formatted into it: client_ip, date_time, request_line,
    # status_code, body_length, wall_seconds. (string value)
    #wsgi_log_format = %(client_ip)s "%(request_line)s" status: %(status_code)s len: %(body_length)s time: %(wall_seconds).7f

    # DEPRECATED: The HTTP header used to determine the scheme for the original
    # request, even if it was removed by an SSL terminating proxy. Typical value is
    # "HTTP_X_FORWARDED_PROTO". (string value)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: The functionality of this parameter is duplicate of the
    # http_proxy_to_wsgi middleware of oslo.middleware and will be completely
    # replaced.
    #secure_proxy_ssl_header = <None>

    # CA certificate file to use to verify connecting clients (string value)
    #ssl_ca_file = <None>

    # SSL certificate of API server (string value)
    #ssl_cert_file = <None>

    # SSL private key of API server (string value)
    #ssl_key_file = <None>

    # Sets the value of TCP_KEEPIDLE in seconds for each server socket. Not
    # supported on OS X. (integer value)
    #tcp_keepidle = 600

    # Size of the pool of greenthreads used by wsgi (integer value)
    #default_pool_size = 1000

    # 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

    # If False, closes the client socket connection explicitly. (boolean value)
    #keep_alive = true

    # Timeout for client connections' socket operations. If an incoming connection
    # is idle for this number of seconds it will be closed. A value of '0' means
    # wait forever. (integer value)
    #client_socket_timeout = 900

## Minimal Configuration

Edit the `/etc/masakari/masakari.conf` file and complete the following actions

In the `[DEFAULT]` section, set following options:

    auth_strategy = keystone
    masakari_topic = ha_engine
    os_privileged_user_tenant = service
    os_privileged_user_auth_url = http://controller/identity
    os_privileged_user_name = nova
    os_privileged_user_password = PRIVILEGED_USER_PASS

Replace `PRIVILEGED_USER_PASS` with the password you chose for the privileged user in the Identity service.

In the `[database]` section, configure database access:

    connection = mysql+pymysql://root:MASAKARI_DBPASS@controller/masakari?charset=utf8

In the `[keystone_authtoken]` sections, configure Identity service access:

    auth_url = http://controller/identity
    memcached_servers = controller:11211
    signing_dir = /var/cache/masakari
    project_domain_name = Default
    user_domain_name = Default
    project_name = service
    username = masakari
    password = MASAKARI_PASS
    auth_type = password
    cafile = /opt/stack/data/ca-bundle.pem

Replace `MASAKARI_PASS` with the password you chose for the `masakari` user in the Identity service.

In the `[coordination]` section, set ‘backend_url’ if use coordination for Masakari-api service.

Note

Additional packages may be required depending on the tooz backend used in the installation. For example, `etcd3gw` is required if the backend driver is configured to use `etcd3+http://`. Supported drivers are listed at Tooz drivers.

this page last updated: 2026-04-01 20:28:51

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug