Chapter 5. ironic


The following chapter contains information about the configuration options in the ironic service.

5.1. ironic.conf

This section contains options for the /etc/ironic/ironic.conf file.

5.1.1. DEFAULT

The following table outlines the options available under the [DEFAULT] group in the /etc/ironic/ironic.conf file.

.

Configuration option = Default valueTypeDescription

auth_strategy = keystone

string value

Authentication strategy used by ironic-api. "noauth" should not be used in a production environment because all authentication will be disabled.

backdoor_port = None

string value

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.

backdoor_socket = None

string value

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.

bindir = $pybasedir/bin

string value

Directory where ironic binaries are installed.

conn_pool_min_size = 2

integer value

The pool size limit for connections expiration policy

conn_pool_ttl = 1200

integer value

The time-to-live in sec of idle connections in the pool

control_exchange = openstack

string value

The default exchange under which topics are scoped. May be overridden by an exchange name specified in the transport_url option.

debug = False

boolean value

If set to true, the logging level will be set to DEBUG instead of the default INFO level.

debug_tracebacks_in_api = False

boolean value

Return server tracebacks in the API response for any error responses. WARNING: this is insecure and should not be used in a production environment.

default_bios_interface = None

string value

Default bios interface to be used for nodes that do not have bios_interface field set. A complete list of bios interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.bios" entrypoint.

default_boot_interface = None

string value

Default boot interface to be used for nodes that do not have boot_interface field set. A complete list of boot interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.boot" entrypoint.

default_console_interface = None

string value

Default console interface to be used for nodes that do not have console_interface field set. A complete list of console interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.console" entrypoint.

default_deploy_interface = None

string value

Default deploy interface to be used for nodes that do not have deploy_interface field set. A complete list of deploy interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.deploy" entrypoint.

default_inspect_interface = None

string value

Default inspect interface to be used for nodes that do not have inspect_interface field set. A complete list of inspect interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.inspect" entrypoint.

default_log_levels = ['amqp=WARNING', 'amqplib=WARNING', 'qpid.messaging=INFO', 'oslo.messaging=INFO', 'oslo_messaging=INFO', 'sqlalchemy=WARNING', 'stevedore=INFO', 'eventlet.wsgi.server=INFO', 'iso8601=WARNING', 'requests=WARNING', 'glanceclient=WARNING', 'urllib3.connectionpool=WARNING', 'keystonemiddleware.auth_token=INFO', 'keystoneauth.session=INFO', 'openstack=WARNING', 'oslo_policy=WARNING', 'oslo_concurrency.lockutils=WARNING']

list value

List of package logging levels in logger=LEVEL pairs. This option is ignored if log_config_append is set.

default_management_interface = None

string value

Default management interface to be used for nodes that do not have management_interface field set. A complete list of management interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.management" entrypoint.

default_network_interface = None

string value

Default network interface to be used for nodes that do not have network_interface field set. A complete list of network interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.network" entrypoint.

default_portgroup_mode = active-backup

string value

Default mode for portgroups. Allowed values can be found in the linux kernel documentation on bonding: https://www.kernel.org/doc/Documentation/networking/bonding.txt.

default_power_interface = None

string value

Default power interface to be used for nodes that do not have power_interface field set. A complete list of power interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.power" entrypoint.

default_raid_interface = None

string value

Default raid interface to be used for nodes that do not have raid_interface field set. A complete list of raid interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.raid" entrypoint.

default_rescue_interface = None

string value

Default rescue interface to be used for nodes that do not have rescue_interface field set. A complete list of rescue interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.rescue" entrypoint.

default_resource_class = None

string value

Resource class to use for new nodes when no resource class is provided in the creation request.

default_storage_interface = noop

string value

Default storage interface to be used for nodes that do not have storage_interface field set. A complete list of storage interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.storage" entrypoint.

default_vendor_interface = None

string value

Default vendor interface to be used for nodes that do not have vendor_interface field set. A complete list of vendor interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.vendor" entrypoint.

enabled_bios_interfaces = ['no-bios', 'redfish']

list value

Specify the list of bios interfaces to load during service initialization. Missing bios interfaces, or bios interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one bios interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented bios interfaces. A complete list of bios interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.bios" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled bios interfaces on every ironic-conductor service.

enabled_boot_interfaces = ['ipxe', 'pxe', 'redfish-virtual-media']

list value

Specify the list of boot interfaces to load during service initialization. Missing boot interfaces, or boot interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one boot interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented boot interfaces. A complete list of boot interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.boot" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled boot interfaces on every ironic-conductor service.

enabled_console_interfaces = ['no-console']

list value

Specify the list of console interfaces to load during service initialization. Missing console interfaces, or console interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one console interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented console interfaces. A complete list of console interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.console" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled console interfaces on every ironic-conductor service.

enabled_deploy_interfaces = ['direct', 'ramdisk']

list value

Specify the list of deploy interfaces to load during service initialization. Missing deploy interfaces, or deploy interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one deploy interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented deploy interfaces. A complete list of deploy interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.deploy" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled deploy interfaces on every ironic-conductor service.

enabled_hardware_types = ['ipmi', 'redfish']

list value

Specify the list of hardware types to load during service initialization. Missing hardware types, or hardware types which fail to initialize, will prevent the conductor service from starting. This option defaults to a recommended set of production-oriented hardware types. A complete list of hardware types present on your system may be found by enumerating the "ironic.hardware.types" entrypoint.

enabled_inspect_interfaces = ['no-inspect', 'redfish']

list value

Specify the list of inspect interfaces to load during service initialization. Missing inspect interfaces, or inspect interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one inspect interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented inspect interfaces. A complete list of inspect interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.inspect" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled inspect interfaces on every ironic-conductor service.

enabled_management_interfaces = None

list value

Specify the list of management interfaces to load during service initialization. Missing management interfaces, or management interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one management interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented management interfaces. A complete list of management interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.management" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled management interfaces on every ironic-conductor service.

enabled_network_interfaces = ['flat', 'noop']

list value

Specify the list of network interfaces to load during service initialization. Missing network interfaces, or network interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one network interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented network interfaces. A complete list of network interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.network" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled network interfaces on every ironic-conductor service.

enabled_power_interfaces = None

list value

Specify the list of power interfaces to load during service initialization. Missing power interfaces, or power interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one power interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented power interfaces. A complete list of power interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.power" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled power interfaces on every ironic-conductor service.

enabled_raid_interfaces = ['agent', 'no-raid', 'redfish']

list value

Specify the list of raid interfaces to load during service initialization. Missing raid interfaces, or raid interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one raid interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented raid interfaces. A complete list of raid interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.raid" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled raid interfaces on every ironic-conductor service.

enabled_rescue_interfaces = ['no-rescue']

list value

Specify the list of rescue interfaces to load during service initialization. Missing rescue interfaces, or rescue interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one rescue interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented rescue interfaces. A complete list of rescue interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.rescue" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled rescue interfaces on every ironic-conductor service.

enabled_storage_interfaces = ['cinder', 'noop']

list value

Specify the list of storage interfaces to load during service initialization. Missing storage interfaces, or storage interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one storage interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented storage interfaces. A complete list of storage interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.storage" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled storage interfaces on every ironic-conductor service.

enabled_vendor_interfaces = ['ipmitool', 'redfish', 'no-vendor']

list value

Specify the list of vendor interfaces to load during service initialization. Missing vendor interfaces, or vendor interfaces which fail to initialize, will prevent the ironic-conductor service from starting. At least one vendor interface that is supported by each enabled hardware type must be enabled here, or the ironic-conductor service will not start. Must not be an empty list. The default value is a recommended set of production-oriented vendor interfaces. A complete list of vendor interfaces present on your system may be found by enumerating the "ironic.hardware.interfaces.vendor" entrypoint. When setting this value, please make sure that every enabled hardware type will have the same set of enabled vendor interfaces on every ironic-conductor service.

esp_image = None

string value

Path to EFI System Partition image file. This file is recommended for creating UEFI bootable ISO images efficiently. ESP image should contain a FAT12/16/32-formatted file system holding EFI boot loaders (e.g. GRUB2) for each hardware architecture ironic needs to boot. This option is only used when neither ESP nor ISO deploy image is configured to the node being deployed in which case ironic will attempt to fetch ESP image from the configured location or extract ESP image from UEFI-bootable deploy ISO image.

executor_thread_pool_size = 64

integer value

Size of executor thread pool when executor is threading or eventlet.

fatal_deprecations = False

boolean value

Enables or disables fatal status of deprecations.

force_raw_images = True

boolean value

If True, convert backing images to "raw" disk image format.

graceful_shutdown_timeout = 60

integer value

Specify a timeout after which a gracefully shutdown server will exit. Zero value means endless wait.

grub_config_path = EFI/BOOT/grub.cfg

string value

GRUB2 configuration file location on the UEFI ISO images produced by ironic. The default value is usually incorrect and should not be relied on. If you use a GRUB2 image from a certain distribution, use a distribution-specific path here, e.g. EFI/ubuntu/grub.cfg

grub_config_template = $pybasedir/common/grub_conf.template

string value

Template file for grub configuration file.

hash_partition_exponent = 5

integer value

Exponent to determine number of hash partitions to use when distributing load across conductors. Larger values will result in more even distribution of load and less load when rebalancing the ring, but more memory usage. Number of partitions per conductor is (2^hash_partition_exponent). This determines the granularity of rebalancing: given 10 hosts, and an exponent of the 2, there are 40 partitions in the ring.A few thousand partitions should make rebalancing smooth in most cases. The default is suitable for up to a few hundred conductors. Configuring for too many partitions has a negative impact on CPU usage.

hash_ring_algorithm = md5

string value

Hash function to use when building the hash ring. If running on a FIPS system, do not use md5. WARNING: all ironic services in a cluster MUST use the same algorithm at all times. Changing the algorithm requires an offline update.

hash_ring_reset_interval = 15

integer value

Time (in seconds) after which the hash ring is considered outdated and is refreshed on the next access.

host = <based on operating system>

string value

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 (will be removed in the Stein release), a valid hostname, FQDN, or IP address.

http_basic_auth_user_file = /etc/ironic/htpasswd

string value

Path to Apache format user authentication file used when auth_strategy=http_basic

image_download_concurrency = 20

integer value

How many image downloads and raw format conversions to run in parallel. Only affects image caches.

`instance_format = [instance: %(uuid)s] `

string value

The format for an instance that is passed with the log message.

`instance_uuid_format = [instance: %(uuid)s] `

string value

The format for an instance UUID that is passed with the log message.

isolinux_bin = /usr/lib/syslinux/isolinux.bin

string value

Path to isolinux binary file.

isolinux_config_template = $pybasedir/common/isolinux_config.template

string value

Template file for isolinux configuration file.

ldlinux_c32 = None

string value

Path to ldlinux.c32 file. This file is required for syslinux 5.0 or later. If not specified, the file is looked for in "/usr/lib/syslinux/modules/bios/ldlinux.c32" and "/usr/share/syslinux/ldlinux.c32".

log-config-append = None

string value

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

log-date-format = %Y-%m-%d %H:%M:%S

string value

Defines the format string for %%(asctime)s in log records. Default: %(default)s . This option is ignored if log_config_append is set.

log-dir = None

string value

(Optional) The base directory used for relative log_file paths. This option is ignored if log_config_append is set.

log-file = None

string value

