Ironic Inspector Configuration Options

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

The sample configuration can also be downloaded as a file.

[DEFAULT]

#
# From ironic_inspector
#

# IP to listen on. (string value)
#listen_address = ::

# Port to listen on. (port value)
# Minimum value: 0
# Maximum value: 65535
#listen_port = 5050

# Unix socket to listen on. Disables listen_address and listen_port.
# (string value)
#listen_unix_socket = <None>

# File mode (an octal number) of the unix socket to listen on. Ignored
# if listen_unix_socket is not set. (integer value)
#listen_unix_socket_mode = <None>

# Name of this node. This can be an opaque identifier. It is not
# necessarily a hostname, FQDN, or IP address. However, the node name
# must be valid within an AMQP key, and if using ZeroMQ, a valid
# hostname, FQDN, or IP address. (string value)
#
# This option has a sample default set, which means that
# its actual default value may vary from the one documented
# below.
#host = localhost

# Authentication method used on the ironic-inspector API. "noauth",
# "keystone" or "http_basic" are valid options. "noauth" will disable
# all authentication. (string value)
# Possible values:
# noauth - no authentication
# keystone - use the Identity service for authentication
# http_basic - HTTP basic authentication
#auth_strategy = keystone

# Path to Apache format user authentication file used when
# auth_strategy=http_basic (string value)
#http_basic_auth_user_file = /etc/ironic-inspector/htpasswd

# Timeout after which introspection is considered failed, set to 0 to
# disable. (integer value)
# Maximum value: 315576000
#timeout = 3600

# Amount of time in seconds, after which repeat clean up of timed out
# nodes and old nodes status information. WARNING: If set to a value
# of 0, then the periodic task is disabled and inspector will not sync
# with ironic to complete the internal clean-up process. Not advisable
# if the deployment uses a PXE filter, and will result in the ironic-
# inspector ceasing periodic cleanup activities. (integer value)
# Minimum value: 0
#clean_up_period = 60

# Interval (in seconds) between leader elections. (integer value)
#leader_election_interval = 10

# SSL Enabled/Disabled (boolean value)
#use_ssl = false

# The green thread pool size. (integer value)
# Minimum value: 2
#max_concurrency = 1000

# Delay (in seconds) between two introspections. Only applies when
# boot is managed by ironic-inspector (i.e. manage_boot==True).
# (integer value)
#introspection_delay = 5

# Ironic driver_info fields that are equivalent to ipmi_address. (list
# value)
#ipmi_address_fields = redfish_address,ilo_address,drac_host,drac_address,ibmc_address

# Path to the rootwrap configuration file to use for running commands
# as root (string value)
#rootwrap_config = /etc/ironic-inspector/rootwrap.conf

# Limit the number of elements an API list-call returns (integer
# value)
# Minimum value: 1
#api_max_limit = 1000

# Whether the current installation of ironic-inspector can manage PXE
# booting of nodes. If set to False, the API will reject introspection
# requests with manage_boot missing or set to True. (boolean value)
#can_manage_boot = true

# Whether to enable publishing the ironic-inspector API endpoint via
# multicast DNS. (boolean value)
#enable_mdns = false

# Whether to run ironic-inspector as a standalone service. It's
# EXPERIMENTAL to set to False. (boolean value)
#standalone = true

#
# 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>

# Uses logging handler designed to watch file system. When log file is
# moved or removed this handler will open a new log file with
# specified path instantaneously. It makes sense only if log_file
# option is specified and Linux platform is used. This option is
# ignored if log_config_append is set. (boolean value)
#watch_log_file = false

# 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

# Log output to Windows Event Log. (boolean value)
#use_eventlog = 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 = sqlalchemy=WARNING,iso8601=WARNING,requests=WARNING,urllib3.connectionpool=WARNING,keystonemiddleware=WARNING,keystoneauth=WARNING,ironicclient=WARNING,amqp=WARNING,amqplib=WARNING,oslo.messaging=WARNING,oslo_messaging=WARNING

# 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: CRITICAL, ERROR, INFO,
# WARNING, DEBUG or empty string. 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)
#rate_limit_except_level = CRITICAL

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

#
# From oslo.messaging
#

# 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

