taikun.cloud

Taikun Logo

Taikun OCP Guide

Table of Contents

Drivers, Hardware Types and Hardware Interfaces

Generic Interfaces

interfaces/boot interfaces/deploy

Hardware Types

drivers/ibmc drivers/idrac drivers/ilo drivers/intel-ipmi
drivers/ipmitool drivers/irmc drivers/redfish drivers/snmp
drivers/xclarity drivers/fake

Changing Hardware Types
and Interfaces

Hardware types and interfaces are enabled in the configuration as
described in /install/enabling-drivers. Usually, a hardware type is
configured on enrolling as described in /install/enrollment:

baremetal node create --driver <hardware type>

Any hardware interfaces can be specified on enrollment as well:

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 hardware_interfaces_defaults. 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:

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:

baremetal node create --name test --driver fake-hardware
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:

    baremetal node set test --driver ipmi \
        --boot-interface pxe \
        --deploy-interface direct \
        --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:

    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:

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

    You can still specify explicit values for some interfaces:

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

Static boot order configuration

Some hardware is known to misbehave when changing the boot device
through the BMC. To work around it you can use the noop
management interface implementation with the ipmi and
redfish hardware types. In this case the Bare Metal service
will not change the boot device for you, leaving the pre-configured boot
order.

For example, in case of the pxe-boot:

  1. Via any available means configure the boot order on the node as
    follows:

    1. Boot from PXE/iPXE on the provisioning NIC.

      Warning

      If it is not possible to limit network boot to only provisioning NIC,
      make sure that no other DHCP/PXE servers are accessible by the node.

    2. Boot from hard drive.

  2. Make sure the noop management interface is enabled,
    for example:

    [DEFAULT]
    enabled_hardware_types = ipmi,redfish
    enabled_management_interfaces = ipmitool,redfish,noop
  3. Change the node to use the noop management
    interface:

    baremetal node set <NODE> --management-interface noop

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.