(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.

log_in_db_max_size = 4096

integer value

Max number of characters of any node last_error/maintenance_reason pushed to database.

log_options = True

boolean value

Enables or disables logging values of all registered options when starting a service (at DEBUG level).

log_rotate_interval = 1

integer value

The amount of time before the log files are rotated. This option is ignored unless log_rotation_type is set to "interval".

log_rotate_interval_type = days

string value

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.

log_rotation_type = none

string value

Log rotation type.

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

string value

Format string to use for log messages with context. Used by oslo_log.formatters.ContextFormatter

logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d

string value

Additional data to append to log message when logging level for the message is DEBUG. Used by oslo_log.formatters.ContextFormatter

logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s

string value

Format string to use for log messages when context is undefined. Used by oslo_log.formatters.ContextFormatter

logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s

string value

Prefix each line of exception output with this format. Used by oslo_log.formatters.ContextFormatter

logging_user_identity_format = %(user)s %(project)s %(domain)s %(system_scope)s %(user_domain)s %(project_domain)s

string value

Defines the format string for %(user_identity)s that is used in logging_context_format_string. Used by oslo_log.formatters.ContextFormatter

max_logfile_count = 30

integer value

Maximum number of rotated log files.

max_logfile_size_mb = 200

integer value

Log file maximum size in MB. This option is ignored if "log_rotation_type" is not set to "size".

minimum_memory_wait_retries = 6

integer value

Number of retries to hold onto the worker before failing or returning the thread to the pool if the conductor can automatically retry.

minimum_memory_wait_time = 15

integer value

Seconds to wait between retries for free memory before launching the process. This, combined with memory_wait_retries allows the conductor to determine how long we should attempt to directly retry.

minimum_memory_warning_only = False

boolean value

Setting to govern if Ironic should only warn instead of attempting to hold back the request in order to prevent the exhaustion of system memory.

minimum_required_memory = 1024

integer value

Minimum memory in MiB for the system to have available prior to starting a memory intensive process on the conductor.

my_ip = <based on operating system>

string value

IPv4 address of this host. If unset, will determine the IP programmatically. If unable to do so, will use "127.0.0.1". NOTE: This field does accept an IPv6 address as an override for templates and URLs, however it is recommended that [DEFAULT]my_ipv6 is used along with DNS names for service URLs for dual-stack environments.

my_ipv6 = None

string value

IP address of this host using IPv6. This value must be supplied via the configuration and cannot be adequately programmatically determined like the [DEFAULT]my_ip parameter for IPv4.

notification_level = None

string value

Specifies the minimum level for which to send notifications. If not set, no notifications will be sent. The default is for this option to be unset.

parallel_image_downloads = True

boolean value

Run image downloads and raw format conversions in parallel.

pecan_debug = False

boolean value

Enable pecan debug mode. WARNING: this is insecure and should not be used in a production environment.

pin_release_version = None

string value

Used for rolling upgrades. Setting this option downgrades (or pins) the Bare Metal API, the internal ironic RPC communication, and the database objects to their respective versions, so they are compatible with older services. When doing a rolling upgrade from version N to version N+1, set (to pin) this to N. To unpin (default), leave it unset and the latest versions will be used.

publish_errors = False

boolean value

Enables or disables publication of error events.

pybasedir = /usr/lib/python3.9/site-packages/ironic

string value

Directory where the ironic python module is installed.

rate_limit_burst = 0

integer value

Maximum number of logged messages per rate_limit_interval.

rate_limit_except_level = CRITICAL

string value

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.

rate_limit_interval = 0

integer value

Interval, number of seconds, of log rate limiting.

raw_image_growth_factor = 2.0

floating point value

The scale factor used for estimating the size of a raw image converted from compact image formats such as QCOW2. Default is 2.0, must be greater than 1.0.

rbac_service_project_name = service

string value

The project name utilized for Role Based Access Control checks for the reserved service project. This project is utilized for services to have accounts for cross-service communication. Often these accounts require higher levels of access, and effectively this permits accounts from the service to not be restricted to project scoping of responses. i.e. The service project user with a service role will be able to see nodes across all projects, similar to System scoped access. If not set to a value, and all service role access will be filtered matching an owner or lessee, if applicable. If an operator wishes to make behavior visible for all service role users across all projects, then a custom policy must be used to override the default "service_role" rule. It should be noted that the value of "service" is a default convention for OpenStack deployments, but the requsite access and details around end configuration are largely up to an operator if they are doing an OpenStack deployment manually.

rbac_service_role_elevated_access = False

boolean value

Enable elevated access for users with service role belonging to the rbac_service_project_name project when using default policy. The default setting of disabled causes all service role requests to be scoped to the project the service account belongs to.

rootwrap_config = /etc/ironic/rootwrap.conf

string value

Path to the rootwrap configuration file to use for running commands as root.

rpc_conn_pool_size = 30

integer value

Size of RPC connection pool.

rpc_ping_enabled = False

boolean value

Add an endpoint to answer to ping calls. Endpoint is named oslo_rpc_server_ping

rpc_response_timeout = 60

integer value

Seconds to wait for a response from a call.

rpc_transport = oslo

string value

Which RPC transport implementation to use between conductor and API services

run_external_periodic_tasks = True

boolean value

Some periodic tasks can be run in a separate process. Should we run them here?

state_path = $pybasedir

string value

Top-level directory for maintaining ironic’s state.

syslog-log-facility = LOG_USER

string value

Syslog facility to receive log lines. This option is ignored if log_config_append is set.

tempdir = /tmp

string value

Temporary working directory, default is Python temp dir.

transport_url = rabbit://

string value

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

use-journal = False

boolean value

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.

use-json = False

boolean value

Use JSON formatting for logging. This option is ignored if log_config_append is set.

use-syslog = False

boolean value

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.

use_eventlog = False

boolean value

Log output to Windows Event Log.

use_stderr = False

boolean value

Log output to standard error. This option is ignored if log_config_append is set.

versioned_notifications_topics = ['ironic_versioned_notifications']

list value

Specifies the topics for the versioned notifications issued by Ironic.

The default value is fine for most deployments and rarely needs to be changed. However, if you have a third-party service that consumes versioned notifications, it might be worth getting a topic for that service. Ironic will send a message containing a versioned notification payload to each topic queue in this list.

The list of versioned notifications is visible in https://docs.openstack.org/ironic/latest/admin/notifications.html

watch-log-file = False

boolean value

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.

webserver_connection_timeout = 60

integer value

Connection timeout when accessing remote web servers with images.

webserver_verify_ca = True

string value

CA certificates to be used for certificate verification. This can be either a Boolean value or a path to a CA_BUNDLE file.If set to True, the certificates present in the standard path are used to verify the host certificates.If set to False, the conductor will ignore verifying the SSL certificate presented by the host.If it"s a path, conductor uses the specified certificate for SSL verification. If the path does not exist, the behavior is same as when this value is set to True i.e the certificates present in the standard path are used for SSL verification.Defaults to True.

5.1.2. agent

The following table outlines the options available under the [agent] group in the /etc/ironic/ironic.conf file.

Table 5.1. agent
Configuration option = Default valueTypeDescription

agent_api_version = v1

string value

API version to use for communicating with the ramdisk agent.

api_ca_file = None

string value

Path to the TLS CA that is used to start the bare metal API. In some boot methods this file can be passed to the ramdisk.

certificates_path = /var/lib/ironic/certificates

string value

Path to store auto-generated TLS certificates used to validate connections to the ramdisk.

command_timeout = 60

integer value

Timeout (in seconds) for IPA commands.

command_wait_attempts = 100

integer value

Number of attempts to check for asynchronous commands completion before timing out.

command_wait_interval = 6

integer value

Number of seconds to wait for between checks for asynchronous commands completion.

deploy_logs_collect = on_failure

string value

Whether Ironic should collect the deployment logs on deployment failure (on_failure), always or never.

deploy_logs_local_path = /var/log/ironic/deploy

string value

The path to the directory where the logs should be stored, used when the deploy_logs_storage_backend is configured to "local".

deploy_logs_storage_backend = local

string value

The name of the storage backend where the logs will be stored.

deploy_logs_swift_container = ironic_deploy_logs_container

string value

The name of the Swift container to store the logs, used when the deploy_logs_storage_backend is configured to "swift".

deploy_logs_swift_days_to_expire = 30

integer value

Number of days before a log object is marked as expired in Swift. If None, the logs will be kept forever or until manually deleted. Used when the deploy_logs_storage_backend is configured to "swift".

image_download_source = http

string value

Specifies whether direct deploy interface should try to use the image source directly or if ironic should cache the image on the conductor and serve it from ironic’s own http server.

manage_agent_boot = True

boolean value

Whether Ironic will manage booting of the agent ramdisk. If set to False, you will need to configure your mechanism to allow booting the agent ramdisk.

max_command_attempts = 3

integer value

This is the maximum number of attempts that will be done for IPA commands that fails due to network problems.

memory_consumed_by_agent = 0

integer value

The memory size in MiB consumed by agent when it is booted on a bare metal node. This is used for checking if the image can be downloaded and deployed on the bare metal node after booting agent ramdisk. This may be set according to the memory consumed by the agent ramdisk image.

neutron_agent_max_attempts = 100

integer value

Max number of attempts to validate a Neutron agent status before raising network error for a dead agent.

neutron_agent_poll_interval = 2

integer value

The number of seconds Neutron agent will wait between polling for device changes. This value should be the same as CONF.AGENT.polling_interval in Neutron configuration.

neutron_agent_status_retry_interval = 10

integer value

Wait time in seconds between attempts for validating Neutron agent status.

post_deploy_get_power_state_retries = 6

integer value

Number of times to retry getting power state to check if bare metal node has been powered off after a soft power off.

post_deploy_get_power_state_retry_interval = 5

integer value

Amount of time (in seconds) to wait between polling power state after trigger soft poweroff.

require_tls = False

boolean value

If set to True, callback URLs without https:// will be rejected by the conductor.

stream_raw_images = True

boolean value

Whether the agent ramdisk should stream raw images directly onto the disk or not. By streaming raw images directly onto the disk the agent ramdisk will not spend time copying the image to a tmpfs partition (therefore consuming less memory) prior to writing it to the disk. Unless the disk where the image will be copied to is really slow, this option should be set to True. Defaults to True.

verify_ca = True

string value

Path to the TLS CA to validate connection to the ramdisk. Set to True to use the system default CA storage. Set to False to disable validation. Ignored when automatic TLS setup is used.

5.1.3. anaconda

The following table outlines the options available under the [anaconda] group in the /etc/ironic/ironic.conf file.

Table 5.2. anaconda
Configuration option = Default valueTypeDescription

default_ks_template = $pybasedir/drivers/modules/ks.cfg.template

string value

kickstart template to use when no kickstart template is specified in the instance_info or the glance OS image.

insecure_heartbeat = False

boolean value

Option to allow the kickstart configuration to be informed if SSL/TLS certificate verificaiton should be enforced, or not. This option exists largely to facilitate easy testing and use of the anaconda deployment interface. When this option is set, heartbeat operations, depending on the contents of the utilized kickstart template, may not enfore TLS certificate verification.

5.1.4. ansible

The following table outlines the options available under the [ansible] group in the /etc/ironic/ironic.conf file.

Table 5.3. ansible
Configuration option = Default valueTypeDescription

ansible_extra_args = None

string value

Extra arguments to pass on every invocation of Ansible.

ansible_playbook_script = ansible-playbook

string value

Path to "ansible-playbook" script. Default will search the $PATH configured for user running ironic-conductor process. Provide the full path when ansible-playbook is not in $PATH or installed in not default location.

config_file_path = $pybasedir/drivers/modules/ansible/playbooks/ansible.cfg

string value

Path to ansible configuration file. If set to empty, system default will be used.

default_clean_playbook = clean.yaml

string value

Path (relative to $playbooks_path or absolute) to the default playbook used for node cleaning. It may be overridden by per-node ansible_clean_playbook option in node’s driver_info field.

default_clean_steps_config = clean_steps.yaml

string value

Path (relative to $playbooks_path or absolute) to the default auxiliary cleaning steps file used during the node cleaning. It may be overridden by per-node ansible_clean_steps_config option in node’s driver_info field.

default_deploy_playbook = deploy.yaml

string value

Path (relative to $playbooks_path or absolute) to the default playbook used for deployment. It may be overridden by per-node ansible_deploy_playbook option in node’s driver_info field.

default_key_file = None

string value

Absolute path to the private SSH key file to use by Ansible by default when connecting to the ramdisk over SSH. Default is to use default SSH keys configured for the user running the ironic-conductor service. Private keys with password must be pre-loaded into ssh-agent. It may be overridden by per-node ansible_key_file option in node’s driver_info field.

default_python_interpreter = None

string value

Absolute path to the python interpreter on the managed machines. It may be overridden by per-node ansible_python_interpreter option in node’s driver_info field. By default, ansible uses /usr/bin/python

default_shutdown_playbook = shutdown.yaml

string value

Path (relative to $playbooks_path or absolute) to the default playbook used for graceful in-band shutdown of the node. It may be overridden by per-node ansible_shutdown_playbook option in node’s driver_info field.

default_username = ansible

string value

Name of the user to use for Ansible when connecting to the ramdisk over SSH. It may be overridden by per-node ansible_username option in node’s driver_info field.

extra_memory = 10

integer value

Extra amount of memory in MiB expected to be consumed by Ansible-related processes on the node. Affects decision whether image will fit into RAM.

image_store_cafile = None

string value

Specific CA bundle to use for validating SSL connections to the image store. If not specified, CA available in the ramdisk will be used. Is not used by default playbooks included with the driver. Suitable for environments that use self-signed certificates.

image_store_certfile = None

string value

Client cert to use for SSL connections to image store. Is not used by default playbooks included with the driver.

image_store_insecure = False

boolean value

Skip verifying SSL connections to the image store when downloading the image. Setting it to "True" is only recommended for testing environments that use self-signed certificates.

image_store_keyfile = None

string value

Client key to use for SSL connections to image store. Is not used by default playbooks included with the driver.

playbooks_path = $pybasedir/drivers/modules/ansible/playbooks

string value

Path to directory with playbooks, roles and local inventory.

post_deploy_get_power_state_retries = 6

integer value

Number of times to retry getting power state to check if bare metal node has been powered off after a soft power off. Value of 0 means do not retry on failure.

post_deploy_get_power_state_retry_interval = 5

integer value

Amount of time (in seconds) to wait between polling power state after trigger soft poweroff.

verbosity = None

integer value

Set ansible verbosity level requested when invoking "ansible-playbook" command. 4 includes detailed SSH session logging. Default is 4 when global debug is enabled and 0 otherwise.

5.1.5. api

The following table outlines the options available under the [api] group in the /etc/ironic/ironic.conf file.

Table 5.4. api
Configuration option = Default valueTypeDescription

api_workers = None

integer value

Number of workers for OpenStack Ironic API service. The default is equal to the number of CPUs available, but not more than 4. One worker is used if the CPU number cannot be detected.

enable_ssl_api = False

boolean value

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 enable proxy headers parsing with [oslo_middleware]enable_proxy_headers_parsing option or configure [api]public_endpoint option to set URLs in responses to the SSL terminated one.

host_ip = 0.0.0.0

host address value

The IP address or hostname on which ironic-api listens.

max_limit = 1000

integer value

The maximum number of items returned in a single response from a collection resource.

network_data_schema = $pybasedir/api/controllers/v1/network-data-schema.json

string value

Schema for network data used by this deployment.

port = 6385

port value

The TCP port on which ironic-api listens.

project_admin_can_manage_own_nodes = True

boolean value

If a project scoped administrative user is permitted to create/delte baremetal nodes in their project.

public_endpoint = None

string value

Public URL to use when building the links to the API resources (for example, "https://ironic.rocks:6384"). 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. Ignored when proxy headers parsing is enabled via [oslo_middleware]enable_proxy_headers_parsing option.

ramdisk_heartbeat_timeout = 300

integer value

Maximum interval (in seconds) for agent heartbeats.

restrict_lookup = True

boolean value

Whether to restrict the lookup API to only nodes in certain states.

unix_socket = None

string value

Unix socket to listen on. Disables host_ip and port.

unix_socket_mode = None

integer value

File mode (an octal number) of the unix socket to listen on. Ignored if unix_socket is not set.

5.1.6. audit

The following table outlines the options available under the [audit] group in the /etc/ironic/ironic.conf file.

Table 5.5. audit
Configuration option = Default valueTypeDescription

audit_map_file = /etc/ironic/api_audit_map.conf

string value

Path to audit map file for ironic-api service. Used only when API audit is enabled.

enabled = False

boolean value

Enable auditing of API requests (for ironic-api service).

`ignore_req_list = `

string value

Comma separated list of Ironic REST API HTTP methods to be ignored during audit logging. For example: auditing will not be done on any GET or POST requests if this is set to "GET,POST". It is used only when API audit is enabled.

5.1.7. cinder

The following table outlines the options available under the [cinder] group in the /etc/ironic/ironic.conf file.

Table 5.6. cinder
Configuration option = Default valueTypeDescription

action_retries = 3

integer value

Number of retries in the case of a failed action (currently only used when detaching volumes).

action_retry_interval = 5

integer value

Retry interval in seconds in the case of a failed action (only specific actions are retried).

auth-url = None

string value

Authentication URL

auth_type = None

string value

Authentication type to load

cafile = None

string value

PEM encoded Certificate Authority to use when verifying HTTPs connections.

certfile = None

string value

PEM encoded client certificate cert file

collect-timing = False

boolean value

Collect per-API call timing information.

connect-retries = None

integer value

The maximum number of retries that should be attempted for connection errors.

connect-retry-delay = None

floating point value

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.

default-domain-id = None

string value

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.

default-domain-name = None

string value

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.

domain-id = None

string value

Domain ID to scope to

domain-name = None

string value

Domain name to scope to

endpoint-override = None

string value

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.

insecure = False

boolean value

Verify HTTPS connections.

keyfile = None

string value

PEM encoded client certificate key file

max-version = None

string value

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.

min-version = None

string value

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".

password = None

string value

User’s password

project-domain-id = None

string value

Domain ID containing project

project-domain-name = None

string value

Domain name containing project

project-id = None

string value

Project ID to scope to

project-name = None

string value

Project name to scope to

region-name = None

string value

The default region_name for endpoint URL discovery.

retries = 3

integer value

Client retries in the case of a failed request connection.

service-name = None

string value

The default service_name for endpoint URL discovery.

service-type = volumev3

string value

The default service_type for endpoint URL discovery.

split-loggers = False

boolean value

Log requests to multiple loggers.

status-code-retries = None

integer value

The maximum number of retries that should be attempted for retriable HTTP status codes.

status-code-retry-delay = None

floating point value

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.

system-scope = None

string value

Scope for system operations

tenant-id = None

string value

Tenant ID

tenant-name = None

string value

Tenant Name

timeout = None

integer value

Timeout value for http requests

trust-id = None

string value

ID of the trust to use as a trustee use

user-domain-id = None

string value

User’s domain id

user-domain-name = None

string value

User’s domain name

user-id = None

string value

User id

username = None

string value

Username

valid-interfaces = ['internal', 'public']

list value

List of interfaces, in order of preference, for endpoint URL.

version = None

string value

Minimum Major API version within a given Major API version for endpoint URL discovery. Mutually exclusive with min_version and max_version

5.1.8. conductor

The following table outlines the options available under the [conductor] group in the /etc/ironic/ironic.conf file.

Table 5.7. conductor
Configuration option = Default valueTypeDescription

allow_deleting_available_nodes = True

boolean value

Allow deleting nodes which are in state available. Defaults to True.

allow_provisioning_in_maintenance = True

boolean value

Whether to allow nodes to enter or undergo deploy or cleaning when in maintenance mode. If this option is set to False, and a node enters maintenance during deploy or cleaning, the process will be aborted after the next heartbeat. Automated cleaning or making a node available will also fail. If True (the default), the process will begin and will pause after the node starts heartbeating. Moving it from maintenance will make the process continue.

automated_clean = True

boolean value

Enables or disables automated cleaning. Automated cleaning is a configurable set of steps, such as erasing disk drives, that are performed on the node to ensure it is in a baseline state and ready to be deployed to. This is done after instance deletion as well as during the transition from a "manageable" to "available" state. When enabled, the particular steps performed to clean a node depend on which driver that node is managed by; see the individual driver’s documentation for details. NOTE: The introduction of the cleaning operation causes instance deletion to take significantly longer. In an environment where all tenants are trusted (eg, because there is only one tenant), this option could be safely disabled.

automatic_lessee = False

boolean value

If the conductor should record the Project ID indicated by Keystone for a requested deployment. Allows rights to be granted to directly access the deployed node as a lessee within the RBAC security model. The conductor does not record this value otherwise, and this information is not backfilled for prior instances which have been deployed.

bootloader = None

string value

Glance ID, http:// or file:// URL of the EFI system partition image containing EFI boot loader. This image will be used by ironic when building UEFI-bootable ISO out of kernel and ramdisk. Required for UEFI boot from partition images.

cache_clean_up_interval = 3600

integer value

Interval between cleaning up image caches, in seconds. Set to 0 to disable periodic clean-up.

check_allocations_interval = 60

integer value

Interval between checks of orphaned allocations, in seconds. Set to 0 to disable checks.

check_provision_state_interval = 60

integer value

Interval between checks of provision timeouts, in seconds. Set to 0 to disable checks.

check_rescue_state_interval = 60

integer value

Interval (seconds) between checks of rescue timeouts.

clean_callback_timeout = 1800

integer value

Timeout (seconds) to wait for a callback from the ramdisk doing the cleaning. If the timeout is reached the node will be put in the "clean failed" provision state. Set to 0 to disable timeout.

clean_step_priority_override = {}

dict value

Priority to run automated clean steps for both in-band and out of band clean steps, provided in interface.step_name:priority format, e.g. deploy.erase_devices_metadata:123. The option can be specified multiple times to define priorities for multiple steps. If set to 0, this specific step will not run during cleaning. If unset for an inband clean step, will use the priority set in the ramdisk.

`conductor_group = `

string value

Name of the conductor group to join. Can be up to 255 characters and is case insensitive. This conductor will only manage nodes with a matching "conductor_group" field set on the node.

configdrive_swift_container = ironic_configdrive_container

string value

Name of the Swift container to store config drive data. Used when configdrive_use_object_store is True.

configdrive_swift_temp_url_duration = None

integer value

The timeout (in seconds) after which a configdrive temporary URL becomes invalid. Defaults to deploy_callback_timeout if it is set, otherwise to 1800 seconds. Used when configdrive_use_object_store is True.

deploy_callback_timeout = 1800

integer value

Timeout (seconds) to wait for a callback from a deploy ramdisk. Set to 0 to disable timeout.

deploy_kernel = None

string value

Glance ID, http:// or file:// URL of the kernel of the default deploy image.

deploy_ramdisk = None

string value

Glance ID, http:// or file:// URL of the initramfs of the default deploy image.

enable_mdns = False

boolean value

Whether to enable publishing the baremetal API endpoint via multicast DNS.

force_power_state_during_sync = True

boolean value

During sync_power_state, should the hardware power state be set to the state recorded in the database (True) or should the database be updated based on the hardware state (False).

heartbeat_interval = 10

integer value

Seconds between conductor heart beats.

heartbeat_timeout = 60

integer value

Maximum time (in seconds) since the last check-in of a conductor. A conductor is considered inactive when this time has been exceeded.

inspect_wait_timeout = 1800

integer value

Timeout (seconds) for waiting for node inspection. 0 - unlimited.

max_concurrent_clean = 50

integer value

The maximum number of concurrent nodes in cleaning which are permitted in this Ironic system. If this limit is reached, new requests will be rejected until the number of nodes in cleaning is lower than this maximum. As this is a security mechanism requests are not queued, and this setting is a global setting applying to all requests this conductor receives, regardless of access rights. The concurrent clean limit cannot be disabled.

max_concurrent_deploy = 250

integer value

The maximum number of concurrent nodes in deployment which are permitted in this Ironic system. If this limit is reached, new requests will be rejected until the number of deployments in progress is lower than this maximum. As this is a security mechanism requests are not queued, and this setting is a global setting applying to all requests this conductor receives, regardless of access rights. The concurrent deployment limit cannot be disabled.

node_history = True

boolean value

Boolean value, default True, if node event history is to be recorded. Errors and other noteworthy events in relation to a node are journaled to a database table which incurs some additional load. A periodic task does periodically remove entries from the database. Please note, if this is disabled, the conductor will continue to purge entries as long as [conductor]node_history_cleanup_batch_count is not 0.

node_history_cleanup_batch_count = 1000

integer value

The target number of node history records to purge from the database when performing clean-up. Deletes are performed by node, and a node with excess records for a node will still be deleted. Defaults to 1000. Operators who find node history building up may wish to lower this threshold and decrease the time between cleanup operations using the node_history_cleanup_interval setting.

node_history_cleanup_interval = 86400

integer value

Interval in seconds at which node history entries can be cleaned up in the database. Setting to 0 disables the periodic task. Defaults to once a day, or 86400 seconds.

node_history_max_entries = 300

integer value

Maximum number of history entries which will be stored in the database per node. Default is 300. This setting excludes the minimum number of days retained using the [conductor]node_history_minimum_days setting.

node_history_minimum_days = 0

integer value

The minimum number of days to explicitly keep on hand in the database history entries for nodes. This is exclusive from the [conductor]node_history_max_entries setting as users of this setting are anticipated to need to retain history by policy.

node_locked_retry_attempts = 3

integer value

Number of attempts to grab a node lock.

node_locked_retry_interval = 1

integer value

Seconds to sleep between node lock attempts.

periodic_max_workers = 8

integer value

Maximum number of worker threads that can be started simultaneously by a periodic task. Should be less than RPC thread pool size.

power_failure_recovery_interval = 300

integer value

Interval (in seconds) between checking the power state for nodes previously put into maintenance mode due to power synchronization failure. A node is automatically moved out of maintenance mode once its power state is retrieved successfully. Set to 0 to disable this check.

power_state_change_timeout = 60

integer value

Number of seconds to wait for power operations to complete, i.e., so that a baremetal node is in the desired power state. If timed out, the power operation is considered a failure.

power_state_sync_max_retries = 3

integer value

During sync_power_state failures, limit the number of times Ironic should try syncing the hardware node power state with the node power state in DB

require_rescue_password_hashed = False

boolean value

Option to cause the conductor to not fallback to an un-hashed version of the rescue password, permitting rescue with older ironic-python-agent ramdisks.

rescue_callback_timeout = 1800

integer value

Timeout (seconds) to wait for a callback from the rescue ramdisk. If the timeout is reached the node will be put in the "rescue failed" provision state. Set to 0 to disable timeout.

rescue_kernel = None

string value

Glance ID, http:// or file:// URL of the kernel of the default rescue image.

rescue_password_hash_algorithm = sha256

string value

Password hash algorithm to be used for the rescue password.

rescue_ramdisk = None

string value

Glance ID, http:// or file:// URL of the initramfs of the default rescue image.

soft_power_off_timeout = 600

integer value

Timeout (in seconds) of soft reboot and soft power off operation. This value always has to be positive.

sync_local_state_interval = 180

integer value

When conductors join or leave the cluster, existing conductors may need to update any persistent local state as nodes are moved around the cluster. This option controls how often, in seconds, each conductor will check for nodes that it should "take over". Set it to 0 (or a negative value) to disable the check entirely.

sync_power_state_interval = 60

integer value

Interval between syncing the node power state to the database, in seconds. Set to 0 to disable syncing.

sync_power_state_workers = 8

integer value

The maximum number of worker threads that can be started simultaneously to sync nodes power states from the periodic task.

verify_step_priority_override = {}

dict value

Priority to run automated verify steps provided in interface.step_name:priority format,e.g. management.clear_job_queue:123. The option can be specified multiple times to define priorities for multiple steps. If set to 0, this specific step will not run during verification.

workers_pool_size = 100

integer value

The size of the workers greenthread pool. Note that 2 threads will be reserved by the conductor itself for handling heart beats and periodic tasks. On top of that, sync_power_state_workers will take up to 7 green threads with the default value of 8.

5.1.9. console

The following table outlines the options available under the [console] group in the /etc/ironic/ironic.conf file.

Table 5.8. console
Configuration option = Default valueTypeDescription

kill_timeout = 1

integer value

Time (in seconds) to wait for the console subprocess to exit before sending SIGKILL signal.

port_range = None

string value

A range of ports available to be used for the console proxy service running on the host of ironic conductor, in the form of <start>:<stop>. This option is used by both Shellinabox and Socat console

socat_address = $my_ip

IP address value

IP address of Socat service running on the host of ironic conductor. Used only by Socat console.

subprocess_checking_interval = 1

integer value

Time interval (in seconds) for checking the status of console subprocess.

subprocess_timeout = 10

integer value

Time (in seconds) to wait for the console subprocess to start.

terminal = shellinaboxd

string value

Path to serial console terminal program. Used only by Shell In A Box console.

terminal_cert_dir = None

string value

Directory containing the terminal SSL cert (PEM) for serial console access. Used only by Shell In A Box console.

terminal_pid_dir = None

string value

Directory for holding terminal pid files. If not specified, the temporary directory will be used.

terminal_timeout = 600

integer value

Timeout (in seconds) for the terminal session to be closed on inactivity. Set to 0 to disable timeout. Used only by Socat console.

5.1.10. cors

The following table outlines the options available under the [cors] group in the /etc/ironic/ironic.conf file.

Table 5.9. cors
Configuration option = Default valueTypeDescription

allow_credentials = True

boolean value

Indicate that the actual request can include user credentials

allow_headers = []

list value

Indicate which header field names may be used during the actual request.

allow_methods = ['OPTIONS', 'GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'TRACE', 'PATCH']

list value

Indicate which methods can be used during the actual request.

allowed_origin = None

list value

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

expose_headers = []

list value

Indicate which headers are safe to expose to the API. Defaults to HTTP Simple Headers.

max_age = 3600

integer value

Maximum cache age of CORS preflight requests.

5.1.11. database

The following table outlines the options available under the [database] group in the /etc/ironic/ironic.conf file.

Table 5.10. database
Configuration option = Default valueTypeDescription

backend = sqlalchemy

string value

The back end to use for the database.

connection = None

string value

The SQLAlchemy connection string to use to connect to the database.

connection_debug = 0

integer value

Verbosity of SQL debugging information: 0=None, 100=Everything.

`connection_parameters = `

string value

Optional URL parameters to append onto the connection URL at connect time; specify as param1=value1&param2=value2&…​

connection_recycle_time = 3600

integer value

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.

connection_trace = False

boolean value

Add Python stack traces to SQL as comment strings.

db_inc_retry_interval = True

boolean value

If True, increases the interval between retries of a database operation up to db_max_retry_interval.

db_max_retries = 20

integer value

Maximum retries in case of connection error or deadlock error before error is raised. Set to -1 to specify an infinite retry count.

db_max_retry_interval = 10

integer value

If db_inc_retry_interval is set, the maximum seconds between retries of a database operation.

db_retry_interval = 1

integer value

Seconds between retries of a database transaction.

max_overflow = 50

integer value

If set, use this value for max_overflow with SQLAlchemy.

max_pool_size = 5

integer value

Maximum number of SQL connections to keep open in a pool. Setting a value of 0 indicates no limit.

max_retries = 10

integer value

Maximum number of database connection retries during startup. Set to -1 to specify an infinite retry count.

mysql_enable_ndb = False

boolean value

If True, transparently enables support for handling MySQL Cluster (NDB). Deprecated since: 12.1.0

*Reason:*Support for the MySQL NDB Cluster storage engine has been deprecated and will be removed in a future release.

mysql_engine = InnoDB

string value

MySQL engine to use.

mysql_sql_mode = TRADITIONAL

string value

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=

mysql_wsrep_sync_wait = None

integer value

For Galera only, configure wsrep_sync_wait causality checks on new connections. Default is None, meaning don’t configure any setting.

pool_timeout = None

integer value

If set, use this value for pool_timeout with SQLAlchemy.

retry_interval = 10

integer value

Interval between retries of opening a SQL connection.

slave_connection = None

string value

The SQLAlchemy connection string to use to connect to the slave database.

sqlite_synchronous = True

boolean value

If True, SQLite uses synchronous mode.

use_db_reconnect = False

boolean value

Enable the experimental use of database reconnect on connection lost.

5.1.12. deploy

The following table outlines the options available under the [deploy] group in the /etc/ironic/ironic.conf file.

Table 5.11. deploy
Configuration option = Default valueTypeDescription

configdrive_use_object_store = False

boolean value

Whether to upload the config drive to object store. Set this option to True to store config drive in a swift endpoint.

continue_if_disk_secure_erase_fails = False

boolean value

Defines what to do if a secure erase operation (NVMe or ATA) fails during cleaning in the Ironic Python Agent. If False, the cleaning operation will fail and the node will be put in clean failed state. If True, shred will be invoked and cleaning will continue.

create_configuration_priority = None

integer value

Priority to run in-band clean step that creates RAID configuration from devices, via the Ironic Python Agent ramdisk. If unset, will use the priority set in the ramdisk (defaults to 0 for the GenericHardwareManager). If set to 0, will not run during cleaning.

default_boot_mode = uefi

string value

Default boot mode to use when no boot mode is requested in node’s driver_info, capabilities or in the instance_info configuration. Currently the default boot mode is "uefi", but it was "bios" previously in Ironic. It is recommended to set an explicit value for this option, and if the setting or default differs from nodes, to ensure that nodes are configured specifically for their desired boot mode.

delete_configuration_priority = None

integer value

Priority to run in-band clean step that erases RAID configuration from devices, via the Ironic Python Agent ramdisk. If unset, will use the priority set in the ramdisk (defaults to 0 for the GenericHardwareManager). If set to 0, will not run during cleaning.

disk_erasure_concurrency = 4

integer value

Defines the target pool size used by Ironic Python Agent ramdisk to erase disk devices. The number of threads created to erase disks will not exceed this value or the number of disks to be erased.

enable_ata_secure_erase = True

boolean value

Whether to support the use of ATA Secure Erase during the cleaning process. Defaults to True.

enable_nvme_secure_erase = True

boolean value

Whether to support the use of NVMe Secure Erase during the cleaning process. Currently nvme-cli format command is supported with user-data and crypto modes, depending on device capabilities.Defaults to True.

erase_devices_metadata_priority = None

integer value

Priority to run in-band clean step that erases metadata from devices, via the Ironic Python Agent ramdisk. If unset, will use the priority set in the ramdisk (defaults to 99 for the GenericHardwareManager). If set to 0, will not run during cleaning.

erase_devices_priority = None

integer value

Priority to run in-band erase devices via the Ironic Python Agent ramdisk. If unset, will use the priority set in the ramdisk (defaults to 10 for the GenericHardwareManager). If set to 0, will not run during cleaning.

erase_skip_read_only = False

boolean value

If the ironic-python-agent should skip read-only devices when running the "erase_devices" clean step where block devices are zeroed out. This requires ironic-python-agent 6.0.0 or greater. By default a read-only device will cause non-metadata based cleaning operations to fail due to the possible operational security risk of data being retained between deployments of the bare metal node.

external_callback_url = None

string value

Agent callback URL of the bare metal API for boot methods such as virtual media, where images could be served outside of the provisioning network. Defaults to the configuration from [service_catalog].

external_http_url = None

string value

URL of the ironic-conductor node’s HTTP server for boot methods such as virtual media, where images could be served outside of the provisioning network. Does not apply when Swift is used. Defaults to http_url.

fast_track = False

boolean value

Whether to allow deployment agents to perform lookup, heartbeat operations during initial states of a machine lifecycle and by-pass the normal setup procedures for a ramdisk. This feature also enables power operations which are part of deployment processes to be bypassed if the ramdisk has performed a heartbeat operation using the fast_track_timeout setting.

fast_track_timeout = 300

integer value

Seconds for which the last heartbeat event is to be considered valid for the purpose of a fast track sequence. This setting should generally be less than the number of seconds for "Power-On Self Test" and typical ramdisk start-up. This value should not exceed the [api]ramdisk_heartbeat_timeout setting.

http_image_subdir = agent_images

string value

The name of subdirectory under ironic-conductor node’s HTTP root path which is used to place instance images for the direct deploy interface, when local HTTP service is incorporated to provide instance image instead of swift tempurls.

http_root = /httpboot

string value

ironic-conductor node’s HTTP root path.

http_url = None

string value

ironic-conductor node’s HTTP server URL. Example: http://192.1.2.3:8080

iso_cache_size = 20480

integer value

Maximum size (in MiB) of cache for master ISO images, including those in use.

iso_cache_ttl = 10080

integer value

Maximum TTL (in minutes) for old master ISO images in cache.

iso_master_path = /var/lib/ironic/master_iso_images

string value

On the ironic-conductor node, directory where master ISO images are stored on disk. Setting to the empty string disables image caching.

power_off_after_deploy_failure = True

boolean value

Whether to power off a node after deploy failure. Defaults to True.

ramdisk_image_download_source = local

string value

Specifies whether a boot iso image should be served from its own original location using the image source url directly, or if ironic should cache the image on the conductor and serve it from ironic’s own http server.

shred_final_overwrite_with_zeros = True

boolean value

Whether to write zeros to a node’s block devices after writing random data. This will write zeros to the device even when deploy.shred_random_overwrite_iterations is 0. This option is only used if a device could not be ATA Secure Erased. Defaults to True.

shred_random_overwrite_iterations = 1

integer value

During shred, overwrite all block devices N times with random data. This is only used if a device could not be ATA Secure Erased. Defaults to 1.

5.1.13. dhcp

The following table outlines the options available under the [dhcp] group in the /etc/ironic/ironic.conf file.

Table 5.12. dhcp
Configuration option = Default valueTypeDescription

dhcp_provider = neutron

string value

DHCP provider to use. "neutron" uses Neutron, "dnsmasq" uses the Dnsmasq provider, and "none" uses a no-op provider.

5.1.14. disk_partitioner

The following table outlines the options available under the [disk_partitioner] group in the /etc/ironic/ironic.conf file.

Table 5.13. disk_partitioner
Configuration option = Default valueTypeDescription

check_device_interval = 1

integer value

After Ironic has completed creating the partition table, it continues to check for activity on the attached iSCSI device status at this interval prior to copying the image to the node, in seconds

check_device_max_retries = 20

integer value

The maximum number of times to check that the device is not accessed by another process. If the device is still busy after that, the disk partitioning will be treated as having failed.

5.1.15. disk_utils

The following table outlines the options available under the [disk_utils] group in the /etc/ironic/ironic.conf file.

Table 5.14. disk_utils
Configuration option = Default valueTypeDescription

bios_boot_partition_size = 1

integer value

Size of BIOS Boot partition in MiB when configuring GPT partitioned systems for local boot in BIOS.

dd_block_size = 1M

string value

Block size to use when writing to the nodes disk.

efi_system_partition_size = 200

integer value

Size of EFI system partition in MiB when configuring UEFI systems for local boot.

image_convert_attempts = 3

integer value

Number of attempts to convert an image.

image_convert_memory_limit = 2048

integer value

Memory limit for "qemu-img convert" in MiB. Implemented via the address space resource limit.

partition_detection_attempts = 3

integer value

Maximum attempts to detect a newly created partition.

partprobe_attempts = 10

integer value

Maximum number of attempts to try to read the partition.

5.1.16. drac

The following table outlines the options available under the [drac] group in the /etc/ironic/ironic.conf file.

Table 5.15. drac
Configuration option = Default valueTypeDescription

bios_factory_reset_timeout = 600

integer value

Maximum time (in seconds) to wait for factory reset of BIOS settings to complete.

boot_device_job_status_timeout = 30

integer value

Maximum amount of time (in seconds) to wait for the boot device configuration job to transition to the correct state to allow a reboot or power on to complete.

config_job_max_retries = 240

integer value

Maximum number of retries for the configuration job to complete successfully.

query_import_config_job_status_interval = 60

integer value

Number of seconds to wait between checking for completed import configuration task

query_raid_config_job_status_interval = 120

integer value

Interval (in seconds) between periodic RAID job status checks to determine whether the asynchronous RAID configuration was successfully finished or not.

raid_job_timeout = 300

integer value

Maximum time (in seconds) to wait for RAID job to complete

5.1.17. glance

The following table outlines the options available under the [glance] group in the /etc/ironic/ironic.conf file.

Table 5.16. glance
Configuration option = Default valueTypeDescription

allowed_direct_url_schemes = []

list value

A list of URL schemes that can be downloaded directly via the direct_url. Currently supported schemes: [file].

auth-url = None

string value

Authentication URL

auth_type = None

string value

Authentication type to load

cafile = None

string value

PEM encoded Certificate Authority to use when verifying HTTPs connections.

certfile = None

string value

PEM encoded client certificate cert file

collect-timing = False

boolean value

Collect per-API call timing information.

connect-retries = None

integer value

The maximum number of retries that should be attempted for connection errors.

connect-retry-delay = None

floating point value

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.

default-domain-id = None

string value

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.

default-domain-name = None

string value

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.

domain-id = None

string value

Domain ID to scope to

domain-name = None

string value

Domain name to scope to

endpoint-override = None

string value

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.

insecure = False

boolean value

Verify HTTPS connections.

keyfile = None

string value

PEM encoded client certificate key file

max-version = None

string value

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.

min-version = None

string value

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".

num_retries = 0

integer value

Number of retries when downloading an image from glance.

password = None

string value

User’s password

project-domain-id = None

string value

Domain ID containing project

project-domain-name = None

string value

Domain name containing project

project-id = None

string value

Project ID to scope to

project-name = None

string value

Project name to scope to

region-name = None

string value

The default region_name for endpoint URL discovery.

service-name = None

string value

The default service_name for endpoint URL discovery.

service-type = image

string value

The default service_type for endpoint URL discovery.

split-loggers = False

boolean value

Log requests to multiple loggers.

status-code-retries = None

integer value

The maximum number of retries that should be attempted for retriable HTTP status codes.

status-code-retry-delay = None

floating point value

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.

swift_account = None

string value

The account that Glance uses to communicate with Swift. The format is "AUTH_uuid". "uuid" is the UUID for the account configured in the glance-api.conf. For example: "AUTH_a422b2-91f3-2f46-74b7-d7c9e8958f5d30". If not set, the default value is calculated based on the ID of the project used to access Swift (as set in the [swift] section). Swift temporary URL format: "endpoint_url/api_version/account/container/object_id"

swift_account_prefix = AUTH

string value

The prefix added to the project uuid to determine the swift account.

swift_api_version = v1

string value

The Swift API version to create a temporary URL for. Defaults to "v1". Swift temporary URL format: "endpoint_url/api_version/account/container/object_id"

swift_container = glance

string value

The Swift container Glance is configured to store its images in. Defaults to "glance", which is the default in glance-api.conf. Swift temporary URL format: "endpoint_url/api_version/account/container/object_id"

swift_endpoint_url = None

string value

The "endpoint" (scheme, hostname, optional port) for the Swift URL of the form "endpoint_url/api_version/account/container/object_id". Do not include trailing "/". For example, use "https://swift.example.com". If using RADOS Gateway, endpoint may also contain /swift path; if it does not, it will be appended. Used for temporary URLs, will be fetched from the service catalog, if not provided.

swift_store_multiple_containers_seed = 0

integer value

This should match a config by the same name in the Glance configuration file. When set to 0, a single-tenant store will only use one container to store all images. When set to an integer value between 1 and 32, a single-tenant store will use multiple containers to store images, and this value will determine how many containers are created.

swift_temp_url_cache_enabled = False

boolean value

Whether to cache generated Swift temporary URLs. Setting it to true is only useful when an image caching proxy is used. Defaults to False.

swift_temp_url_duration = 1200

integer value

The length of time in seconds that the temporary URL will be valid for. Defaults to 20 minutes. If some deploys get a 401 response code when trying to download from the temporary URL, try raising this duration. This value must be greater than or equal to the value for swift_temp_url_expected_download_start_delay

swift_temp_url_expected_download_start_delay = 0

integer value

This is the delay (in seconds) from the time of the deploy request (when the Swift temporary URL is generated) to when the IPA ramdisk starts up and URL is used for the image download. This value is used to check if the Swift temporary URL duration is large enough to let the image download begin. Also if temporary URL caching is enabled this will determine if a cached entry will still be valid when the download starts. swift_temp_url_duration value must be greater than or equal to this option’s value. Defaults to 0.

swift_temp_url_key = None

string value

The secret token given to Swift to allow temporary URL downloads. Required for temporary URLs. For the Swift backend, the key on the service project (as set in the [swift] section) is used by default.

system-scope = None

string value

Scope for system operations

tenant-id = None

string value

Tenant ID

tenant-name = None

string value

Tenant Name

timeout = None

integer value

Timeout value for http requests

trust-id = None

string value

ID of the trust to use as a trustee use

user-domain-id = None

string value

User’s domain id

user-domain-name = None

string value

User’s domain name

user-id = None

string value

User id

username = None

string value

Username

valid-interfaces = ['internal', 'public']

list value

List of interfaces, in order of preference, for endpoint URL.

version = None

string value

Minimum Major API version within a given Major API version for endpoint URL discovery. Mutually exclusive with min_version and max_version

5.1.18. healthcheck

The following table outlines the options available under the [healthcheck] group in the /etc/ironic/ironic.conf file.

Table 5.17. healthcheck
Configuration option = Default valueTypeDescription

backends = []

list value

Additional backends that can perform health checks and report that information back as part of a request.

detailed = False

boolean value

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.

disable_by_file_path = None

string value

Check the presence of a file to determine if an application is running on a port. Used by DisableByFileHealthcheck plugin.

disable_by_file_paths = []

list value

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.

enabled = False

boolean value

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.

path = /healthcheck

string value

The path to respond to healtcheck requests on.

5.1.19. ilo

The following table outlines the options available under the [ilo] group in the /etc/ironic/ironic.conf file.

Table 5.18. ilo
Configuration option = Default valueTypeDescription

ca_file = None

string value

CA certificate file to validate iLO.

cert_path = /var/lib/ironic/ilo/

string value

On the ironic-conductor node, directory where ilo driver stores the CSR and the cert.

clean_priority_clear_secure_boot_keys = 0

integer value

Priority for clear_secure_boot_keys clean step. This step is not enabled by default. It can be enabled to clear all secure boot keys enrolled with iLO.

clean_priority_reset_bios_to_default = 10

integer value

Priority for reset_bios_to_default clean step.

clean_priority_reset_ilo = 0

integer value

Priority for reset_ilo clean step.

clean_priority_reset_ilo_credential = 30

integer value

Priority for reset_ilo_credential clean step. This step requires "ilo_change_password" parameter to be updated in nodes’s driver_info with the new password.

clean_priority_reset_secure_boot_keys_to_default = 20

integer value

Priority for reset_secure_boot_keys clean step. This step will reset the secure boot keys to manufacturing defaults.

client_port = 443

port value

Port to be used for iLO operations

client_timeout = 60

integer value

Timeout (in seconds) for iLO operations

default_boot_mode = auto

string value

Default boot mode to be used in provisioning when "boot_mode" capability is not provided in the "properties/capabilities" of the node. The default is "auto" for backward compatibility. When "auto" is specified, default boot mode will be selected based on boot mode settings on the system.

file_permission = 420

integer value

File permission for swift-less image hosting with the octal permission representation of file access permissions. This setting defaults to 644, or as the octal number 0o644 in Python. This setting must be set to the octal number representation, meaning starting with 0o.

kernel_append_params = nofb nomodeset vga=normal

string value

Additional kernel parameters to pass down to the instance kernel. These parameters can be consumed by the kernel or by the applications by reading /proc/cmdline. Mind severe cmdline size limit! Can be overridden by instance_info/kernel_append_params property.

oob_erase_devices_job_status_interval = 300

integer value

Interval (in seconds) between periodic erase-devices status checks to determine whether the asynchronous out-of-band erase-devices was successfully finished or not. On an average, a 300GB HDD with default pattern "overwrite" would take approximately 9 hours and 300GB SSD with default pattern "block" would take approx. 30 seconds to complete sanitize disk erase.

power_wait = 2

integer value

Amount of time in seconds to wait in between power operations

swift_ilo_container = ironic_ilo_container

string value

The Swift iLO container to store data.

swift_object_expiry_timeout = 900

integer value

Amount of time in seconds for Swift objects to auto-expire.

use_web_server_for_images = False

boolean value

Set this to True to use http web server to host floppy images and generated boot ISO. This requires http_root and http_url to be configured in the [deploy] section of the config file. If this is set to False, then Ironic will use Swift to host the floppy images and generated boot_iso.

verify_ca = True

string value

CA certificate to validate iLO. This can be either a Boolean value, a path to a CA_BUNDLE file or directory with certificates of trusted CAs. If set to True the driver will verify the host certificates; if False the driver will ignore verifying the SSL certificate. If it’s a path the driver will use the specified certificate or one of the certificates in the directory. Defaults to True.

5.1.20. inspector

The following table outlines the options available under the [inspector] group in the /etc/ironic/ironic.conf file.

Table 5.19. inspector
Configuration option = Default valueTypeDescription

auth-url = None

string value

Authentication URL

auth_type = None

string value

Authentication type to load

cafile = None

string value

PEM encoded Certificate Authority to use when verifying HTTPs connections.

callback_endpoint_override = None

string value

endpoint to use as a callback for posting back introspection data when boot is managed by ironic. Standard keystoneauth options are used by default.

certfile = None

string value

PEM encoded client certificate cert file

collect-timing = False

boolean value

Collect per-API call timing information.

connect-retries = None

integer value

The maximum number of retries that should be attempted for connection errors.

connect-retry-delay = None

floating point value

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.

default-domain-id = None

string value

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.

default-domain-name = None

string value

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.

domain-id = None

string value

Domain ID to scope to

domain-name = None

string value

Domain name to scope to

endpoint-override = None

string value

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.

`extra_kernel_params = `

string value

extra kernel parameters to pass to the inspection ramdisk when boot is managed by ironic (not ironic-inspector). Pairs key=value separated by spaces.

insecure = False

boolean value

Verify HTTPS connections.

keyfile = None

string value

PEM encoded client certificate key file

max-version = None

string value

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.

min-version = None

string value

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".

password = None

string value

User’s password

power_off = True

boolean value

whether to power off a node after inspection finishes. Ignored for nodes that have fast track mode enabled.

project-domain-id = None

string value

Domain ID containing project

project-domain-name = None

string value

Domain name containing project

project-id = None

string value

Project ID to scope to

project-name = None

string value

Project name to scope to

region-name = None

string value

The default region_name for endpoint URL discovery.

require_managed_boot = False

boolean value

require that the in-band inspection boot is fully managed by ironic. Set this to True if your installation of ironic-inspector does not have a separate PXE boot environment.

service-name = None

string value

The default service_name for endpoint URL discovery.

service-type = baremetal-introspection

string value

The default service_type for endpoint URL discovery.

split-loggers = False

boolean value

Log requests to multiple loggers.

status-code-retries = None

integer value

The maximum number of retries that should be attempted for retriable HTTP status codes.

status-code-retry-delay = None

floating point value

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.

status_check_period = 60

integer value

period (in seconds) to check status of nodes on inspection

system-scope = None

string value

Scope for system operations

tenant-id = None

string value

Tenant ID

tenant-name = None

string value

Tenant Name

timeout = None

integer value

Timeout value for http requests

trust-id = None

string value

ID of the trust to use as a trustee use

user-domain-id = None

string value

User’s domain id

user-domain-name = None

string value

User’s domain name

user-id = None

string value

User id

username = None

string value

Username

valid-interfaces = ['internal', 'public']

list value

List of interfaces, in order of preference, for endpoint URL.

version = None

string value

Minimum Major API version within a given Major API version for endpoint URL discovery. Mutually exclusive with min_version and max_version

5.1.21. inventory

The following table outlines the options available under the [inventory] group in the /etc/ironic/ironic.conf file.

Table 5.20. inventory
Configuration option = Default valueTypeDescription

data_backend = database

string value

The storage backend for storing introspection data.

swift_data_container = introspection_data_container

string value

The Swift introspection data container to store the inventory data.

5.1.22. ipmi

The following table outlines the options available under the [ipmi] group in the /etc/ironic/ironic.conf file.

Table 5.21. ipmi
Configuration option = Default valueTypeDescription

additional_retryable_ipmi_errors = []

multi valued

Additional errors ipmitool may encounter, specific to the environment it is run in.

cipher_suite_versions = []

list value

List of possible cipher suites versions that can be supported by the hardware in case the field cipher_suite is not set for the node.

command_retry_timeout = 60

integer value

Maximum time in seconds to retry retryable IPMI operations. (An operation is retryable, for example, if the requested operation fails because the BMC is busy.) Setting this too high can cause the sync power state periodic task to hang when there are slow or unresponsive BMCs.

debug = False

boolean value

Enables all ipmi commands to be executed with an additional debugging output. This is a separate option as ipmitool can log a substantial amount of misleading text when in this mode.

disable_boot_timeout = True

boolean value

Default timeout behavior whether ironic sends a raw IPMI command to disable the 60 second timeout for booting. Setting this option to False will NOT send that command, the default value is True. It may be overridden by per-node ipmi_disable_boot_timeout option in node’s driver_info field.

kill_on_timeout = True

boolean value

Kill ipmitool process invoked by ironic to read node power state if ipmitool process does not exit after command_retry_timeout timeout expires. Recommended setting is True

min_command_interval = 5

integer value

Minimum time, in seconds, between IPMI operations sent to a server. There is a risk with some hardware that setting this too low may cause the BMC to crash. Recommended setting is 5 seconds.

use_ipmitool_retries = False

boolean value

When set to True and the parameters are supported by ipmitool, the number of retries and the retry interval are passed to ipmitool as parameters, and ipmitool will do the retries. When set to False, ironic will retry the ipmitool commands. Recommended setting is False

5.1.23. irmc

The following table outlines the options available under the [irmc] group in the /etc/ironic/ironic.conf file.

Table 5.22. irmc
Configuration option = Default valueTypeDescription

auth_method = basic

string value

Authentication method to be used for iRMC operations

clean_priority_restore_irmc_bios_config = 0

integer value

Priority for restore_irmc_bios_config clean step.

client_timeout = 60

integer value

Timeout (in seconds) for iRMC operations

fpga_ids = []

list value

List of vendor IDs and device IDs for CPU FPGA to inspect. List items are in format vendorID/deviceID and separated by commas. CPU inspection will use this value to find existence of CPU FPGA in a node. If this option is not defined, then leave out CUSTOM_CPU_FPGA in node traits. Sample fpga_ids value: 0x1000/0x0079,0x2100/0x0080

gpu_ids = []

list value

List of vendor IDs and device IDs for GPU device to inspect. List items are in format vendorID/deviceID and separated by commas. GPU inspection will use this value to count the number of GPU device in a node. If this option is not defined, then leave out pci_gpu_devices in capabilities property. Sample gpu_ids value: 0x1000/0x0079,0x2100/0x0080

kernel_append_params = None

string value

Additional kernel parameters to pass down to the instance kernel. These parameters can be consumed by the kernel or by the applications by reading /proc/cmdline. Mind severe cmdline size limit! Can be overridden by instance_info/kernel_append_params property.

port = 443

port value

Port to be used for iRMC operations

query_raid_config_fgi_status_interval = 300

integer value

Interval (in seconds) between periodic RAID status checks to determine whether the asynchronous RAID configuration was successfully finished or not. Foreground Initialization (FGI) will start 5 minutes after creating virtual drives.

remote_image_server = None

string value

IP of remote image server

remote_image_share_name = share

string value

share name of remote_image_server

remote_image_share_root = /remote_image_share_root

string value

Ironic conductor node’s "NFS" or "CIFS" root path

remote_image_share_type = CIFS

string value

Share type of virtual media

`remote_image_user_domain = `

string value

Domain name of remote_image_user_name

remote_image_user_name = None

string value

User name of remote_image_server

remote_image_user_password = None

string value

Password of remote_image_user_name

sensor_method = ipmitool

string value

Sensor data retrieval method.

snmp_auth_proto = sha

string value

SNMPv3 message authentication protocol ID. Required for version v3. The valid options are sha, sha256, sha384 and sha512, while sha is the only supported protocol in iRMC S4 and S5, and from iRMC S6, sha256, sha384 and sha512 are supported, but sha is not supported any more.

snmp_community = public

string value

SNMP community. Required for versions "v1" and "v2c"

snmp_polling_interval = 10

integer value

SNMP polling interval in seconds

snmp_port = 161

port value

SNMP port

snmp_priv_proto = aes

string value

SNMPv3 message privacy (encryption) protocol ID. Required for version v3. aes is supported.

snmp_security = None

string value

SNMP security name. Required for version v3.

snmp_version = v2c

string value

SNMP protocol version

5.1.24. ironic_lib

The following table outlines the options available under the [ironic_lib] group in the /etc/ironic/ironic.conf file.

Table 5.23. ironic_lib
Configuration option = Default valueTypeDescription

fatal_exception_format_errors = False

boolean value

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.

root_helper = sudo ironic-rootwrap /etc/ironic/rootwrap.conf

string value

Command that is prefixed to commands that are run as root. If not specified, no commands are run as root.

5.1.25. json_rpc

The following table outlines the options available under the [json_rpc] group in the /etc/ironic/ironic.conf file.

Table 5.24. json_rpc
Configuration option = Default valueTypeDescription

allowed_roles = ['admin']

list value

List of roles allowed to use JSON RPC

auth-url = None

string value

Authentication URL

auth_strategy = None

string value

Authentication strategy used by JSON RPC. Defaults to the global auth_strategy setting.

auth_type = None

string value

Authentication type to load

cafile = None

string value

PEM encoded Certificate Authority to use when verifying HTTPs connections.

certfile = None

string value

PEM encoded client certificate cert file

collect-timing = False

boolean value

Collect per-API call timing information.

default-domain-id = None

string value

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.

default-domain-name = None

string value

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.

domain-id = None

string value

Domain ID to scope to

domain-name = None

string value

Domain name to scope to

host_ip = ::

host address value

The IP address or hostname on which JSON RPC will listen.

http_basic_auth_user_file = /etc/ironic/htpasswd-json-rpc

string value

Path to Apache format user authentication file used when auth_strategy=http_basic

http_basic_password = None

string value

Password to use for HTTP Basic authentication client requests.

http_basic_username = None

string value

Name of the user to use for HTTP Basic authentication client requests.

insecure = False

boolean value

Verify HTTPS connections.

keyfile = None

string value

PEM encoded client certificate key file

password = None

string value

User’s password

port = 8089

port value

The port to use for JSON RPC

project-domain-id = None

string value

Domain ID containing project

project-domain-name = None

string value

Domain name containing project

project-id = None

string value

Project ID to scope to

project-name = None

string value

Project name to scope to

split-loggers = False

boolean value

Log requests to multiple loggers.

system-scope = None

string value

Scope for system operations

tenant-id = None

string value

Tenant ID

tenant-name = None

string value

Tenant Name

timeout = None

integer value

Timeout value for http requests

trust-id = None

string value

ID of the trust to use as a trustee use

use_ssl = False

boolean value

Whether to use TLS for JSON RPC

user-domain-id = None

string value

User’s domain id

user-domain-name = None

string value

User’s domain name

user-id = None

string value

User id

username = None

string value

Username

5.1.26. keystone_authtoken

The following table outlines the options available under the [keystone_authtoken] group in the /etc/ironic/ironic.conf file.

Table 5.25. keystone_authtoken
Configuration option = Default valueTypeDescription

auth_section = None

string value

Config Section from which to load plugin specific options

auth_type = None

string value

Authentication type to load

auth_uri = None

string value

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. Deprecated since: Queens

*Reason:*The auth_uri option is deprecated in favor of www_authenticate_uri and will be removed in the S release.

auth_version = None

string value

API version of the Identity API endpoint.

cache = None

string value

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.

cafile = None

string value

A PEM encoded Certificate Authority to use when verifying HTTPs connections. Defaults to system CAs.

certfile = None

string value

Required if identity server requires client certificate

delay_auth_decision = False

boolean value

Do not handle authorization requests within the middleware, but delegate the authorization decision to downstream WSGI components.

enforce_token_bind = permissive

string value

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.

http_connect_timeout = None

integer value

Request timeout value for communicating with Identity API server.

http_request_max_retries = 3

integer value

How many times are we trying to reconnect when communicating with Identity API Server.

include_service_catalog = True

boolean value

(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.

insecure = False

boolean value

Verify HTTPS connections.

interface = internal

string value

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

keyfile = None

string value

Required if identity server requires client certificate

memcache_pool_conn_get_timeout = 10

integer value

(Optional) Number of seconds that an operation will wait to get a memcached client connection from the pool.

memcache_pool_dead_retry = 300

integer value

(Optional) Number of seconds memcached server is considered dead before it is tried again.

memcache_pool_maxsize = 10

integer value

(Optional) Maximum total number of open connections to every memcached server.

memcache_pool_socket_timeout = 3

integer value

(Optional) Socket timeout in seconds for communicating with a memcached server.

memcache_pool_unused_timeout = 60

integer value

(Optional) Number of seconds a connection to memcached is held unused in the pool before it is closed.

memcache_secret_key = None

string value

(Optional, mandatory if memcache_security_strategy is defined) This string is used for key derivation.

memcache_security_strategy = None

string value

(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.

memcache_use_advanced_pool = True

boolean value

(Optional) Use the advanced (eventlet safe) memcached client pool.

memcached_servers = None

list value

Optionally specify a list of memcached server(s) to use for caching. If left undefined, tokens will instead be cached in-process.

region_name = None

string value

The region in which the identity server can be found.

service_token_roles = ['service']

list value

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.

service_token_roles_required = False

boolean value

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.

service_type = None

string value

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.

token_cache_time = 300

integer value

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.

www_authenticate_uri = None

string value

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.

5.1.27. mdns

The following table outlines the options available under the [mdns] group in the /etc/ironic/ironic.conf file.

Table 5.26. mdns
Configuration option = Default valueTypeDescription

interfaces = None

list value

List of IP addresses of interfaces to use for mDNS. Defaults to all interfaces on the system.

lookup_attempts = 3

integer value

Number of attempts to lookup a service.

params = {}

dict value

Additional parameters to pass for the registered service.

registration_attempts = 5

integer value

Number of attempts to register a service. Currently has to be larger than 1 because of race conditions in the zeroconf library.

5.1.28. metrics

The following table outlines the options available under the [metrics] group in the /etc/ironic/ironic.conf file.

Table 5.27. metrics
Configuration option = Default valueTypeDescription

agent_backend = noop

string value

Backend for the agent ramdisk to use for metrics. Default possible backends are "noop" and "statsd".

agent_global_prefix = None

string value

Prefix all metric names sent by the agent ramdisk with this value. The format of metric names is [global_prefix.][uuid.][host_name.]prefix.metric_name.

agent_prepend_host = False

boolean value

Prepend the hostname to all metric names sent by the agent ramdisk. The format of metric names is [global_prefix.][uuid.][host_name.]prefix.metric_name.

agent_prepend_host_reverse = True

boolean value

Split the prepended host value by "." and reverse it for metrics sent by the agent ramdisk (to better match the reverse hierarchical form of domain names).

agent_prepend_uuid = False

boolean value

Prepend the node’s Ironic uuid to all metric names sent by the agent ramdisk. The format of metric names is [global_prefix.][uuid.][host_name.]prefix.metric_name.

backend = noop

string value

Backend to use for the metrics system.

global_prefix = None

string value

Prefix all metric names with this value. By default, there is no global prefix. The format of metric names is [global_prefix.][host_name.]prefix.metric_name.

prepend_host = False

boolean value

Prepend the hostname to all metric names. The format of metric names is [global_prefix.][host_name.]prefix.metric_name.

prepend_host_reverse = True

boolean value

Split the prepended host value by "." and reverse it (to better match the reverse hierarchical form of domain names).

5.1.29. metrics_statsd

The following table outlines the options available under the [metrics_statsd] group in the /etc/ironic/ironic.conf file.

Table 5.28. metrics_statsd
Configuration option = Default valueTypeDescription

agent_statsd_host = localhost

string value

Host for the agent ramdisk to use with the statsd backend. This must be accessible from networks the agent is booted on.

agent_statsd_port = 8125

port value

Port for the agent ramdisk to use with the statsd backend.

statsd_host = localhost

string value

Host for use with the statsd backend.

statsd_port = 8125

port value

Port to use with the statsd backend.

5.1.30. molds

The following table outlines the options available under the [molds] group in the /etc/ironic/ironic.conf file.

Table 5.29. molds
Configuration option = Default valueTypeDescription

password = None

string value

Password for "http" Basic auth. By default set empty.

retry_attempts = 3

integer value

Retry attempts for saving or getting configuration molds.

retry_interval = 3

integer value

Retry interval for saving or getting configuration molds.

storage = swift

string value

Configuration mold storage location. Supports "swift" and "http". By default "swift".

user = None

string value

User for "http" Basic auth. By default set empty.

5.1.31. neutron

The following table outlines the options available under the [neutron] group in the /etc/ironic/ironic.conf file.

Table 5.30. neutron
Configuration option = Default valueTypeDescription

add_all_ports = False

boolean value

Option to enable transmission of all ports to neutron when creating ports for provisioning, cleaning, or rescue. This is done without IP addresses assigned to the port, and may be useful in some bonded network configurations.

auth-url = None

string value

Authentication URL

auth_type = None

string value

Authentication type to load

cafile = None

string value

PEM encoded Certificate Authority to use when verifying HTTPs connections.

certfile = None

string value

PEM encoded client certificate cert file

cleaning_network = None

string value

Neutron network UUID or name for the ramdisk to be booted into for cleaning nodes. Required for "neutron" network interface. It is also required if cleaning nodes when using "flat" network interface or "neutron" DHCP provider. If a name is provided, it must be unique among all networks or cleaning will fail.

cleaning_network_security_groups = []

list value

List of Neutron Security Group UUIDs to be applied during cleaning of the nodes. Optional for the "neutron" network interface and not used for the "flat" or "noop" network interfaces. If not specified, default security group is used.

collect-timing = False

boolean value

Collect per-API call timing information.

connect-retries = None

integer value

The maximum number of retries that should be attempted for connection errors.

connect-retry-delay = None

floating point value

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.

default-domain-id = None

string value

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.

default-domain-name = None

string value

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.

dhcpv6_stateful_address_count = 4

integer value

Number of IPv6 addresses to allocate for ports created for provisioning, cleaning, rescue or inspection on DHCPv6-stateful networks. Different stages of the chain-loading process will request addresses with different CLID/IAID. Due to non-identical identifiers multiple addresses must be reserved for the host to ensure each step of the boot process can successfully lease addresses.

domain-id = None

string value

Domain ID to scope to

domain-name = None

string value

Domain name to scope to

endpoint-override = None

string value

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.

insecure = False

boolean value

Verify HTTPS connections.

inspection_network = None

string value

Neutron network UUID or name for the ramdisk to be booted into for in-band inspection of nodes. If a name is provided, it must be unique among all networks or inspection will fail.

inspection_network_security_groups = []

list value

List of Neutron Security Group UUIDs to be applied during the node inspection process. Optional for the "neutron" network interface and not used for the "flat" or "noop" network interfaces. If not specified, the default security group is used.

keyfile = None

string value

PEM encoded client certificate key file

max-version = None

string value

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.

min-version = None

string value

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".

password = None

string value

User’s password

port_setup_delay = 0

integer value

Delay value to wait for Neutron agents to setup sufficient DHCP configuration for port.

project-domain-id = None

string value

Domain ID containing project

project-domain-name = None

string value

Domain name containing project

project-id = None

string value

Project ID to scope to

project-name = None

string value

Project name to scope to

provisioning_network = None

string value

Neutron network UUID or name for the ramdisk to be booted into for provisioning nodes. Required for "neutron" network interface. If a name is provided, it must be unique among all networks or deploy will fail.

provisioning_network_security_groups = []

list value

List of Neutron Security Group UUIDs to be applied during provisioning of the nodes. Optional for the "neutron" network interface and not used for the "flat" or "noop" network interfaces. If not specified, default security group is used.

region-name = None

string value

The default region_name for endpoint URL discovery.

request_timeout = 45

integer value

Timeout for request processing when interacting with Neutron. This value should be increased if neutron port action timeouts are observed as neutron performs pre-commit validation prior returning to the API client which can take longer than normal client/server interactions.

rescuing_network = None

string value

Neutron network UUID or name for booting the ramdisk for rescue mode. This is not the network that the rescue ramdisk will use post-boot — the tenant network is used for that. Required for "neutron" network interface, if rescue mode will be used. It is not used for the "flat" or "noop" network interfaces. If a name is provided, it must be unique among all networks or rescue will fail.

rescuing_network_security_groups = []

list value

List of Neutron Security Group UUIDs to be applied during the node rescue process. Optional for the "neutron" network interface and not used for the "flat" or "noop" network interfaces. If not specified, the default security group is used.

retries = 3

integer value

DEPRECATED: Client retries in the case of a failed request.

service-name = None

string value

The default service_name for endpoint URL discovery.

service-type = network

string value

The default service_type for endpoint URL discovery.

split-loggers = False

boolean value

Log requests to multiple loggers.

status-code-retries = None

integer value

The maximum number of retries that should be attempted for retriable HTTP status codes.

status-code-retry-delay = None

floating point value

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.

system-scope = None

string value

Scope for system operations

tenant-id = None

string value

Tenant ID

tenant-name = None

string value

Tenant Name

timeout = None

integer value

Timeout value for http requests

trust-id = None

string value

ID of the trust to use as a trustee use

user-domain-id = None

string value

User’s domain id

user-domain-name = None

string value

User’s domain name

user-id = None

string value

User id

username = None

string value

Username

valid-interfaces = ['internal', 'public']

list value

List of interfaces, in order of preference, for endpoint URL.

version = None

string value

Minimum Major API version within a given Major API version for endpoint URL discovery. Mutually exclusive with min_version and max_version

5.1.32. nova

The following table outlines the options available under the [nova] group in the /etc/ironic/ironic.conf file.

Table 5.31. nova
Configuration option = Default valueTypeDescription

auth-url = None

string value

Authentication URL

auth_type = None

string value

Authentication type to load

cafile = None

string value

PEM encoded Certificate Authority to use when verifying HTTPs connections.

certfile = None

string value

PEM encoded client certificate cert file

collect-timing = False

boolean value

Collect per-API call timing information.

connect-retries = None

integer value

The maximum number of retries that should be attempted for connection errors.

connect-retry-delay = None

floating point value

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.

default-domain-id = None

string value

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.

default-domain-name = None

string value

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.

domain-id = None

string value

Domain ID to scope to

domain-name = None

string value

Domain name to scope to

endpoint-override = None

string value

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.

insecure = False

boolean value

Verify HTTPS connections.

keyfile = None

string value

PEM encoded client certificate key file

max-version = None

string value

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.

min-version = None

string value

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".

password = None

string value

User’s password

project-domain-id = None

string value

Domain ID containing project

project-domain-name = None

string value

Domain name containing project

project-id = None

string value

Project ID to scope to

project-name = None

string value

Project name to scope to

region-name = None

string value

The default region_name for endpoint URL discovery.

send_power_notifications = True

boolean value

When set to True, it will enable the support for power state change callbacks to nova. This option should be set to False in deployments that do not have the openstack compute service.

service-name = None

string value

The default service_name for endpoint URL discovery.

service-type = compute

string value

The default service_type for endpoint URL discovery.

split-loggers = False

boolean value

Log requests to multiple loggers.

status-code-retries = None

integer value

The maximum number of retries that should be attempted for retriable HTTP status codes.

status-code-retry-delay = None

floating point value

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.

system-scope = None

string value

Scope for system operations

tenant-id = None

string value

Tenant ID

tenant-name = None

string value

Tenant Name

timeout = None

integer value

Timeout value for http requests

trust-id = None

string value

ID of the trust to use as a trustee use

user-domain-id = None

string value

User’s domain id

user-domain-name = None

string value

User’s domain name

user-id = None

string value

User id

username = None

string value

Username

valid-interfaces = ['internal', 'public']

list value

List of interfaces, in order of preference, for endpoint URL.

version = None

string value

Minimum Major API version within a given Major API version for endpoint URL discovery. Mutually exclusive with min_version and max_version

5.1.33. oslo_concurrency

The following table outlines the options available under the [oslo_concurrency] group in the /etc/ironic/ironic.conf file.

Table 5.32. oslo_concurrency
Configuration option = Default valueTypeDescription

disable_process_locking = False

boolean value

Enables or disables inter-process locks.

lock_path = None

string value

Directory to use for lock files. For security, the specified directory should only be writable by the user running the processes that need locking. Defaults to environment variable OSLO_LOCK_PATH. If external locks are used, a lock path must be set.

5.1.34. oslo_messaging_amqp

The following table outlines the options available under the [oslo_messaging_amqp] group in the /etc/ironic/ironic.conf file.

Table 5.33. oslo_messaging_amqp
Configuration option = Default valueTypeDescription

addressing_mode = dynamic

string value

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

anycast_address = anycast

string value

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.

broadcast_prefix = broadcast

string value

address prefix used when broadcasting to all servers

connection_retry_backoff = 2

integer value

Increase the connection_retry_interval by this many seconds after each unsuccessful failover attempt.

connection_retry_interval = 1

integer value

Seconds to pause before attempting to re-connect.

connection_retry_interval_max = 30

integer value

Maximum limit for connection_retry_interval + connection_retry_backoff

container_name = None

string value

Name for the AMQP container. must be globally unique. Defaults to a generated UUID

default_notification_exchange = None

string value

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

default_notify_timeout = 30

integer value

The deadline for a sent notification message delivery. Only used when caller does not provide a timeout expiry.

default_reply_retry = 0

integer value

The maximum number of attempts to re-send a reply message which failed due to a recoverable error.

default_reply_timeout = 30

integer value

The deadline for an rpc reply message delivery.

default_rpc_exchange = None

string value

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

default_send_timeout = 30

integer value

The deadline for an rpc cast or call message delivery. Only used when caller does not provide a timeout expiry.

default_sender_link_timeout = 600

integer value

The duration to schedule a purge of idle sender links. Detach link after expiry.

group_request_prefix = unicast

string value

address prefix when sending to any server in group

idle_timeout = 0

integer value

Timeout for inactive connections (in seconds)

link_retry_delay = 10

integer value

Time to pause between re-connecting an AMQP 1.0 link that failed due to a recoverable error.

multicast_address = multicast

string value

Appended to the address prefix when sending a fanout message. Used by the message bus to identify fanout messages.

notify_address_prefix = openstack.org/om/notify

string value

Address prefix for all generated Notification addresses

notify_server_credit = 100

integer value

Window size for incoming Notification messages

pre_settled = ['rpc-cast', 'rpc-reply']

multi valued

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

pseudo_vhost = True

boolean value

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.

reply_link_credit = 200

integer value

Window size for incoming RPC Reply messages.

rpc_address_prefix = openstack.org/om/rpc

string value

Address prefix for all generated RPC addresses

rpc_server_credit = 100

integer value

Window size for incoming RPC Request messages

`sasl_config_dir = `

string value

Path to directory that contains the SASL configuration

`sasl_config_name = `

string value

Name of configuration file (without .conf suffix)

`sasl_default_realm = `

string value

SASL realm to use if no realm present in username

`sasl_mechanisms = `

string value

Space separated list of acceptable SASL mechanisms

server_request_prefix = exclusive

string value

address prefix used when sending to a specific server

ssl = False

boolean value

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.

`ssl_ca_file = `

string value

CA certificate PEM file used to verify the server’s certificate

`ssl_cert_file = `

string value

Self-identifying certificate PEM file for client authentication

`ssl_key_file = `

string value

Private key PEM file used to sign ssl_cert_file certificate (optional)

ssl_key_password = None

string value

Password for decrypting ssl_key_file (if encrypted)

ssl_verify_vhost = False

boolean value

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.

trace = False

boolean value

Debug: dump AMQP frames to stdout

unicast_address = unicast

string value

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.

5.1.35. oslo_messaging_kafka

The following table outlines the options available under the [oslo_messaging_kafka] group in the /etc/ironic/ironic.conf file.

Table 5.34. oslo_messaging_kafka
Configuration option = Default valueTypeDescription

compression_codec = none

string value

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

conn_pool_min_size = 2

integer value

The pool size limit for connections expiration policy

conn_pool_ttl = 1200

integer value

The time-to-live in sec of idle connections in the pool

consumer_group = oslo_messaging_consumer

string value

Group id for Kafka consumer. Consumers in one group will coordinate message consumption

enable_auto_commit = False

boolean value

Enable asynchronous consumer commits

kafka_consumer_timeout = 1.0

floating point value

Default timeout(s) for Kafka consumers

kafka_max_fetch_bytes = 1048576

integer value

Max fetch bytes of Kafka consumer

max_poll_records = 500

integer value

The maximum number of records returned in a poll call

pool_size = 10

integer value

Pool Size for Kafka Consumers

producer_batch_size = 16384

integer value

Size of batch for the producer async send

producer_batch_timeout = 0.0

floating point value

Upper bound on the delay for KafkaProducer batching in seconds

sasl_mechanism = PLAIN

string value

Mechanism when security protocol is SASL

security_protocol = PLAINTEXT

string value

Protocol used to communicate with brokers

`ssl_cafile = `

string value

CA certificate PEM file used to verify the server certificate

`ssl_client_cert_file = `

string value

Client certificate PEM file used for authentication.

`ssl_client_key_file = `

string value

Client key PEM file used for authentication.

`ssl_client_key_password = `

string value

Client key password file used for authentication.

5.1.36. oslo_messaging_notifications

The following table outlines the options available under the [oslo_messaging_notifications] group in the /etc/ironic/ironic.conf file.

Table 5.35. oslo_messaging_notifications
Configuration option = Default valueTypeDescription

driver = []

multi valued

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

retry = -1

integer value

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

topics = ['notifications']

list value

AMQP topic used for OpenStack notifications.

transport_url = None

string value

A URL representing the messaging driver to use for notifications. If not set, we fall back to the same configuration used for RPC.

5.1.37. oslo_messaging_rabbit

The following table outlines the options available under the [oslo_messaging_rabbit] group in the /etc/ironic/ironic.conf file.

Table 5.36. oslo_messaging_rabbit
Configuration option = Default valueTypeDescription

amqp_auto_delete = False

boolean value

Auto-delete queues in AMQP.

amqp_durable_queues = False

boolean value

Use durable queues in AMQP. If rabbit_quorum_queue is enabled, queues will be durable and this value will be ignored.

direct_mandatory_flag = True

boolean value

(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

enable_cancel_on_failover = False

boolean value

Enable x-cancel-on-ha-failover flag so that rabbitmq server will cancel and notify consumerswhen queue is down

heartbeat_in_pthread = False

boolean value

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.

heartbeat_rate = 2

integer value

How often times during the heartbeat_timeout_threshold we check the heartbeat.

heartbeat_timeout_threshold = 60

integer value

Number of seconds after which the Rabbit broker is considered down if heartbeat’s keep-alive fails (0 disables heartbeat).

kombu_compression = None

string value

EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression will not be used. This option may not be available in future versions.

kombu_failover_strategy = round-robin

string value

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.

kombu_missing_consumer_retry_timeout = 60

integer value

How long to wait a missing client before abandoning to send it its replies. This value should not be longer than rpc_response_timeout.

kombu_reconnect_delay = 1.0

floating point value

How long to wait (in seconds) before reconnecting in response to an AMQP consumer cancel notification.

rabbit_ha_queues = False

boolean value

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"} "

rabbit_interval_max = 30

integer value

Maximum interval of RabbitMQ connection retries. Default is 30 seconds.

rabbit_login_method = AMQPLAIN

string value

The RabbitMQ login method.

rabbit_qos_prefetch_count = 0

integer value

Specifies the number of messages to prefetch. Setting to zero allows unlimited messages.

rabbit_quorum_delivery_limit = 0

integer value

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.

rabbit_quorum_max_memory_bytes = 0

integer value

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.

rabbit_quorum_max_memory_length = 0

integer value

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.

rabbit_quorum_queue = False

boolean value

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.

rabbit_retry_backoff = 2

integer value

How long to backoff for between retries when connecting to RabbitMQ.

rabbit_retry_interval = 1

integer value

How frequently to retry connecting with RabbitMQ.

rabbit_transient_queues_ttl = 1800

integer value

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.

ssl = False

boolean value

Connect over SSL.

`ssl_ca_file = `

string value

SSL certification authority file (valid only if SSL enabled).

`ssl_cert_file = `

string value

SSL cert file (valid only if SSL enabled).

ssl_enforce_fips_mode = False

boolean value

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.

`ssl_key_file = `

string value

SSL key file (valid only if SSL enabled).

`ssl_version = `

string value

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.

5.1.38. oslo_middleware

The following table outlines the options available under the [oslo_middleware] group in the /etc/ironic/ironic.conf file.

Table 5.37. oslo_middleware
Configuration option = Default valueTypeDescription

enable_proxy_headers_parsing = False

boolean value

Whether the application is behind a proxy or not. This determines if the middleware should parse the headers or not.

5.1.39. oslo_policy

The following table outlines the options available under the [oslo_policy] group in the /etc/ironic/ironic.conf file.

Table 5.38. oslo_policy
Configuration option = Default valueTypeDescription

enforce_new_defaults = False

boolean value

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.

enforce_scope = False

boolean value

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.

policy_default_rule = default

string value

Default rule. Enforced when a requested rule is not found.

policy_dirs = ['policy.d']

multi valued

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.

policy_file = policy.json

string value

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.

remote_content_type = application/x-www-form-urlencoded

string value

Content Type to send and receive data for REST based policy check

remote_ssl_ca_crt_file = None

string value

Absolute path to ca cert file for REST based policy check

remote_ssl_client_crt_file = None

string value

Absolute path to client cert for REST based policy check

remote_ssl_client_key_file = None

string value

Absolute path client key file REST based policy check

remote_ssl_verify_server_crt = False

boolean value

server identity verification for REST based policy check

5.1.40. oslo_reports

The following table outlines the options available under the [oslo_reports] group in the /etc/ironic/ironic.conf file.

Table 5.39. oslo_reports
Configuration option = Default valueTypeDescription

file_event_handler = None

string value

The path to a file to watch for changes to trigger the reports, instead of signals. Setting this option disables the signal trigger for the reports. If application is running as a WSGI application it is recommended to use this instead of signals.

file_event_handler_interval = 1

integer value

How many seconds to wait between polls when file_event_handler is set

log_dir = None

string value

Path to a log directory where to create a file

5.1.41. profiler

The following table outlines the options available under the [profiler] group in the /etc/ironic/ironic.conf file.

Table 5.40. profiler
Configuration option = Default valueTypeDescription

connection_string = messaging://

string value

Connection string for a notifier backend.

Default value is messaging:// which sets the notifier to oslo_messaging.

Examples of possible values:

  • messaging:// - use oslo_messaging driver for sending spans.
  • redis://127.0.0.1:6379 - use redis driver for sending spans.
  • mongodb://127.0.0.1:27017 - use mongodb driver for sending spans.
  • elasticsearch://127.0.0.1:9200 - use elasticsearch driver for sending spans.
  • jaeger://127.0.0.1:6831 - use jaeger tracing as driver for sending spans.

enabled = False

boolean value

Enable the profiling for all services on this node.

Default value is False (fully disable the profiling feature).

Possible values:

  • True: Enables the feature
  • False: Disables the feature. The profiling cannot be started via this project operations. If the profiling is triggered by another project, this project part will be empty.

es_doc_type = notification

string value

Document type for notification indexing in elasticsearch.

es_scroll_size = 10000

integer value

Elasticsearch splits large requests in batches. This parameter defines maximum size of each batch (for example: es_scroll_size=10000).

es_scroll_time = 2m

string value

This parameter is a time value parameter (for example: es_scroll_time=2m), indicating for how long the nodes that participate in the search will maintain relevant resources in order to continue and support it.

filter_error_trace = False

boolean value

Enable filter traces that contain error/exception to a separated place.

Default value is set to False.

Possible values:

  • True: Enable filter traces that contain error/exception.
  • False: Disable the filter.

hmac_keys = SECRET_KEY

string value

Secret key(s) to use for encrypting context data for performance profiling.

This string value should have the following format: <key1>[,<key2>,…​<keyn>], where each key is some random string. A user who triggers the profiling via the REST API has to set one of these keys in the headers of the REST API call to include profiling results of this node for this particular project.

Both "enabled" flag and "hmac_keys" config options should be set to enable profiling. Also, to generate correct profiling information across all services at least one key needs to be consistent between OpenStack projects. This ensures it can be used from client side to generate the trace, containing information from all possible resources.

sentinel_service_name = mymaster

string value

Redissentinel uses a service name to identify a master redis service. This parameter defines the name (for example: sentinal_service_name=mymaster).

socket_timeout = 0.1

floating point value

Redissentinel provides a timeout option on the connections. This parameter defines that timeout (for example: socket_timeout=0.1).

trace_sqlalchemy = False

boolean value

Enable SQL requests profiling in services.

Default value is False (SQL requests won’t be traced).

Possible values:

  • True: Enables SQL requests profiling. Each SQL query will be part of the trace and can the be analyzed by how much time was spent for that.
  • False: Disables SQL requests profiling. The spent time is only shown on a higher level of operations. Single SQL queries cannot be analyzed this way.

5.1.42. pxe

The following table outlines the options available under the [pxe] group in the /etc/ironic/ironic.conf file.

Table 5.41. pxe
Configuration option = Default valueTypeDescription

boot_retry_check_interval = 90

integer value

Interval (in seconds) between periodic checks on PXE boot retry. Has no effect if boot_retry_timeout is not set.

boot_retry_timeout = None

integer value

Timeout (in seconds) after which PXE boot should be retried. Must be less than [conductor]deploy_callback_timeout. Disabled by default.

default_ephemeral_format = ext4

string value

Default file system format for ephemeral partition, if one is created.

dir_permission = None

integer value

The permission that will be applied to the TFTP folders upon creation. This should be set to the permission such that the tftpserver has access to read the contents of the configured TFTP folder. This setting is only required when the operating system’s umask is restrictive such that ironic-conductor is creating files that cannot be read by the TFTP server. Setting to <None> will result in the operating system’s umask to be utilized for the creation of new tftp folders. The system default umask is masked out on the specified value. It is required that an octal representation is specified. For example: 0o755

enable_netboot_fallback = False

boolean value

If True, generate a PXE environment even for nodes that use local boot. This is useful when the driver cannot switch nodes to local boot, e.g. with SNMP or with Redfish on machines that cannot do persistent boot. Mostly useful for standalone ironic since Neutron will prevent incorrect PXE boot.

file_permission = 420

integer value

The permission which is used on files created as part of configuration and setup of file assets for PXE based operations. Defaults to a value of 0o644. This value must be specified as an octal representation. For example: 0o644

image_cache_size = 20480

integer value

Maximum size (in MiB) of cache for master images, including those in use.

image_cache_ttl = 10080

integer value

Maximum TTL (in minutes) for old master images in cache.

images_path = /var/lib/ironic/images/

string value

On the ironic-conductor node, directory where images are stored on disk.

initial_grub_template = $pybasedir/drivers/modules/initial_grub_cfg.template

string value

On ironic-conductor node, the path to the initial grubconfiguration template for grub network boot.

instance_master_path = /var/lib/ironic/master_images

string value

On the ironic-conductor node, directory where master instance images are stored on disk. Setting to the empty string disables image caching.

ip_version = 4

string value

The IP version that will be used for PXE booting. Defaults to 4. This option has been a no-op for in-treedrivers since the Ussuri development cycle.

ipxe_boot_script = $pybasedir/drivers/modules/boot.ipxe

string value

On ironic-conductor node, the path to the main iPXE script file.

ipxe_bootfile_name = undionly.kpxe

string value

Bootfile DHCP parameter.

ipxe_bootfile_name_by_arch = {}

dict value

Bootfile DHCP parameter per node architecture. For example: aarch64:ipxe_aa64.efi

ipxe_config_template = $pybasedir/drivers/modules/ipxe_config.template

string value

On ironic-conductor node, template file for iPXE operations.

ipxe_fallback_script = None

string value

File name (e.g. inspector.ipxe) of an iPXE script to fall back to when booting to a MAC-specific script fails. When not set, booting will fail in this case.

ipxe_timeout = 0

integer value

Timeout value (in seconds) for downloading an image via iPXE. Defaults to 0 (no timeout)

ipxe_use_swift = False

boolean value

Download deploy and rescue images directly from swift using temporary URLs. If set to false (default), images are downloaded to the ironic-conductor node and served over its local HTTP server. Applicable only when ipxe compatible boot interface is used.

kernel_append_params = nofb nomodeset vga=normal

string value

Additional append parameters for baremetal PXE boot.

loader_file_paths = {}

dict value

Dictionary describing the bootloaders to load into conductor PXE/iPXE boot folders values from the host operating system. Formatted as key of destination file name, and value of a full path to a file to be copied. File assets will have [pxe]file_permission applied, if set. If used, the file names should match established bootloader configuration settings for bootloaders. Use example: ipxe.efi:/usr/share/ipxe/ipxe-snponly-x86_64.efi,undionly.kpxe:/usr/share/ipxe/undionly.kpxe

pxe_bootfile_name = pxelinux.0

string value

Bootfile DHCP parameter.

pxe_bootfile_name_by_arch = {}

dict value

Bootfile DHCP parameter per node architecture. For example: aarch64:grubaa64.efi

pxe_config_subdir = pxelinux.cfg

string value

Directory in which to create symbolic links which represent the MAC or IP address of the ports on a node and allow boot loaders to load the PXE file for the node. This directory name is relative to the PXE or iPXE folders.

pxe_config_template = $pybasedir/drivers/modules/pxe_config.template

string value

On ironic-conductor node, template file for PXE loader configuration.

pxe_config_template_by_arch = {}

dict value

On ironic-conductor node, template file for PXE configuration per node architecture. For example: aarch64:/opt/share/grubaa64_pxe_config.template

tftp_master_path = /tftpboot/master_images

string value

On ironic-conductor node, directory where master TFTP images are stored on disk. Setting to the empty string disables image caching.

tftp_root = /tftpboot

string value

ironic-conductor node’s TFTP root path. The ironic-conductor must have read/write access to this path.

tftp_server = $my_ip

string value

IP address of ironic-conductor node’s TFTP server.

uefi_ipxe_bootfile_name = snponly.efi

string value

Bootfile DHCP parameter for UEFI boot mode. If you experience problems with booting using it, try ipxe.efi.

uefi_pxe_bootfile_name = bootx64.efi

string value

Bootfile DHCP parameter for UEFI boot mode.

uefi_pxe_config_template = $pybasedir/drivers/modules/pxe_grub_config.template

string value

On ironic-conductor node, template file for PXE configuration for UEFI boot loader. Generally this is used for GRUB specific templates.

5.1.43. redfish

The following table outlines the options available under the [redfish] group in the /etc/ironic/ironic.conf file.

Table 5.42. redfish
Configuration option = Default valueTypeDescription

auth_type = auto

string value

Redfish HTTP client authentication method.

connection_attempts = 5

integer value

Maximum number of attempts to try to connect to Redfish

connection_cache_size = 1000

integer value

Maximum Redfish client connection cache size. Redfish driver would strive to reuse authenticated BMC connections (obtained through Redfish Session Service). This option caps the maximum number of connections to maintain. The value of 0 disables client connection caching completely.

connection_retry_interval = 4

integer value

Number of seconds to wait between attempts to connect to Redfish

file_permission = 420

integer value

File permission for swift-less image hosting with the octal permission representation of file access permissions. This setting defaults to 644, or as the octal number 0o644 in Python. This setting must be set to the octal number representation, meaning starting with 0o.

firmware_source = http

string value

Specifies how firmware image should be served. Whether from its original location using the firmware source URL directly, or should serve it from ironic’s Swift or HTTP server.

firmware_update_fail_interval = 60

integer value

Number of seconds to wait between checking for failed firmware update tasks

firmware_update_status_interval = 60

integer value

Number of seconds to wait between checking for completed firmware update tasks

kernel_append_params = nofb nomodeset vga=normal

string value

Additional kernel parameters to pass down to the instance kernel. These parameters can be consumed by the kernel or by the applications by reading /proc/cmdline. Mind severe cmdline size limit! Can be overridden by instance_info/kernel_append_params property.

raid_config_fail_interval = 60

integer value

Number of seconds to wait between checking for failed raid config tasks

raid_config_status_interval = 60

integer value

Number of seconds to wait between checking for completed raid config tasks

swift_container = ironic_redfish_container

string value

The Swift container to store Redfish driver data. Applies only when use_swift is enabled.

swift_object_expiry_timeout = 900

integer value

Amount of time in seconds for Swift objects to auto-expire. Applies only when use_swift is enabled.

use_swift = True

boolean value

Upload generated ISO images for virtual media boot to Swift, then pass temporary URL to BMC for booting the node. If set to false, images are placed on the ironic-conductor node and served over its local HTTP server.

5.1.44. sensor_data

The following table outlines the options available under the [sensor_data] group in the /etc/ironic/ironic.conf file.

Table 5.43. sensor_data
Configuration option = Default valueTypeDescription

data_types = ['ALL']

list value

List of comma separated meter types which need to be sent to Ceilometer. The default value, "ALL", is a special value meaning send all the sensor data. This setting only applies to baremetal sensor data being processed through the conductor.

enable_for_conductor = True

boolean value

If to include sensor metric data for the Conductor process itself in the message payload for sensor data which allows operators to gather instance counts of actions and states to better manage the deployment.

enable_for_nodes = True

boolean value

If to transmit any sensor data for any nodes under this conductor’s management. This option superceeds the send_sensor_data_for_undeployed_nodes setting.

enable_for_undeployed_nodes = False

boolean value

The default for sensor data collection is to only collect data for machines that are deployed, however operators may desire to know if there are failures in hardware that is not presently in use. When set to true, the conductor will collect sensor information from all nodes when sensor data collection is enabled via the send_sensor_data setting.

interval = 600

integer value

Seconds between conductor sending sensor data message via the notification bus. This was originally for consumption via ceilometer, but the data may also be consumed via a plugin like ironic-prometheus-exporter or any other message bus data collector.

send_sensor_data = False

boolean value

Enable sending sensor data message via the notification bus.

wait_timeout = 300

integer value

The time in seconds to wait for send sensors data periodic task to be finished before allowing periodic call to happen again. Should be less than send_sensor_data_interval value.

workers = 4

integer value

The maximum number of workers that can be started simultaneously for send data from sensors periodic task.

5.1.45. service_catalog

The following table outlines the options available under the [service_catalog] group in the /etc/ironic/ironic.conf file.

Table 5.44. service_catalog
Configuration option = Default valueTypeDescription

auth-url = None

string value

Authentication URL

auth_type = None

string value

Authentication type to load

cafile = None

string value

PEM encoded Certificate Authority to use when verifying HTTPs connections.

certfile = None

string value

PEM encoded client certificate cert file

collect-timing = False

boolean value

Collect per-API call timing information.

connect-retries = None

integer value

The maximum number of retries that should be attempted for connection errors.

connect-retry-delay = None

floating point value

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.

default-domain-id = None

string value

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.

default-domain-name = None

string value

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.

domain-id = None

string value

Domain ID to scope to

domain-name = None

string value

Domain name to scope to

endpoint-override = None

string value

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.

insecure = False

boolean value

Verify HTTPS connections.

keyfile = None

string value

PEM encoded client certificate key file

max-version = None

string value

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.

min-version = None

string value

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".

password = None

string value

User’s password

project-domain-id = None

string value

Domain ID containing project

project-domain-name = None

string value

Domain name containing project

project-id = None

string value

Project ID to scope to

project-name = None

string value

Project name to scope to

region-name = None

string value

The default region_name for endpoint URL discovery.

service-name = None

string value

The default service_name for endpoint URL discovery.

service-type = baremetal

string value

The default service_type for endpoint URL discovery.

split-loggers = False

boolean value

Log requests to multiple loggers.

status-code-retries = None

integer value

The maximum number of retries that should be attempted for retriable HTTP status codes.

status-code-retry-delay = None

floating point value

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.

system-scope = None

string value

Scope for system operations

tenant-id = None

string value

Tenant ID

tenant-name = None

string value

Tenant Name

timeout = None

integer value

Timeout value for http requests

trust-id = None

string value

ID of the trust to use as a trustee use

user-domain-id = None

string value

User’s domain id

user-domain-name = None

string value

User’s domain name

user-id = None

string value

User id

username = None

string value

Username

valid-interfaces = ['internal', 'public']

list value

List of interfaces, in order of preference, for endpoint URL.

version = None

string value

Minimum Major API version within a given Major API version for endpoint URL discovery. Mutually exclusive with min_version and max_version

5.1.46. snmp

The following table outlines the options available under the [snmp] group in the /etc/ironic/ironic.conf file.

Table 5.45. snmp
Configuration option = Default valueTypeDescription

power_action_delay = 0

integer value

Time (in seconds) to sleep before power on and after powering off. Which may be needed with some PDUs as they may not honor toggling a specific power port in rapid succession without a delay. This option may be useful if the attached physical machine has a substantial power supply to hold it over in the event of a brownout.

power_timeout = 10

integer value

Seconds to wait for power action to be completed

reboot_delay = 0

integer value

Time (in seconds) to sleep between when rebooting (powering off and on again)

udp_transport_retries = 5

integer value

Maximum number of UDP request retries, 0 means no retries.

udp_transport_timeout = 1.0

floating point value

Response timeout in seconds used for UDP transport. Timeout should be a multiple of 0.5 seconds and is applicable to each retry.

5.1.47. ssl

The following table outlines the options available under the [ssl] group in the /etc/ironic/ironic.conf file.

Table 5.46. ssl
Configuration option = Default valueTypeDescription

ca_file = None

string value

CA certificate file to use to verify connecting clients.

cert_file = None

string value

Certificate file to use when starting the server securely.

ciphers = None

string value

Sets the list of available ciphers. value should be a string in the OpenSSL cipher list format.

key_file = None

string value

Private key file to use when starting the server securely.

version = None

string value

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.

5.1.48. swift

The following table outlines the options available under the [swift] group in the /etc/ironic/ironic.conf file.

Table 5.47. swift
Configuration option = Default valueTypeDescription

auth-url = None

string value

Authentication URL

auth_type = None

string value

Authentication type to load

cafile = None

string value

PEM encoded Certificate Authority to use when verifying HTTPs connections.

certfile = None

string value

PEM encoded client certificate cert file

collect-timing = False

boolean value

Collect per-API call timing information.

connect-retries = None

integer value

The maximum number of retries that should be attempted for connection errors.

connect-retry-delay = None

floating point value

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.

default-domain-id = None

string value

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.

default-domain-name = None

string value

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.

domain-id = None

string value

Domain ID to scope to

domain-name = None

string value

Domain name to scope to

endpoint-override = None

string value

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.

insecure = False

boolean value

Verify HTTPS connections.

keyfile = None

string value

PEM encoded client certificate key file

max-version = None

string value

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.

min-version = None

string value

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".

password = None

string value

User’s password

project-domain-id = None

string value

Domain ID containing project

project-domain-name = None

string value

Domain name containing project

project-id = None

string value

Project ID to scope to

project-name = None

string value

Project name to scope to

region-name = None

string value

The default region_name for endpoint URL discovery.

service-name = None

string value

The default service_name for endpoint URL discovery.

service-type = object-store

string value

The default service_type for endpoint URL discovery.

split-loggers = False

boolean value

Log requests to multiple loggers.

status-code-retries = None

integer value

The maximum number of retries that should be attempted for retriable HTTP status codes.

status-code-retry-delay = None

floating point value

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.

swift_max_retries = 2

integer value

Maximum number of times to retry a Swift request, before failing.

system-scope = None

string value

Scope for system operations

tenant-id = None

string value

Tenant ID

tenant-name = None

string value

Tenant Name

timeout = None

integer value

Timeout value for http requests

trust-id = None

string value

ID of the trust to use as a trustee use

user-domain-id = None

string value

User’s domain id

user-domain-name = None

string value

User’s domain name

user-id = None

string value

User id

username = None

string value

Username

valid-interfaces = ['internal', 'public']

list value

List of interfaces, in order of preference, for endpoint URL.

version = None

string value

Minimum Major API version within a given Major API version for endpoint URL discovery. Mutually exclusive with min_version and max_version

5.1.49. xclarity

The following table outlines the options available under the [xclarity] group in the /etc/ironic/ironic.conf file.

Table 5.48. xclarity
Configuration option = Default valueTypeDescription

manager_ip = None

string value

IP address of the XClarity Controller. Configuration here is deprecated and will be removed in the Stein release. Please update the driver_info field to use "xclarity_manager_ip" instead

password = None

string value

Password for XClarity Controller username. Configuration here is deprecated and will be removed in the Stein release. Please update the driver_info field to use "xclarity_password" instead

port = 443

port value

Port to be used for XClarity Controller connection.

username = None

string value

Username for the XClarity Controller. Configuration here is deprecated and will be removed in the Stein release. Please update the driver_info field to use "xclarity_username" instead

Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.