# 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
#

# 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. Inside the path {pid} will be replaced with the PID of
# the current process. (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

#
# From oslo.service.wsgi
#

# File name for the paste.deploy config for api service (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 beformatted 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

# 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)
#wsgi_default_pool_size = 100

# 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)
#max_header_line = 16384

# If False, closes the client socket connection explicitly. (boolean
# value)
#wsgi_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

# 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)
#wsgi_server_debug = false


[capabilities]

#
# From ironic_inspector
#

# Whether to store the boot mode (BIOS or UEFI). (boolean value)
#boot_mode = false

# Mapping between a CPU flag and a capability to set if this flag is
# present. (dict value)
#cpu_flags = aes:cpu_aes,pdpe1gb:cpu_hugepages_1g,pse:cpu_hugepages,smx:cpu_txt,svm:cpu_vt,vmx:cpu_vt


[coordination]

#
# From ironic_inspector
#

# The backend URL to use for distributed coordination. EXPERIMENTAL.
# (string value)
#backend_url = memcached://localhost:11211


[cors]

#
# From oslo.middleware.cors
#

# 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 = GET,POST,PUT,HEAD,PATCH,DELETE,OPTIONS

# Indicate which header field names may be used during the actual
# request. (list value)
#allow_headers = X-Auth-Token,X-OpenStack-Ironic-Inspector-API-Minimum-Version,X-OpenStack-Ironic-Inspector-API-Maximum-Version,X-OpenStack-Ironic-Inspector-API-Version


[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)
# Deprecated group/name - [DEFAULT]/db_backend
#backend = sqlalchemy

# The SQLAlchemy connection string to use to connect to the database.
# (string value)
# Deprecated group/name - [DEFAULT]/sql_connection
# Deprecated group/name - [DATABASE]/sql_connection
# Deprecated group/name - [sql]/connection
#connection = <None>

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

# 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

# If True, transparently enables support for handling MySQL Cluster
# (NDB). (boolean value)
#mysql_enable_ndb = false

# 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)
# Deprecated group/name - [DEFAULT]/sql_max_retries
# Deprecated group/name - [DATABASE]/sql_max_retries
#max_retries = 10

# Interval between retries of opening a SQL connection. (integer
# value)
# Deprecated group/name - [DEFAULT]/sql_retry_interval
# Deprecated group/name - [DATABASE]/reconnect_interval
#retry_interval = 10

# If set, use this value for max_overflow with SQLAlchemy. (integer
# value)
# Deprecated group/name - [DEFAULT]/sql_max_overflow
# Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
#max_overflow = 50

# Verbosity of SQL debugging information: 0=None, 100=Everything.
# (integer value)
# Minimum value: 0
# Maximum value: 100
# Deprecated group/name - [DEFAULT]/sql_connection_debug
#connection_debug = 0

# Add Python stack traces to SQL as comment strings. (boolean value)
# Deprecated group/name - [DEFAULT]/sql_connection_trace
#connection_trace = false

# If set, use this value for pool_timeout with SQLAlchemy. (integer
# value)
# Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
#pool_timeout = <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 =


[discovery]

#
# From ironic_inspector
#

# The name of the Ironic driver used by the enroll hook when creating
# a new node in Ironic. (string value)
#enroll_node_driver = fake-hardware

# Additional fields to set on newly discovered nodes. (dict value)
#enroll_node_fields =

# IP version of BMC address that will be used when enrolling a new
# node in Ironic. Defaults to "4,6". Could be "4" (use v4 address
# only), "4,6" (v4 address have higher priority and if both addresses
# found v6 version is ignored), "6,4" (v6 is desired but fall back to
# v4 address for BMCs having v4 address, opposite to "4,6"), "6" (use
# v6 address only and ignore v4 version). (list value)
#enabled_bmc_address_version = 4,6


[dnsmasq_pxe_filter]

#
# From ironic_inspector
#

# The MAC address cache directory, exposed to dnsmasq.This directory
# is expected to be in exclusive control of the driver. (string value)
#dhcp_hostsdir = /var/lib/ironic-inspector/dhcp-hostsdir

