ironic: revert to ironic's default drivers & interfaces

There's no good reason to provide our own defaults for Ironic driver and
interface configuration. It easily gets out of sync with changes in
Ironic. Let's remove our defaults, and let Ironic provide them.

Note that this changes several of the defaults, which are listed in the
release note. Users are still able to override them using the existing
variables in ironic.yml.

Change-Id: Ie27adca0029e41439720eaac49b24cf13fc8068d
This commit is contained in:
Mark Goddard 2022-04-07 17:40:17 +01:00
parent c726492e49
commit 64272cf1f1
5 changed files with 83 additions and 52 deletions

View File

@ -4,111 +4,92 @@
# Specify the list of hardware types to load during service initialization.
kolla_ironic_enabled_hardware_types:
- ipmi
# Specify the list of bios interfaces to load during service initialization.
kolla_ironic_enabled_bios_interfaces:
- no-bios
# Default bios interface to be used for nodes that do not have bios_interface
# field set.
kolla_ironic_default_bios_interface: no-bios
kolla_ironic_default_bios_interface:
# Specify the list of boot interfaces to load during service initialization.
kolla_ironic_enabled_boot_interfaces:
- ipxe
- pxe
# Default boot interface to be used for nodes that do not have boot_interface
# field set.
kolla_ironic_default_boot_interface: ipxe
kolla_ironic_default_boot_interface:
# Specify the list of console interfaces to load during service initialization.
kolla_ironic_enabled_console_interfaces:
- ipmitool-socat
- no-console
# Default console interface to be used for nodes that do not have
# console_interface field set.
kolla_ironic_default_console_interface: ipmitool-socat
kolla_ironic_default_console_interface:
# Specify the list of deploy interfaces to load during service initialization.
kolla_ironic_enabled_deploy_interfaces:
- direct
# Default deploy interface to be used for nodes that do not have
# deploy_interface field set.
kolla_ironic_default_deploy_interface: direct
kolla_ironic_default_deploy_interface:
# Specify the list of inspect interfaces to load during service initialization.
kolla_ironic_enabled_inspect_interfaces:
- inspector
- no-inspect
# Default inspect interface to be used for nodes that do not have
# inspect_interface field set.
kolla_ironic_default_inspect_interface: inspector
kolla_ironic_default_inspect_interface:
# Specify the list of management interfaces to load during service
# initialization.
kolla_ironic_enabled_management_interfaces:
- ipmitool
# Default management interface to be used for nodes that do not have
# management_interface field set.
kolla_ironic_default_management_interface: ipmitool
kolla_ironic_default_management_interface:
# Specify the list of network interfaces to load during service initialization.
kolla_ironic_enabled_network_interfaces:
- noop
- flat
- neutron
# Default network interface to be used for nodes that do not have
# network_interface field set.
kolla_ironic_default_network_interface: neutron
kolla_ironic_default_network_interface:
# Specify the list of power interfaces to load during service initialization.
kolla_ironic_enabled_power_interfaces:
- ipmitool
# Default power interface to be used for nodes that do not have power_interface
# field set.
kolla_ironic_default_power_interface: ipmitool
kolla_ironic_default_power_interface:
# Specify the list of raid interfaces to load during service initialization.
kolla_ironic_enabled_raid_interfaces:
- agent
- no-raid
# Default raid interface to be used for nodes that do not have
# raid_interface field set.
kolla_ironic_default_raid_interface: no-raid
kolla_ironic_default_raid_interface:
# Specify the list of rescue interfaces to load during service initialization.
kolla_ironic_enabled_rescue_interfaces:
- agent
- no-rescue
# Default rescue interface to be used for nodes that do not have
# rescue_interface field set.
kolla_ironic_default_rescue_interface: no-rescue
kolla_ironic_default_rescue_interface:
# Specify the list of storage interfaces to load during
# service initialization.
#kolla_ironic_enabled_storage_interfaces:
kolla_ironic_enabled_storage_interfaces:
# Default storage interface to be used for nodes that do not
# have storage_interface field set.
#kolla_ironic_default_storage_interface:
kolla_ironic_default_storage_interface:
# Specify the list of vendor interfaces to load during service initialization.
kolla_ironic_enabled_vendor_interfaces:
- no-vendor
# Default vendor interface to be used for nodes that do not have
# vendor_interface field set.
kolla_ironic_default_vendor_interface: no-vendor
kolla_ironic_default_vendor_interface:
# Name of the Neutron network to use for cleaning.
kolla_ironic_cleaning_network: "{{ kolla_ironic_provisioning_network if cleaning_net_name == provision_wl_net_name else 'cleaning-net' }}"

View File

