Propose Redfish support into Ironic
- Adding the spec - Ref: https://bugs.launchpad.net/ironic/+bug/1526477 Related-Bug: #1526477 Change-Id: I87a0072227d656da94b2ab216d8d17b30249fe1f
This commit is contained in:
parent
1e707316f8
commit
88b55d4307
180
specs/approved/ironic-redfish.rst
Normal file
180
specs/approved/ironic-redfish.rst
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
=========================
|
||||||
|
Redfish driver interfaces
|
||||||
|
=========================
|
||||||
|
|
||||||
|
https://bugs.launchpad.net/ironic/+bug/1526477
|
||||||
|
|
||||||
|
This specification proposes the addition of a new driver in order to support
|
||||||
|
Ironic deployment on Redfish compliant servers.
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
The Distributed Management Task Force (DMTF) has published a new specification
|
||||||
|
called Redfish (refer to http://www.dmtf.org/standards/redfish) to provide a
|
||||||
|
RESTful based API to manage servers in a standard way. This specification aims
|
||||||
|
at adding support to Ironic for controlling Redfish compliant servers.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
Power and management interfaces will be extended with Redfish support.
|
||||||
|
The new Redfish module can use either the python-redfish (when it is mature
|
||||||
|
enough) or the sushy library for communicating with a Redfish system.
|
||||||
|
(refer to https://github.com/openstack/python-redfish and
|
||||||
|
https://github.com/openstack/sushy)
|
||||||
|
|
||||||
|
The goal is to provide power management similarly to what is done
|
||||||
|
in the pre-existing in-tree drivers.
|
||||||
|
|
||||||
|
Note that no OEM specific extension will be supported.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
No real alternative exists currently
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
None
|
||||||
|
|
||||||
|
RPC API impact
|
||||||
|
--------------
|
||||||
|
None
|
||||||
|
|
||||||
|
State Machine Impact
|
||||||
|
--------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Driver API impact
|
||||||
|
-----------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Nova driver impact
|
||||||
|
------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Ramdisk impact
|
||||||
|
--------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Client (CLI) impact
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Scalability impact
|
||||||
|
------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
The following driver_info fields are required while enrolling nodes into Ironic:
|
||||||
|
* redfish_uri URI of the System to interact with
|
||||||
|
(e.g.: http://x.y.z.t/redfish/v1/Systems/1 or
|
||||||
|
https://redfishmgr/redfish/v1/Systems/CX34R87)
|
||||||
|
* redfish_username: User account with admin/server-profile access privilege
|
||||||
|
* redfish_password: User account password
|
||||||
|
* redfish_verify_ca: this property contains either a boolean value,
|
||||||
|
a path to a CA_BUNDLE file or directory with
|
||||||
|
certificates of trusted CAs. If set to True
|
||||||
|
the driver will verify the host certificates;
|
||||||
|
if False the driver will ignore verifying the
|
||||||
|
SSL certificate; If it's a path the driver will
|
||||||
|
use the specified certificate or one of the
|
||||||
|
certificates in the directory. Defaults to True.
|
||||||
|
|
||||||
|
The following new configuration variables are proposed (and their default
|
||||||
|
values) to be added to the conductor variable group:
|
||||||
|
|
||||||
|
* [redfish]/connection_attempts = 5
|
||||||
|
|
||||||
|
Maximum number of attempts to try to connect to Redfish
|
||||||
|
|
||||||
|
* [redfish]/connection_retry_interval = 2
|
||||||
|
|
||||||
|
Number of seconds to wait between attempts to connect to Redfish
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
bcornec
|
||||||
|
lucasagomes
|
||||||
|
|
||||||
|
Other contributors:
|
||||||
|
ribaudr
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Add new Redfish hardware type, supporting power and management interface
|
||||||
|
APIs and providing PXE, virtual media boot and standard deployment
|
||||||
|
methods.
|
||||||
|
* Writing unit-test cases for the Redfish type.
|
||||||
|
* Adaptation of the devstack Ironic module to add this capability, based
|
||||||
|
on the virtualbmc work, adding to it the minimal required Redfish REST
|
||||||
|
API support.
|
||||||
|
* Writing configuration documents.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
This driver requires either that python-redfish or sushy installed on the
|
||||||
|
conductor node.
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
Unit-tests will be implemented for Redfish support.
|
||||||
|
|
||||||
|
DevStack will be update to setup the nodes with the redfish driver and
|
||||||
|
the libvirt mockup that is shipped with Sushy allowing it to be tests
|
||||||
|
in gate against virtual machines.
|
||||||
|
|
||||||
|
Upgrades and Backwards Compatibility
|
||||||
|
====================================
|
||||||
|
This driver will not break any compatibility with either the REST API or
|
||||||
|
the RPC API.
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
* Writing configuration documents.
|
||||||
|
* Updating Ironic documentation section _`Enabling Drivers`:
|
||||||
|
http://docs.openstack.org/developer/ironic/deploy/drivers.html with Redfish
|
||||||
|
related instructions.
|
||||||
|
* Updating Ironic install-guide documentation section
|
||||||
|
_`Setup the drivers for the Bare Metal service`:
|
||||||
|
http://docs.openstack.org/project-install-guide/baremetal/draft/setup-drivers.html
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
_`Redfish DMTF`: http://www.dmtf.org/standards/redfish
|
||||||
|
_`python-redfish`: https://github.com/openstack/python-redfish
|
||||||
|
_`sushy`: https://github.com/openstack/sushy
|
1
specs/not-implemented/ironic-redfish.rst
Symbolic link
1
specs/not-implemented/ironic-redfish.rst
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../approved/ironic-redfish.rst
|
Loading…
Reference in New Issue
Block a user