# Purge the hostsdir upon driver initialization. Setting to false
# should only be performed when the deployment of inspector is such
# that there are multiple processes executing inside of the same host
# and namespace. In this case, the Operator is responsible for setting
# up a custom cleaning facility. (boolean value)
#purge_dhcp_hostsdir = true

# A (shell) command line to start the dnsmasq service upon filter
# initialization. Default: don't start. (string value)
#dnsmasq_start_command =

# A (shell) command line to stop the dnsmasq service upon inspector
# (error) exit. Default: don't stop. (string value)
#dnsmasq_stop_command =


[extra_hardware]

#
# From ironic_inspector
#

# If True, refuse to parse extra data if at least one record is too
# short. Additionally, remove the incoming "data" even if parsing
# failed. (boolean value)
#strict = false


[healthcheck]

#
# From ironic_inspector
#

# Enable the health check endpoint at /healthcheck. Note that this is
# unauthenticated. More information is available at
# https://docs.openstack.org/oslo.middleware/latest/reference/healthcheck_plugins.html.
# (boolean value)
#enabled = false

#
# From oslo.middleware.healthcheck
#

# DEPRECATED: The path to respond to healtcheck requests on. (string
# value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
#path = /healthcheck

# 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 =

# 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 =


[iptables]

#
# From ironic_inspector
#

# Interface on which dnsmasq listens, the default is for VM's. (string
# value)
#dnsmasq_interface = br-ctlplane

# iptables chain name to use. (string value)
#firewall_chain = ironic-inspector

# List of Ethernet Over InfiniBand interfaces on the Inspector host
# which are used for physical access to the DHCP network. Multiple
# interfaces would be attached to a bond or bridge specified in
# dnsmasq_interface. The MACs of the InfiniBand nodes which are not in
# desired state are going to be blocked based on the list of neighbor
# MACs on these interfaces. (list value)
#ethoib_interfaces =

# The IP version that will be used for iptables filter. Defaults to 4.
# (string value)
# Possible values:
# 4 - IPv4
# 6 - IPv6
#ip_version = 4


[ironic]

#
# From ironic_inspector
#

# Authentication URL (string value)
#auth_url = <None>

# Authentication type to load (string value)
# Deprecated group/name - [ironic]/auth_plugin
#auth_type = <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>

# Collect per-API call timing information. (boolean value)
#collect_timing = false

# The maximum number of retries that should be attempted for
# connection errors. (integer value)
#connect_retries = <None>

# Delay (in seconds) between two retries for connection errors. If not
# set, exponential retry starting with 0.5 seconds up to a maximum of
# 60 seconds is used. (floating point value)
#connect_retry_delay = <None>

# Optional domain ID to use with v3 and v2 parameters. It will be used
# for both the user and project domain in v3 and ignored in v2
# authentication. (string value)
#default_domain_id = <None>

# Optional domain name to use with v3 API and v2 parameters. It will
# be used for both the user and project domain in v3 and ignored in v2
# authentication. (string value)
#default_domain_name = <None>

# Domain ID to scope to (string value)
#domain_id = <None>

# Domain name to scope to (string value)
#domain_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>

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

# PEM encoded client certificate key file (string value)
#keyfile = <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>

# Maximum number of retries in case of conflict error (HTTP 409).
# (integer value)
#max_retries = 30

# 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>

# User's password (string value)
#password = <None>

# Domain ID containing project (string value)
#project_domain_id = <None>

# Domain name containing project (string value)
#project_domain_name = <None>

# Project ID to scope to (string value)
# Deprecated group/name - [ironic]/tenant_id
#project_id = <None>

# Project name to scope to (string value)
# Deprecated group/name - [ironic]/tenant_name
#project_name = <None>

# The default region_name for endpoint URL discovery. (string value)
#region_name = <None>

# Interval between retries in case of conflict error (HTTP 409).
# (integer value)
#retry_interval = 2

# The default service_name for endpoint URL discovery. (string value)
#service_name = <None>

# The default service_type for endpoint URL discovery. (string value)
#service_type = baremetal

# Log requests to multiple loggers. (boolean value)
#split_loggers = false

# The maximum number of retries that should be attempted for retriable
# HTTP status codes. (integer value)
#status_code_retries = <None>