@ -457,46 +457,39 @@ kolla_enable_influxdb: false
# Whether to enable Ironic.
kolla_enable_ironic: false
# List of enabled Ironic drivers.
kolla_ironic_drivers:
- agent_ssh
- agent_ipmitool
- pxe_ssh
- pxe_ipmitool
# Specify the list of hardware types to load during service initialization.
kolla_ironic_enabled_hardware_types: []
kolla_ironic_enabled_hardware_types:
# Specify the list of bios interfaces to load during service initialization.
kolla_ironic_enabled_bios_interfaces: []
kolla_ironic_enabled_bios_interfaces:
# Default bios interface to be used for nodes that do not have bios_interface
# field set.
kolla_ironic_default_bios_interface:
# Specify the list of boot interfaces to load during service initialization.
kolla_ironic_enabled_boot_interfaces: []
kolla_ironic_enabled_boot_interfaces:
# Default boot interface to be used for nodes that do not have boot_interface
# field set.
kolla_ironic_default_boot_interface:
# Specify the list of console interfaces to load during service initialization.
kolla_ironic_enabled_console_interfaces: []
kolla_ironic_enabled_console_interfaces:
# Default console interface to be used for nodes that do not have
# console_interface field set.
kolla_ironic_default_console_interface:
# Specify the list of deploy interfaces to load during service initialization.
kolla_ironic_enabled_deploy_interfaces: []
kolla_ironic_enabled_deploy_interfaces:
# Default deploy interface to be used for nodes that do not have
# deploy_interface field set.
kolla_ironic_default_deploy_interface:
# Specify the list of inspect interfaces to load during service initialization.
kolla_ironic_enabled_inspect_interfaces: []
kolla_ironic_enabled_inspect_interfaces:
# Default inspect interface to be used for nodes that do not have
# inspect_interface field set.
@ -504,35 +497,35 @@ kolla_ironic_default_inspect_interface:
# Specify the list of management interfaces to load during service
# initialization.
kolla_ironic_enabled_management_interfaces: []
kolla_ironic_enabled_management_interfaces:
# Default management interface to be used for nodes that do not have
# management_interface field set.
kolla_ironic_default_management_interface:
# Specify the list of network interfaces to load during service initialization.
kolla_ironic_enabled_network_interfaces: []
kolla_ironic_enabled_network_interfaces:
# Default network interface to be used for nodes that do not have
# network_interface field set.
kolla_ironic_default_network_interface:
# Specify the list of power interfaces to load during service initialization.
kolla_ironic_enabled_power_interfaces: []
kolla_ironic_enabled_power_interfaces:
# Default power interface to be used for nodes that do not have power_interface
# field set.
kolla_ironic_default_power_interface:
# Specify the list of raid interfaces to load during service initialization.
kolla_ironic_enabled_raid_interfaces: []
kolla_ironic_enabled_raid_interfaces:
# Default raid interface to be used for nodes that do not have
# raid_interface field set.
kolla_ironic_default_raid_interface:
# Specify the list of rescue interfaces to load during service initialization.
kolla_ironic_enabled_rescue_interfaces: []
kolla_ironic_enabled_rescue_interfaces:
# Default rescue interface to be used for nodes that do not have
# rescue_interface field set.
@ -540,14 +533,14 @@ kolla_ironic_default_rescue_interface:
# Specify the list of storage interfaces to load during
# service initialization.
kolla_ironic_enabled_storage_interfaces: []
kolla_ironic_enabled_storage_interfaces:
# Default storage interface to be used for nodes that do not
# have storage_interface field set.
kolla_ironic_default_storage_interface:
# Specify the list of vendor interfaces to load during service initialization.
kolla_ironic_enabled_vendor_interfaces: []
kolla_ironic_enabled_vendor_interfaces:
# Default vendor interface to be used for nodes that do not have
# vendor_interface field set.

View File

@ -1,5 +1,7 @@
[DEFAULT]
{% if kolla_ironic_enabled_hardware_types %}
enabled_hardware_types: {{ kolla_ironic_enabled_hardware_types | join(',') }}
{% endif %}
{# Add configuration of enabled and default dynamic driver interfaces. #}
{% set interfaces=['boot', 'bios', 'console', 'deploy', 'inspect', 'management',

View File

@ -38,5 +38,17 @@ compute_libvirt_sasl_password: "{% raw %}{{ lookup('password', '/tmp/libvirt-sas
# Enable ironic for testing baremetal compute.
kolla_enable_ironic: true
# TODO(mgoddard): Remove condition and contents when previous release is Epoxy.
# In Dalmatian we switched to the upstream ironic defaults for hardware
# interfaces, which does not enable the following interfaces.
{% if not is_previous_release | default(false) %}
kolla_ironic_enabled_console_interfaces:
- ipmitool-socat
- no-console
kolla_ironic_enabled_inspect_interfaces:
- inspector
- no-inspect
{% endif %}
# Disable heat to save disk space.
kolla_enable_heat: false

View File

@ -0,0 +1,43 @@
---
upgrade:
- |
Kayobe no longer overrides the enabled and default Ironic hardware types
and interfaces. This ensures that changes to the default values in Ironic
are automatically adopted. These may still be customised via the existing
Kayobe variables in ``${KAYOBE_CONFIG_PATH}/ironic.yml``, e.g.
``kolla_ironic_enabled_hardware_types``.
The default configuration generated by Kayobe in Caracal was:
.. code-block:: ini
enabled_hardware_types = ipmi
enabled_bios_interfaces = no-bios
enabled_boot_interfaces = ipxe,pxe
enabled_console_interfaces = ipmitool-socat,no-console
enabled_inspect_interfaces = inspector,no-inspect
enabled_management_interfaces = ipmitool
enabled_network_interfaces = noop,flat,neutron
enabled_power_interfaces = ipmitool
enabled_raid_interfaces = agent,no-raid
enabled_rescue_interfaces = agent,no-rescue
enabled_vendor_interfaces = no-vendor
In Dalmatian, Ironic defaults are:
.. code-block:: ini
enabled_hardware_types = ipmi,redfish
enabled_bios_interfaces = no-bios,redfish
enabled_boot_interfaces = ipxe,pxe,redfish-virtual-media
enabled_console_interfaces = no-console
enabled_inspect_interfaces = no-inspect,redfish
enabled_management_interfaces = <determined by enabled hardware types>
enabled_network_interfaces = flat,noop
enabled_power_interfaces = <determined by enabled hardware types>
enabled_raid_interfaces = agent,no-raid,redfish
enabled_rescue_interfaces = no-rescue
enabled_vendor_interfaces = ipmitool,redfish,no-vendor
In particular, note that the ``neutron`` network interface is no longer
enabled by default.