Add spec for OpenBMC driver
Currently IPMI is not fully supported by OpenBMC. Instead, OpenBMC's power and boot device is controlled through a RESTful interface. While IPMI may be a supported mechanism in the future for OpenBMC, the recommended way to interact with it will continue to be its RESTful API. This means that servers running OpenBMC will require a new module to control its power, a new module to set the boot device, and a hardware type that has these modules supported. This patch adds a spec for these items. Partial-bug: #1634635 Change-Id: Ie272f3ad2d4ae5bcb1bd542007dfcdb4adfcb799
This commit is contained in:
parent
0224d04313
commit
e04ef0fcbe
191
specs/approved/openbmc-driver.rst
Normal file
191
specs/approved/openbmc-driver.rst
Normal file
@ -0,0 +1,191 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
=================
|
||||
OpenBMC Driver
|
||||
=================
|
||||
|
||||
https://bugs.launchpad.net/ironic/+bug/1634635
|
||||
|
||||
This proposal covers the addition of power and management interfaces for
|
||||
OpenBMC and the addition of driver to the IPA and PXE driver classes.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
Currently IPMI is not fully supported by OpenBMC. Instead, OpenBMC's
|
||||
power is controlled through a RESTful interface. As well, the boot device can
|
||||
be retrieved and set through this RESTful interface. While IPMI may be
|
||||
supported by OpenBMC in the future, the recommended way to interact with it
|
||||
will continue to be its `REST API <https://github.com/openbmc/docs/blob/master/rest-api.md>`_.
|
||||
|
||||
Servers running OpenBMC will require a new interface implementation to control
|
||||
its power, another to set the boot device, and a hardware type that use
|
||||
has these interfaces supported.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
The addition of an OpenBMCPower() module conforming to base.PowerInterface.
|
||||
Login credentials will be specified as openbmc_address, openbmc_username, and
|
||||
openbmc_password in the driver_info property of the node.
|
||||
|
||||
The addition of an OpenBMCManagement() module conforming to
|
||||
base.ManagementInterface which also uses the openbmc_address, openbmc_username,
|
||||
and openbmc_password as login credentials.
|
||||
|
||||
The module will login to the BMC, issue the proper command, then
|
||||
log out of the BMC.
|
||||
|
||||
A hardware type, OpenBMCHardware, will be added. This hardware type will have
|
||||
OpenBMCPower in it's 'supported_power_interfaces' list. This hardware type
|
||||
will also have OpenBMCManagement in it's 'supported_management_interfaces'
|
||||
list.
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
Wait for IPMI functionality to be fully supported by OpenBMC. This would
|
||||
allow the pxe_ipmitool and agent_ipmitool drivers to work.
|
||||
|
||||
The disadvantage here is that it is not the recommended method of interaction
|
||||
with the BMC. As well, it is unknown when IPMI will be fully supported.
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
State Machine Impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
None
|
||||
|
||||
Client (CLI) impact
|
||||
-------------------
|
||||
|
||||
None
|
||||
|
||||
"ironic" CLI
|
||||
~~~~~~~~~~~~
|
||||
|
||||
None
|
||||
|
||||
"openstack baremetal" CLI
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
None
|
||||
|
||||
RPC API impact
|
||||
--------------
|
||||
|
||||
None
|
||||
|
||||
Driver API impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
Nova driver impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
Ramdisk impact
|
||||
--------------
|
||||
|
||||
None
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Scalability impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
Michael Turek (mjturek)
|
||||
|
||||
Other contributors:
|
||||
Mark Hamzy (mark-hamzy)
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* Implement a new power interface, OpenBMCPower, conforming
|
||||
to base.PowerInterface.
|
||||
* Implement a new management interface, OpenBMCManagement, conforming
|
||||
to base.ManagementInterface
|
||||
* Add hardware type, OpenBMCHardware, that has these interfaces as supported.
|
||||
* Add documentation detailing usage of interfaces and driver.
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
This feature will only be usable by target hardware that runs OpenBMC.
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
The feature will be tested using the `KVM on POWER OpenStack CI <https://wiki.openstack.org/wiki/PowerKVM>`_ environment.
|
||||
|
||||
The job will run the ironic tempest tests, but no new integration tests will be
|
||||
added. The job will test against real hardware initially.
|
||||
|
||||
Unit tests will be added as well.
|
||||
|
||||
|
||||
Upgrades and Backwards Compatibility
|
||||
====================================
|
||||
|
||||
None
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
Documentation will be added describing the new interfaces and how to use them.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
* `OpenPOWER <https://github.com/openbmc/openbmc>`_
|
||||
* `OpenBMC REST API Examples <https://github.com/openbmc/docs/blob/master/rest-api.md>`_
|
||||
* `KVM on POWER OpenStack CI <https://wiki.openstack.org/wiki/PowerKVM>`_
|
1
specs/not-implemented/openbmc-driver.rst
Symbolic link
1
specs/not-implemented/openbmc-driver.rst
Symbolic link
@ -0,0 +1 @@
|
||||
../approved/openbmc-driver.rst
|
Loading…
Reference in New Issue
Block a user