# Delay (in seconds) between two retries for retriable status codes.
# If not set, exponential retry starting with 0.5 seconds up to a
# maximum of 60 seconds is used. (floating point value)
#status_code_retry_delay = <None>

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

# Tenant ID (string value)
#tenant_id = <None>

# Tenant Name (string value)
#tenant_name = <None>

# Timeout value for http requests (integer value)
#timeout = <None>

# ID of the trust to use as a trustee use (string value)
#trust_id = <None>

# User's domain id (string value)
#user_domain_id = <None>

# User's domain name (string value)
#user_domain_name = <None>

# User id (string value)
#user_id = <None>

# Username (string value)
# Deprecated group/name - [ironic]/user_name
#username = <None>

# List of interfaces, in order of preference, for endpoint URL. (list
# value)
#valid_interfaces = internal,public

# 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>


[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) 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>

# 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>


[mdns]

#
# From ironic_lib.mdns
#

# Number of attempts to register a service. Currently has to be larger
# than 1 because of race conditions in the zeroconf library. (integer
# value)
# Minimum value: 1
#registration_attempts = 5

# Number of attempts to lookup a service. (integer value)
# Minimum value: 1
#lookup_attempts = 3

# Additional parameters to pass for the registered service. (dict
# value)
#params =

# List of IP addresses of interfaces to use for mDNS. Defaults to all
# interfaces on the system. (list value)
#interfaces = <None>


[oslo_messaging_amqp]

#
# From oslo.messaging
#

# Name for the AMQP container. must be globally unique. Defaults to a
# generated UUID (string value)
#container_name = <None>

# Timeout for inactive connections (in seconds) (integer value)
#idle_timeout = 0

# Debug: dump AMQP frames to stdout (boolean value)
#trace = false

# Attempt to connect via SSL. If no other ssl-related parameters are
# given, it will use the system's CA-bundle to verify the server's
# certificate. (boolean value)
#ssl = false

# CA certificate PEM file used to verify the server's certificate
# (string value)
#ssl_ca_file =

# Self-identifying certificate PEM file for client authentication
# (string value)
#ssl_cert_file =

# Private key PEM file used to sign ssl_cert_file certificate
# (optional) (string value)
#ssl_key_file =

# Password for decrypting ssl_key_file (if encrypted) (string value)
#ssl_key_password = <None>

# By default SSL checks that the name in the server's certificate
# matches the hostname in the transport_url. In some configurations it
# may be preferable to use the virtual hostname instead, for example
# if the server uses the Server Name Indication TLS extension
# (rfc6066) to provide a certificate per virtual host. Set
# ssl_verify_vhost to True if the server's SSL certificate uses the
# virtual host name instead of the DNS name. (boolean value)
#ssl_verify_vhost = false

# Space separated list of acceptable SASL mechanisms (string value)
#sasl_mechanisms =

# Path to directory that contains the SASL configuration (string
# value)
#sasl_config_dir =

# Name of configuration file (without .conf suffix) (string value)
#sasl_config_name =

# SASL realm to use if no realm present in username (string value)
#sasl_default_realm =

# Seconds to pause before attempting to re-connect. (integer value)
# Minimum value: 1
#connection_retry_interval = 1

# Increase the connection_retry_interval by this many seconds after
# each unsuccessful failover attempt. (integer value)
# Minimum value: 0
#connection_retry_backoff = 2

# Maximum limit for connection_retry_interval +
# connection_retry_backoff (integer value)
# Minimum value: 1
#connection_retry_interval_max = 30

# Time to pause between re-connecting an AMQP 1.0 link that failed due
# to a recoverable error. (integer value)
# Minimum value: 1
#link_retry_delay = 10

# The maximum number of attempts to re-send a reply message which
# failed due to a recoverable error. (integer value)
# Minimum value: -1
#default_reply_retry = 0

# The deadline for an rpc reply message delivery. (integer value)
# Minimum value: 5
#default_reply_timeout = 30

# The deadline for an rpc cast or call message delivery. Only used
# when caller does not provide a timeout expiry. (integer value)
# Minimum value: 5
#default_send_timeout = 30

# The deadline for a sent notification message delivery. Only used
# when caller does not provide a timeout expiry. (integer value)
# Minimum value: 5
#default_notify_timeout = 30

