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 value Type Description 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 = USDpybasedir/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'] 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'] 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 = ['pxe'] 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'] 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'] 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'] 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 = ['ipmitool'] 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 = ['ipmitool'] 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'] 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', '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 = /boot/grub/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 = USDpybasedir/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 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 `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 = USDpybasedir/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 setto "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 rotation. log_rotation_type = none string value Log rotation type. logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)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 %(tenant)s %(domain)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 = False 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. 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 = USDpybasedir 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 value Type Description 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 value Type Description default_ks_template = USDpybasedir/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. 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 value Type Description 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 USDPATH configured for user running ironic-conductor process. Provide the full path when ansible-playbook is not in USDPATH or installed in not default location. config_file_path = USDpybasedir/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 USDplaybooks_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 USDplaybooks_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 USDplaybooks_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 USDplaybooks_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 = USDpybasedir/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 value Type Description 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 = USDpybasedir/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. 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. 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 value Type Description 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 value Type Description 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 Trust ID 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 value Type Description 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 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. 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. 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. 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. send_sensor_data = False boolean value Enable sending sensor data message via the notification bus send_sensor_data_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. send_sensor_data_interval = 600 integer value Seconds between conductor sending sensor data message to ceilometer via the notification bus. send_sensor_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. send_sensor_data_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. send_sensor_data_workers = 4 integer value The maximum number of workers that can be started simultaneously for send data from sensors periodic task. 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. 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 value Type Description 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 = USDmy_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 value Type Description 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 value Type Description 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 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). 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= 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 value Type Description 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 = bios 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 "bios", but it will be changed to "uefi in the future. It is recommended to set an explicit value for this option. This option only has effect when management interface supports boot mode management default_boot_option = local string value Default boot option to use when no boot option is requested in node's driver_info. Defaults to "local". Prior to the Ussuri release, the default was "netboot". 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 = 1 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 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 value Type Description dhcp_provider = neutron string value DHCP provider to use. "neutron" uses Neutron, 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 value Type Description 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 value Type Description 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 value Type Description 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. 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 value Type Description 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_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 Trust ID 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 value Type Description 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 value Type Description ca_file = None string value CA certificate file to validate iLO. 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 value Type Description 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 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 Trust ID 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. ipmi The following table outlines the options available under the [ipmi] group in the /etc/ironic/ironic.conf file. Table 5.20. ipmi Configuration option = Default value Type Description 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.22. irmc The following table outlines the options available under the [irmc] group in the /etc/ironic/ironic.conf file. Table 5.21. irmc Configuration option = Default value Type Description 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 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_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_security = None string value SNMP security name. Required for version "v3" snmp_version = v2c string value SNMP protocol version 5.1.23. ironic_lib The following table outlines the options available under the [ironic_lib] group in the /etc/ironic/ironic.conf file. Table 5.22. ironic_lib Configuration option = Default value Type Description 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.24. iscsi The following table outlines the options available under the [iscsi] group in the /etc/ironic/ironic.conf file. Table 5.23. iscsi Configuration option = Default value Type Description conv_flags = None string value Flags that need to be sent to the dd command, to control the conversion of the original file when copying to the host. It can contain several options separated by commas. portal_port = 3260 port value The port number on which the iSCSI portal listens for incoming connections. verify_attempts = 3 integer value Maximum attempts to verify an iSCSI connection is active, sleeping 1 second between attempts. Defaults to 3. 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 value Type Description 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 Trust ID 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 value Type Description 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 = False boolean value (Optional) Use the advanced (eventlet safe) memcached client pool. The advanced pool will only work under python 2.x. 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 value Type Description 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 value Type Description 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 value Type Description 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 value Type Description 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 value Type Description 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 Trust ID 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 value Type Description 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 Trust ID 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 value Type Description 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 value Type Description 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 value Type Description 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 value Type Description 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 value Type Description amqp_auto_delete = False boolean value Auto-delete queues in AMQP. amqp_durable_queues = False boolean value Use durable queues in AMQP. 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 = True 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. 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 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 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_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_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 value Type Description 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 value Type Description 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 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 value Type Description 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 value Type Description 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 value Type Description 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. It is recommended 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. 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. 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. EXPERIMENTAL ipxe_boot_script = USDpybasedir/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 = USDpybasedir/drivers/modules/ipxe_config.template string value On ironic-conductor node, template file for iPXE operations. 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. pxe_append_params = nofb nomodeset vga=normal string value Additional append parameters for baremetal PXE boot. 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 = USDpybasedir/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 = USDmy_ip string value IP address of ironic-conductor node's TFTP server. uefi_ipxe_bootfile_name = ipxe.efi string value Bootfile DHCP parameter for UEFI boot mode. If you experience problems with booting using it, try snponly.efi. uefi_pxe_bootfile_name = bootx64.efi string value Bootfile DHCP parameter for UEFI boot mode. uefi_pxe_config_template = USDpybasedir/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 value Type Description 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_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. service_catalog The following table outlines the options available under the [service_catalog] group in the /etc/ironic/ironic.conf file. Table 5.43. service_catalog Configuration option = Default value Type Description 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 Trust ID 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.45. snmp The following table outlines the options available under the [snmp] group in the /etc/ironic/ironic.conf file. Table 5.44. snmp Configuration option = Default value Type Description 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.46. ssl The following table outlines the options available under the [ssl] group in the /etc/ironic/ironic.conf file. Table 5.45. ssl Configuration option = Default value Type Description 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.47. swift The following table outlines the options available under the [swift] group in the /etc/ironic/ironic.conf file. Table 5.46. swift Configuration option = Default value Type Description 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 Trust ID 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.48. xclarity The following table outlines the options available under the [xclarity] group in the /etc/ironic/ironic.conf file. Table 5.47. xclarity Configuration option = Default value Type Description 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

Commands: