Drivers, Hardware Types and Hardware Interfaces

Changing Hardware Types and Interfaces

Hardware types and interfaces are enabled in the configuration as described in Enabling drivers and hardware types. Usually, a hardware type is configured on enrolling as described in Enrollment:

openstack baremetal node create --driver <hardware type>

Any hardware interfaces can be specified on enrollment as well:

openstack baremetal node create --driver <hardware type> \
    --deploy-interface direct --<other>-interface <other implementation>

For the remaining interfaces the default value is assigned as described in Defaults for hardware interfaces. Both the hardware type and the hardware interfaces can be changed later via the node update API.

Changing Hardware Interfaces

Hardware interfaces can be changed by the following command:

openstack baremetal node set <NODE> \
    --deploy-interface direct \
    --<other>-interface <other implementation>

The modified interfaces must be enabled and compatible with the current node’s hardware type.

Changing Hardware Type

Changing the node’s hardware type can pose a problem. When the driver field is updated, the final result must be consistent, that is, the resulting hardware interfaces must be compatible with the new hardware type. This will not work:

openstack baremetal node create --name test --driver fake-hardware
openstack baremetal node set test --driver ipmi

This is because the fake-hardware hardware type defaults to fake implementations for some or all interfaces, but the ipmi hardware type is not compatible with them. There are three ways to deal with this situation:

  1. Provide new values for all incompatible interfaces, for example:

    openstack baremetal node set test --driver ipmi \
        --boot-interface pxe \
        --deploy-interface iscsi \
        --management-interface ipmitool \
        --power-interface ipmitool
    
  2. Request resetting some of the interfaces to their new defaults by using the --reset-<IFACE>-interface family of arguments, for example:

    openstack baremetal node set test --driver ipmi \
        --reset-boot-interface \
        --reset-deploy-interface \
        --reset-management-interface \
        --reset-power-interface
    

    Note

    This feature is available starting with ironic 11.1.0 (Rocky series, API version 1.45).

  3. Request resetting all interfaces to their new defaults:

    openstack baremetal node set test --driver ipmi --reset-interfaces
    

    You can still specify explicit values for some interfaces:

    openstack baremetal node set test --driver ipmi --reset-interfaces \
        --deploy-interface direct
    

    Note

    This feature is available starting with ironic 11.1.0 (Rocky series, API version 1.45).

Unsupported drivers

The following drivers were declared as unsupported in ironic Newton release and as of Ocata release they are removed from ironic:

The SSH drivers were removed in the Pike release. Similar functionality can be achieved either with VirtualBMC or using libvirt drivers from ironic-staging-drivers.