# The duration to schedule a purge of idle sender links. Detach link
# after expiry. (integer value)
# Minimum value: 1
#default_sender_link_timeout = 600

# Indicates the addressing mode used by the driver.
# Permitted values:
# 'legacy'   - use legacy non-routable addressing
# 'routable' - use routable addresses
# 'dynamic'  - use legacy addresses if the message bus does not
# support routing otherwise use routable addressing (string value)
#addressing_mode = dynamic

# Enable virtual host support for those message buses that do not
# natively support virtual hosting (such as qpidd). When set to true
# the virtual host name will be added to all message bus addresses,
# effectively creating a private 'subnet' per virtual host. Set to
# False if the message bus supports virtual hosting using the
# 'hostname' field in the AMQP 1.0 Open performative as the name of
# the virtual host. (boolean value)
#pseudo_vhost = true

# address prefix used when sending to a specific server (string value)
#server_request_prefix = exclusive

# address prefix used when broadcasting to all servers (string value)
#broadcast_prefix = broadcast

# address prefix when sending to any server in group (string value)
#group_request_prefix = unicast

# Address prefix for all generated RPC addresses (string value)
#rpc_address_prefix = openstack.org/om/rpc

# Address prefix for all generated Notification addresses (string
# value)
#notify_address_prefix = openstack.org/om/notify

# Appended to the address prefix when sending a fanout message. Used
# by the message bus to identify fanout messages. (string value)
#multicast_address = multicast

# Appended to the address prefix when sending to a particular
# RPC/Notification server. Used by the message bus to identify
# messages sent to a single destination. (string value)
#unicast_address = unicast

# Appended to the address prefix when sending to a group of consumers.
# Used by the message bus to identify messages that should be
# delivered in a round-robin fashion across consumers. (string value)
#anycast_address = anycast

# Exchange name used in notification addresses.
# Exchange name resolution precedence:
# Target.exchange if set
# else default_notification_exchange if set
# else control_exchange if set
# else 'notify' (string value)
#default_notification_exchange = <None>

# Exchange name used in RPC addresses.
# Exchange name resolution precedence:
# Target.exchange if set
# else default_rpc_exchange if set
# else control_exchange if set
# else 'rpc' (string value)
#default_rpc_exchange = <None>

# Window size for incoming RPC Reply messages. (integer value)
# Minimum value: 1
#reply_link_credit = 200

# Window size for incoming RPC Request messages (integer value)
# Minimum value: 1
#rpc_server_credit = 100

# Window size for incoming Notification messages (integer value)
# Minimum value: 1
#notify_server_credit = 100

# Send messages of this type pre-settled.
# Pre-settled messages will not receive acknowledgement
# from the peer. Note well: pre-settled messages may be
# silently discarded if the delivery fails.
# Permitted values:
# 'rpc-call' - send RPC Calls pre-settled
# 'rpc-reply'- send RPC Replies pre-settled
# 'rpc-cast' - Send RPC Casts pre-settled
# 'notify'   - Send Notifications pre-settled
#  (multi valued)
#pre_settled = rpc-cast
#pre_settled = rpc-reply


