iRMC Management Driver for Ironic

https://blueprints.launchpad.net/ironic/+spec/irmc-management-driver

The proposal presents the work required to add support for management standard interface for FUJITSU PRIMERGY iRMC, integrated Remote Management Controller, Drivers in Ironic.

Problem description

FUJITSU PRIMERGY iRMC allows IPMI to get/set boot mode either legacy BIOS or UEFI, and SCCI to get sensor data. However the current Ironic standard Management Module, ipmitool.IPMIManagement, cannot make use of the iRMC’s capabilities.

Proposed change

This module inherits ipmitool.IPMIManagement and overrides the following two functions for iRMC Drivers, namely pxe_irmc, iscsi_irmc, and agent_irmc [*], in order to make use of iRMC IPMI boot mode get/set capability and SCCI get sensor data.

This module will be re-factored, when Ironic set/get boot mode I/F is standardized in Ironic Management Interface.

  • set_boot_device() - If ‘boot_mode:uefi’ is specified in capabilities parameter within properties field of an Ironic node, this function issues IPMI Set System Boot Options Command with setting on the bit 5 of data1, BIOS Boot Type to UEFI, in the parameter selector 5 to iRMC. Otherwise this function just calls the parent class function, ipmitool.IPMIManagement.set_boot_device() as default.
  • get_sensors_data() - If optional parameter ‘sensor_method=scci’ is specified in [irmc] section of the ironic configuration file, this function gets sensors data via iRMC SCCI which returns not only standard but also vendor specific sensor data. iRMC SCCI uses python-scciclient package. Otherwise, if the optional parameter is the default value ‘sensor_method=ipmitool’, this function just calls the parent class function, ipmitool.IPMIManagement.get_sensors_data() as default.
[*]

Driver consists of five elements. In the initial implementation, iRMC driver supports three combinations out of all combinations.

driver power boot deploy management console
pxe_irmc irmc pxe iscsi irmc ipmi
iscsi_irmc irmc irmc iscsi irmc ipmi
agent_irmc irmc irmc agent irmc ipmi

Other combinations are considered in the next development cycle based on customer’s feedback.

Alternatives

There is no alternative if bare metal node is necessary for booting in UEFI mode automatically.

IPMI management module can be used only if deployer sets boot mode of a bare metal node manually into UEFI.

Data model impact

None

REST API impact

None

RPC API impact

None

Driver API impact

None

Nova driver impact

None

Security impact

Admin credentials will be stored unencrypted in the DB and they will be visible in the driver_info field of the node when a node-show is issued. But only the ironic admin user will have access to the Ironic DB and node details.

Other end user impact

None

Scalability impact

None

Performance Impact

None

Other deployer impact

  • To configure a node in BIOS mode:

    ironic node-update <node-uuid> add properties/capabilities='boot_mode:bios'
  • To configure a node in UEFI mode:

    ironic node-update <node-uuid> add properties/capabilities='boot_mode:uefi'

Developer impact

None

Implementation

Assignee(s)

Primary assignee:
Naohiro Tamura (naohirot)
Other contributors:
None

Work Items

  • Implement iRMC Management Module for the iRMC Drivers (pxe_irmc, iscsi_irmc, agent_irmc) by inheriting ipmitool.IPMIManagement and overrides set_boot_device() and get_sensors_data().

Dependencies

Testing

  • Unit Tests
  • Fujitsu plans Third-party CI Tests

Upgrades and Backwards Compatibility

The default behavior of this driver remains compatible with ipmitool.IPMIManagement.

Documentation Impact

The required driver_info fields and [irmc] section parameters in the ironic configuration file need be included in the documentation to instruct operators how to use Ironic with iRMC.