diff --git a/ansible/inventory/group_vars/all/ironic b/ansible/inventory/group_vars/all/ironic index 103d46f54..72f26e2f7 100644 --- a/ansible/inventory/group_vars/all/ironic +++ b/ansible/inventory/group_vars/all/ironic @@ -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' }}" diff --git a/ansible/roles/kolla-openstack/defaults/main.yml b/ansible/roles/kolla-openstack/defaults/main.yml index b389e8ebb..d14540bcf 100644 --- a/ansible/roles/kolla-openstack/defaults/main.yml +++ b/ansible/roles/kolla-openstack/defaults/main.yml @@ -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. diff --git a/ansible/roles/kolla-openstack/templates/kolla/config/ironic.conf b/ansible/roles/kolla-openstack/templates/kolla/config/ironic.conf index 49c5203e8..f91aad0db 100644 --- a/ansible/roles/kolla-openstack/templates/kolla/config/ironic.conf +++ b/ansible/roles/kolla-openstack/templates/kolla/config/ironic.conf @@ -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', diff --git a/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2 index 84301ef94..2f0f90c8f 100644 --- a/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2 +++ b/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2 @@ -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 diff --git a/releasenotes/notes/ironic-default-drivers-7a27baa7a301922c.yaml b/releasenotes/notes/ironic-default-drivers-7a27baa7a301922c.yaml new file mode 100644 index 000000000..d3f0fd15e --- /dev/null +++ b/releasenotes/notes/ironic-default-drivers-7a27baa7a301922c.yaml @@ -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 = + enabled_network_interfaces = flat,noop + enabled_power_interfaces = + 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.