[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

# DEPRECATED: Pool Size for Kafka Consumers (integer value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Driver no longer uses connection pool.
#pool_size = 10

# DEPRECATED: The pool size limit for connections expiration policy
# (integer value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Driver no longer uses connection pool.
#conn_pool_min_size = 2

# DEPRECATED: The time-to-live in sec of idle connections in the pool
# (integer value)
# This option is deprecated for removal.
# Its value may be silently ignored in the future.
# Reason: Driver no longer uses connection pool.
#conn_pool_ttl = 1200

# 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)
# Deprecated group/name - [DEFAULT]/notification_driver
#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)
# Deprecated group/name - [DEFAULT]/notification_transport_url
#transport_url = <None>

# AMQP topic used for OpenStack notifications. (list value)
# Deprecated group/name - [rpc_notifier2]/topics
# Deprecated group/name - [DEFAULT]/notification_topics
#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

# Connect over SSL. (boolean value)
# Deprecated group/name - [oslo_messaging_rabbit]/rabbit_use_ssl
#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)
# Deprecated group/name - [oslo_messaging_rabbit]/kombu_ssl_version
#ssl_version =

# SSL key file (valid only if SSL enabled). (string value)
# Deprecated group/name - [oslo_messaging_rabbit]/kombu_ssl_keyfile
#ssl_key_file =

# SSL cert file (valid only if SSL enabled). (string value)
# Deprecated group/name - [oslo_messaging_rabbit]/kombu_ssl_certfile
#ssl_cert_file =

# SSL certification authority file (valid only if SSL enabled).
# (string value)
# Deprecated group/name - [oslo_messaging_rabbit]/kombu_ssl_ca_certs
#ssl_ca_file =

# 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)
#ssl_enforce_fips_mode = false

# 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)
#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

# 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)
#rabbit_retry_interval = 1

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

# Maximum interval of RabbitMQ connection retries. Default is 30
# seconds. (integer value)
#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 durable
# by default so the amqp_durable_queues opion is ignored when this
# option enabled. (boolean value)
#rabbit_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_quroum_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_quroum_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. (integer value)
# Minimum value: 1
#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 = 2

# 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


[oslo_policy]

#
# From oslo.policy
#

# 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)
#enforce_scope = false

# 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 = false

# 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>


[pci_devices]

#
# From ironic_inspector
#

# An alias for PCI device identified by 'vendor_id' and 'product_id'
# fields. Format: {"vendor_id": "1234", "product_id": "5678", "name":
# "pci_dev1"} (multi valued)
#alias =


[port_physnet]

#
# From ironic_inspector
#

# Mapping of IP subnet CIDR to physical network. When the
# physnet_cidr_map processing hook is enabled the physical_network
# property of baremetal ports is populated based on this mapping.
# (list value)
#
# This option has a sample default set, which means that
# its actual default value may vary from the one documented
# below.
#cidr_map = 10.10.10.0/24:physnet_a,2001:db8::/64:physnet_b


[processing]

#
# From ironic_inspector
#

# Which MAC addresses to add as ports during introspection. Possible
# values: all (all MAC addresses), active (MAC addresses of NIC with
# IP addresses), pxe (only MAC address of NIC node PXE booted from,
# falls back to "active" if PXE MAC is not supplied by the ramdisk).
# (string value)
# Possible values:
# all - <No description provided>
# active - <No description provided>
# pxe - <No description provided>
# disabled - <No description provided>
#add_ports = pxe

# Which ports (already present on a node) to keep after introspection.
# Possible values: all (do not delete anything), present (keep ports
# which MACs were present in introspection data), added (keep only
# MACs that we added during introspection). (string value)
# Possible values:
# all - <No description provided>
# present - <No description provided>
# added - <No description provided>
#keep_ports = all

# Whether to overwrite existing values in node database. Disable this
# option to make introspection a non-destructive operation. (boolean
# value)
#overwrite_existing = true

# Comma-separated list of default hooks for processing pipeline. Hook
# 'scheduler' updates the node with the minimum properties required by
# the Nova scheduler. Hook 'validate_interfaces' ensures that valid
# NIC data was provided by the ramdisk. Do not exclude these two
# unless you really know what you're doing. (string value)
#default_processing_hooks = ramdisk_error,root_disk_selection,scheduler,validate_interfaces,capabilities,pci_devices

# Comma-separated list of enabled hooks for processing pipeline. The
# default for this is $default_processing_hooks, hooks can be added
# before or after the defaults like this:
# "prehook,$default_processing_hooks,posthook". (string value)
#processing_hooks = $default_processing_hooks

# If set, logs from ramdisk will be stored in this directory. (string
# value)
#ramdisk_logs_dir = <None>

# Whether to store ramdisk logs even if it did not return an error
# message (dependent upon "ramdisk_logs_dir" option being set).
# (boolean value)
#always_store_ramdisk_logs = false

# The name of the hook to run when inspector receives inspection
# information from a node it isn't already aware of. This hook is
# ignored by default. (string value)
#node_not_found_hook = <None>

# The storage backend for storing introspection data. Possible values
# are: 'none', 'database' and 'swift'. If set to 'none', introspection
# data will not be stored. (string value)
#store_data = none

# Whether to leave 1 GiB of disk size untouched for partitioning. Only
# has effect when used with the IPA as a ramdisk, for older ramdisk
# local_gb is calculated on the ramdisk side. (boolean value)
#disk_partitioning_spacing = true

# File name template for storing ramdisk logs. The following
# replacements can be used: {uuid} - node UUID or "unknown", {bmc} -
# node BMC address or "unknown", {dt} - current UTC date and time,
# {mac} - PXE booting MAC or "unknown". (string value)
#ramdisk_logs_filename_format = {uuid}_{dt:%Y%m%d-%H%M%S.%f}.tar.gz

# Whether to power off a node after introspection.Nodes in active or
# rescue states which submit introspection data will be left on if the
# feature is enabled via the 'permit_active_introspection'
# configuration option. (boolean value)
#power_off = true

# Whether to process nodes that are in running states. (boolean value)
#permit_active_introspection = false

# Whether to update the pxe_enabled value according to the
# introspection data. This option has no effect if
# [processing]overwrite_existing is set to False (boolean value)
#update_pxe_enabled = true


[pxe_filter]

#
# From ironic_inspector
#

# PXE boot filter driver to use, possible filters are: "iptables",
# "dnsmasq" and "noop". Set "noop " to disable the firewall filtering.
# (string value)
#driver = iptables

# Amount of time in seconds, after which repeat periodic update of the
# filter. (integer value)
# Minimum value: 0
#sync_period = 15

# By default inspector will open the DHCP server for any node when
# introspection is active. Opening DHCP for unknown MAC addresses when
# introspection is active allow for users to add nodes with no ports
# to ironic and have ironic-inspector enroll ports based on node
# introspection results. NOTE: If this option is True, nodes must have
# at least one enrolled port prior to introspection. (boolean value)
#deny_unknown_macs = false


[service_catalog]

#
# From ironic_inspector
#

# Authentication URL (string value)
#auth_url = <None>

# Authentication type to load (string value)
# Deprecated group/name - [service_catalog]/auth_plugin
#auth_type = <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>

# Collect per-API call timing information. (boolean value)
#collect_timing = false

# The maximum number of retries that should be attempted for
# connection errors. (integer value)
#connect_retries = <None>

# Delay (in seconds) between two retries for connection errors. If not
# set, exponential retry starting with 0.5 seconds up to a maximum of
# 60 seconds is used. (floating point value)
#connect_retry_delay = <None>

# Optional domain ID to use with v3 and v2 parameters. It will be used
# for both the user and project domain in v3 and ignored in v2
# authentication. (string value)
#default_domain_id = <None>

# Optional domain name to use with v3 API and v2 parameters. It will
# be used for both the user and project domain in v3 and ignored in v2
# authentication. (string value)
#default_domain_name = <None>

# Domain ID to scope to (string value)
#domain_id = <None>

# Domain name to scope to (string value)
#domain_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>

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

# PEM encoded client certificate key file (string value)
#keyfile = <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>

# 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>

# User's password (string value)
#password = <None>

# Domain ID containing project (string value)
#project_domain_id = <None>

# Domain name containing project (string value)
#project_domain_name = <None>

# Project ID to scope to (string value)
# Deprecated group/name - [service_catalog]/tenant_id
#project_id = <None>

# Project name to scope to (string value)
# Deprecated group/name - [service_catalog]/tenant_name
#project_name = <None>

# The default region_name for endpoint URL discovery. (string value)
#region_name = <None>

# The default service_name for endpoint URL discovery. (string value)
#service_name = <None>

# The default service_type for endpoint URL discovery. (string value)
#service_type = baremetal-introspection

# Log requests to multiple loggers. (boolean value)
#split_loggers = false

# The maximum number of retries that should be attempted for retriable
# HTTP status codes. (integer value)
#status_code_retries = <None>

# Delay (in seconds) between two retries for retriable status codes.
# If not set, exponential retry starting with 0.5 seconds up to a
# maximum of 60 seconds is used. (floating point value)
#status_code_retry_delay = <None>

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

# Tenant ID (string value)
#tenant_id = <None>

# Tenant Name (string value)
#tenant_name = <None>

# Timeout value for http requests (integer value)
#timeout = <None>

# ID of the trust to use as a trustee use (string value)
#trust_id = <None>

# User's domain id (string value)
#user_domain_id = <None>

# User's domain name (string value)
#user_domain_name = <None>

# User id (string value)
#user_id = <None>

# Username (string value)
# Deprecated group/name - [service_catalog]/user_name
#username = <None>

# List of interfaces, in order of preference, for endpoint URL. (list
# value)
#valid_interfaces = internal,public

# 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>


[ssl]

#
# From oslo.service.sslutils
#

# CA certificate file to use to verify connecting clients. (string
# value)
# Deprecated group/name - [DEFAULT]/ssl_ca_file
#ca_file = <None>

# Certificate file to use when starting the server securely. (string
# value)
# Deprecated group/name - [DEFAULT]/ssl_cert_file
#cert_file = <None>

# Private key file to use when starting the server securely. (string
# value)
# Deprecated group/name - [DEFAULT]/ssl_key_file
#key_file = <None>

# 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)
#version = <None>

# Sets the list of available ciphers. value should be a string in the
# OpenSSL cipher list format. (string value)
#ciphers = <None>


[swift]

#
# From ironic_inspector
#

# Authentication URL (string value)
#auth_url = <None>

# Authentication type to load (string value)
# Deprecated group/name - [swift]/auth_plugin
#auth_type = <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>

# Collect per-API call timing information. (boolean value)
#collect_timing = false

# The maximum number of retries that should be attempted for
# connection errors. (integer value)
#connect_retries = <None>

# Delay (in seconds) between two retries for connection errors. If not
# set, exponential retry starting with 0.5 seconds up to a maximum of
# 60 seconds is used. (floating point value)
#connect_retry_delay = <None>

# Default Swift container to use when creating objects. (string value)
#container = ironic-inspector

# Optional domain ID to use with v3 and v2 parameters. It will be used
# for both the user and project domain in v3 and ignored in v2
# authentication. (string value)
#default_domain_id = <None>

# Optional domain name to use with v3 API and v2 parameters. It will
# be used for both the user and project domain in v3 and ignored in v2
# authentication. (string value)
#default_domain_name = <None>

# Number of seconds that the Swift object will last before being
# deleted. (set to 0 to never delete the object). (integer value)
#delete_after = 0

# Domain ID to scope to (string value)
#domain_id = <None>

# Domain name to scope to (string value)
#domain_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>

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

# PEM encoded client certificate key file (string value)
#keyfile = <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>

# 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>

# User's password (string value)
#password = <None>

# Domain ID containing project (string value)
#project_domain_id = <None>

# Domain name containing project (string value)
#project_domain_name = <None>

# Project ID to scope to (string value)
# Deprecated group/name - [swift]/tenant_id
#project_id = <None>

# Project name to scope to (string value)
# Deprecated group/name - [swift]/tenant_name
#project_name = <None>

# The default region_name for endpoint URL discovery. (string value)
#region_name = <None>

# The default service_name for endpoint URL discovery. (string value)
#service_name = <None>

# The default service_type for endpoint URL discovery. (string value)
#service_type = object-store

# Log requests to multiple loggers. (boolean value)
#split_loggers = false

# The maximum number of retries that should be attempted for retriable
# HTTP status codes. (integer value)
#status_code_retries = <None>

# Delay (in seconds) between two retries for retriable status codes.
# If not set, exponential retry starting with 0.5 seconds up to a
# maximum of 60 seconds is used. (floating point value)
#status_code_retry_delay = <None>

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

# Tenant ID (string value)
#tenant_id = <None>

# Tenant Name (string value)
#tenant_name = <None>

# Timeout value for http requests (integer value)
#timeout = <None>

# ID of the trust to use as a trustee use (string value)
#trust_id = <None>

# User's domain id (string value)
#user_domain_id = <None>

# User's domain name (string value)
#user_domain_name = <None>

# User id (string value)
#user_id = <None>

# Username (string value)
# Deprecated group/name - [swift]/user_name
#username = <None>

# List of interfaces, in order of preference, for endpoint URL. (list
# value)
#valid_interfaces = internal,public

# 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>