# Cyborg Configuration Sample

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

The sample configuration can also be downloaded in file form.

    [DEFAULT]

    #
    # From cyborg
    #

    # Used if there is a formatting error when generating an
    # exception message (a programming error). If True, raise an
    # exception; if False, use the unformatted message. (boolean
    # value)
    #fatal_exception_format_errors = false

    # 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. (host address
    # value)
    #
    # This option has a sample default set, which means that
    # its actual default value may vary from the one documented
    # below.
    #host = localhost

    # Default interval (in seconds) for running periodic tasks.
    # (integer value)
    #periodic_interval = 60

    # This option specifies the size of the pool of threads used
    # by API to do async jobs.It is possible to limit the number
    # of concurrent connections using this option. (integer value)
    #thread_pool_size = 10

    # This option specifies the timeout of async job for ARQ bind.
    # (integer value)
    #bind_timeout = 60

    # Directory where the cyborg python module is installed.
    # (string value)
    #
    # This option has a sample default set, which means that
    # its actual default value may vary from the one documented
    # below.
    #pybasedir = /usr/lib/python/site-packages/cyborg/cyborg

    # Directory where cyborg binaries are installed. (string
    # value)
    #bindir = $pybasedir/bin

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

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

    # DEPRECATED: 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)
    # This option is deprecated for removal.
    # Its value may be silently ignored in the future.
    # Reason: This function is known to have bene broken for long
    # time, and depends on the unmaintained library
    #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

    # (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,amqplib=WARN,boto=WARN,qpid=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.periodic_task
    #

    # Some periodic tasks can be run in a separate process. Should
    # we run them here? (boolean value)
    #run_external_periodic_tasks = true

    #
    # From oslo.service.service
    #

    # 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

    [agent]

    #
    # From cyborg
    #

    # The accelerator drivers enabled on this agent. Such as
    # intel_fpga_driver, inspur_fpga_driver,nvidia_gpu_driver,
    # intel_qat_driver,inspur_nvme_ssd_driver, xilinx_fpga_driver,
    # etc. (list value)
    #enabled_drivers = fake_driver

    [api]

    #
    # From cyborg
    #

    # The IP address on which cyborg-api listens. (host address
    # value)
    #host_ip = 127.0.0.1

    # The TCP port on which cyborg-api listens. (port value)
    # Minimum value: 0
    # Maximum value: 65535
    #port = 6666

    # Number of workers for OpenStack Cyborg API service. The
    # default is equal to the number of CPUs available if that can
    # be determined, else a default worker count of 1 is returned.
    # (integer value)
    #api_workers = <None>

    # Enable the integrated stand-alone API to service requests
    # via HTTPS instead of HTTP. If there is a front-end service
    # performing HTTPS offloading from the service, this option
    # should be False; note, you will want to change public API
    # endpoint to represent SSL termination URL with
    # 'public_endpoint' option. (boolean value)
    #enable_ssl_api = false

    # Public URL to use when building the links to the API
    # resources (for example, "https://cyborg.rocks:6666"). If
    # None the links will be built using the request's host URL.
    # If the API is operating behind a proxy, you will want to
    # change this to represent the proxy's URL. Defaults to None.
    # (string value)
    #public_endpoint = <None>

    # Configuration file for WSGI definition of API. (string
    # value)
    #api_paste_config = api-paste.ini

    [database]

    #
    # From cyborg
    #

    # MySQL engine to use. (string value)
    #mysql_engine = InnoDB

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

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

    [glance]
    # Configuration options for the Image service

    #
    # From cyborg
    #

    #
    # Enable glance operation retries.
    #
    # Specifies the number of retries when uploading / downloading
    # an image to / from glance. 0 means no retries.
    #  (integer value)
    # Minimum value: 0
    #num_retries = 0

    #
    # Enable image signature verification.
    #
    # cyborg uses the image signature metadata from glance and
    # verifies the signature
    # of a signed image while downloading that image. If the image
    # signature cannot
    # be verified or if the image signature metadata is either
    # incomplete or
    # unavailable, then cyborg will not boot the image and instead
    # will place the
    # instance into an error state. This provides end users with
    # stronger assurances
    # of the integrity of the image data they are using to create
    # servers.
    #
    # Related options:
    #
    # * The options in the `key_manager` group, as the key_manager
    # is used
    #   for the signature validation.
    # * Both enable_certificate_validation and
    # default_trusted_certificate_ids
    #   below depend on this option being enabled.
    #  (boolean value)
    #verify_glance_signatures = false

    # DEPRECATED:
    # Enable certificate validation for image signature
    # verification.
    #
    # During image signature verification cyborg will first verify
    # the validity of
    # the image's signing certificate using the set of trusted
    # certificates
    # associated with the instance. If certificate validation
    # fails, signature
    # verification will not be performed and the instance will be
    # placed into an
    # error state. This provides end users with stronger
    # assurances that the image
    # data is unmodified and trustworthy. If left disabled, image
    # signature
    # verification can still occur but the end user will not have
    # any assurance that
    # the signing certificate used to generate the image signature
    # is still
    # trustworthy.
    #
    # Related options:
    #
    # * This option only takes effect if verify_glance_signatures
    # is enabled.
    # * The value of default_trusted_certificate_ids may be used
    # when this option
    #   is enabled.
    #  (boolean value)
    # This option is deprecated for removal since 16.0.0.
    # Its value may be silently ignored in the future.
    # Reason:
    # This option is intended to ease the transition for
    # deployments leveraging
    # image signature verification. The intended state long-term
    # is for signature
    # verification and certificate validation to always happen
    # together.
    #enable_certificate_validation = false

    #
    # List of certificate IDs for certificates that should be
    # trusted.
    #
    # May be used as a default list of trusted certificate IDs for
    # certificate
    # validation. The value of this option will be ignored if the
    # user provides a
    # list of trusted certificate IDs with an instance API
    # request. The value of
    # this option will be persisted with the instance data if
    # signature verification
    # and certificate validation are enabled and if the user did
    # not provide an
    # alternative list. If left empty when certificate validation
    # is enabled the
    # user must provide a list of trusted certificate IDs
    # otherwise certificate
    # validation will fail.
    #
    # Related options:
    #
    # * The value of this option may be used if both
    # verify_glance_signatures and
    #   enable_certificate_validation are enabled.
    #  (list value)
    #default_trusted_certificate_ids =

    # Enable or disable debug logging with glanceclient. (boolean
    # value)
    #debug = false

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

    # PEM encoded client certificate cert file (string value)
    #certfile = <None>

    # PEM encoded client certificate key file (string value)
    #keyfile = <None>

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

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

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

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

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

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

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

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

    # Always use this endpoint URL for requests for this client.
    # NOTE: The unversioned endpoint should be specified here; to
    # request a particular API version, use the `version`, `min-
    # version`, and/or `max-version` options. (string value)
    #endpoint_override = <None>

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

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

    # List of retriable HTTP status codes that should be retried.
    # If not set default to  [503] (list value)
    #retriable_status_codes = <None>

    [gpu_devices]
    # This is used to config vGPU types for nvidia GPU devices.
    #

    #
    # From cyborg
    #

    #
    # The vGPU types enabled in the compute node.
    #
    # Cyborg supports multiple vGPU types in one host. Usually, a
    # single physical
    # GPU can only set one vgpu type. Some pGPUs (e.g. NVIDIA GRID
    # K1) support
    # multiple vGPU types.
    #
    # If more than one single vGPU type are provided, then for
    # each
    # *vGPU type*, you must add an additional section
    # ``[vgpu_$(VGPU_TYPE)]`` with
    # a single configuration option ``device_addresses`` to assign
    # this type to
    # the target physical GPU(s). PGPUs should be configured
    # explictly now, we will
    # improve this after we implement the enable/disable
    # interface.
    #
    # If the same PCI address is provided for two different types,
    # cyborg-agent will
    # return an InvalidGPUConfig exception at restart.
    #
    # An example is as the following::
    #
    #     [gpu_devices]
    #     enabled_vgpu_types = nvidia-35, nvidia-36
    #
    #     [vgpu_nvidia-35]
    #     device_addresses = 0000:84:00.0,0000:85:00.0
    #
    #     [vgpu_nvidia-36]
    #     device_addresses = 0000:86:00.0
    #
    #  (list value)
    #enabled_vgpu_types =

    [keystone]
    # Configuration options for the identity service

    #
    # From cyborg
    #

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

    # PEM encoded client certificate cert file (string value)
    #certfile = <None>

    # PEM encoded client certificate key file (string value)
    #keyfile = <None>

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

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

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

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

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

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

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

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

    # Always use this endpoint URL for requests for this client.
    # NOTE: The unversioned endpoint should be specified here; to
    # request a particular API version, use the `version`, `min-
    # version`, and/or `max-version` options. (string value)
    #endpoint_override = <None>

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

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

    # List of retriable HTTP status codes that should be retried.
    # If not set default to  [503] (list value)
    #retriable_status_codes = <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) 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>

    [nic_devices]
    # This is used to config specific nic devices.
    #

    #
    # From cyborg
    #

    #   (list value)
    #enabled_nic_types =

    [nova]

    #
    # From cyborg
    #

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

    # PEM encoded client certificate cert file (string value)
    #certfile = <None>

    # PEM encoded client certificate key file (string value)
    #keyfile = <None>

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

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

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

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

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

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

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

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

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

    # Domain name to scope to (string value)
    #domain_name = <None>

    # Project ID to scope to (string value)
    #project_id = <None>

    # Project name to scope to (string value)
    #project_name = <None>

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

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

    # ID of the trust to use as a trustee use (string value)
    #trust_id = <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>

    # User's user ID (string value)
    #user_id = <None>

    # User's username (string value)
    # Deprecated group/name - [nova]/user_name
    #username = <None>

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

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

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

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

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

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

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

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

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

    # Always use this endpoint URL for requests for this client.
    # NOTE: The unversioned endpoint should be specified here; to
    # request a particular API version, use the `version`, `min-
    # version`, and/or `max-version` options. (string value)
    #endpoint_override = <None>

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

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

    # List of retriable HTTP status codes that should be retried.
    # If not set default to  [503] (list value)
    #retriable_status_codes = <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 =

    # 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

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

    [placement]

    #
    # From cyborg
    #

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

    # PEM encoded client certificate cert file (string value)
    #certfile = <None>

    # PEM encoded client certificate key file (string value)
    #keyfile = <None>

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

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

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

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

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

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

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

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

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

    # Domain name to scope to (string value)
    #domain_name = <None>

    # Project ID to scope to (string value)
    #project_id = <None>

    # Project name to scope to (string value)
    #project_name = <None>

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

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

    # ID of the trust to use as a trustee use (string value)
    #trust_id = <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>

    # User's user ID (string value)
    #user_id = <None>

    # User's username (string value)
    # Deprecated group/name - [placement]/user_name
    #username = <None>

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

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

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

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

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

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

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

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

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

    # Always use this endpoint URL for requests for this client.
    # NOTE: The unversioned endpoint should be specified here; to
    # request a particular API version, use the `version`, `min-
    # version`, and/or `max-version` options. (string value)
    #endpoint_override = <None>

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

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

    # List of retriable HTTP status codes that should be retried.
    # If not set default to  [503] (list value)
    #retriable_status_codes = <None>

    [service_user]
    #
    # Configuration options for service to service authentication
    # using a service
    # token. These options allow sending a service token along
    # with the user's token
    # when contacting external REST APIs.

    #
    # From cyborg
    #

    #
    # When True, if sending a user token to a REST API, also send
    # a service token.
    #  (boolean value)
    #send_service_user_token = false

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

    # PEM encoded client certificate cert file (string value)
    #certfile = <None>

    # PEM encoded client certificate key file (string value)
    #keyfile = <None>

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

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

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

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

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

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

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

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

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

    # Domain name to scope to (string value)
    #domain_name = <None>

    # Project ID to scope to (string value)
    #project_id = <None>

    # Project name to scope to (string value)
    #project_name = <None>

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

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

    # ID of the trust to use as a trustee use (string value)
    #trust_id = <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>

    # User's user ID (string value)
    #user_id = <None>

    # User's username (string value)
    # Deprecated group/name - [service_user]/user_name
    #username = <None>

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

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

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

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

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

    [ssl]

    #
    # From oslo.service.sslutils
    #

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

this page last updated: 2026-06-04 00:46:15

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