iRMC Power Driver for Ironic

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

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

Problem description

FUJITSU PRIMERGY iRMC is a BMC from FUJITSU offering a remote system management. This proposal adds the power management capabilities for iRMC.

Proposed change

Adding new iRMC Driver, namely pxe_irmc, to the list of available drivers in Ironic and implementing the iRMC power module to interact with ServerView Common Command Interface (SCCI) described in FUJITSU Software ServerView Suite, Remote Management, iRMC S4 - integrated Remote Management Controller

iRMC supports WS-MAN, CIM, SMASH CLP, IPMI, SNMP, and etc. ServerView Common Command Interface (SCCI), however, is chosen since it is the most capable among them.

ServerView Common Command Interface (SCCI) uses python-scciclient package.

Alternatives

Standard IPMI can be used for the power management.

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

The following driver_info fields can be provided:

  • irmc_address: hostname or IP of iRMC
  • irmc_username: username for iRMC with administrator privileges
  • irmc_password: password for irmc_username
  • irmc_port: port number of iRMC (optional)
  • irmc_auth_method: authentication method for iRMC (optional)

The following parameters are added into newly created [irmc] section in the ironic configuration file which is typically located at /etc/ironic/ironic.conf.

  • port: default value of iRMC (80 or 443) port number. The default value is 443.
  • auth_method: default value of iRMC authentication method (basic or digest). The default value is basic.
  • client_timeout: default timeout for SCCI operations. The default value is 60 seconds.

Scalability impact

None

Performance Impact

None

Other deployer impact

None

Developer impact

None

Implementation

Assignee(s)

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

Work Items

  • Add iRMC Driver (pxe_irmc)
  • Implement iRMC power module for the iRMC Drivers

Dependencies

  • This feature requires at least BX S4 or RX S8 generation of FUJITSU PRIMERGY servers.
  • This feature requires python-scciclient library. This dependency will be checked on calling __init__() of iRMC driver.

Testing

  • Unit Tests with mocking python-scciclient library.
  • Fujitsu plans Third-party CI Tests

Upgrades and Backwards Compatibility

None

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.