Add spec for Ironic Valence Integration
This spec explains the idea of adding a new nodes register API to Valence that can be used to register a composed node to Ironic to be consumed. Change-Id: I662415a357a745be7dc6933f23b9e442f824b9b5
This commit is contained in:
parent
c2c41b9d38
commit
ff274c04e4
@ -11,6 +11,7 @@ Ocata specs:
|
||||
:maxdepth: 1
|
||||
|
||||
specs/ocata/approved/*
|
||||
specs/pike/approved/*
|
||||
|
||||
==================
|
||||
Indices and tables
|
||||
|
123
specs/pike/approved/valence-ironic-integration.rst
Normal file
123
specs/pike/approved/valence-ironic-integration.rst
Normal file
@ -0,0 +1,123 @@
|
||||
|
||||
==========================
|
||||
Valence Ironic Integration
|
||||
==========================
|
||||
This proposal describes the integration of projects Valence and
|
||||
OpenStack Baremetal Service, Ironic.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
Valence allows to compose nodes out of a pool of disaggregated hardware.
|
||||
And Ironic allows to provision bare metal machines. Once the node is
|
||||
composed by Valence that can be registered to Ironic to be consumed.
|
||||
So this feature aims on providing a way to integrate Valence and Ironic,
|
||||
so that users will be able to provision bare metal machines on the composed
|
||||
nodes by Ironic.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
To enable Valence to be able to register its composed node to Ironic, we
|
||||
will add a new API endpoint /v1/nodes/{ID}/register. The detailed explanation
|
||||
of this API is as below:
|
||||
|
||||
1. Add a new Valence /v1/nodes/{ID}/register API
|
||||
This introduces a new nodes API in valence that will be used to register a
|
||||
composed node in Ironic. Below steps explains a detailed flow of registering
|
||||
a node from Valence to Ironic.
|
||||
|
||||
Step 1: User calls Valence APIs to register a node.
|
||||
|
||||
$ valence node-register test-node
|
||||
This API will register the test-node to Ironic.
|
||||
|
||||
NOTE: Once the node is registered to Ironic, no further actions like deleting
|
||||
the node, changing the boot device will be supported by Valence. Admin can use
|
||||
the Ironic APIs to perform these actions.
|
||||
|
||||
Step 2: Valence calls Ironic API internally to register this node which is equivalent to:
|
||||
|
||||
$ ironic node-create –d redfish –i redfish_root_uri <Redfish URL> -i refish_username <username> ...
|
||||
This will create a new node in Ironic with all the required details related
|
||||
to Redfish. It will also create a port in Ironic with the node's MAC address.
|
||||
|
||||
After the node is succesfully registered to Ironic, users can use the Ironic or
|
||||
Nova to install an OS on the node.
|
||||
|
||||
Also we will add another API endpoint /v1/nodes/{ID}/unregister to delete the node from Ironic.
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
None
|
||||
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
Add a new field 'managed_by' in Nodes DB.
|
||||
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
1. Add a new API endpoint /v1/node/{ID}/register
|
||||
1. Add a new API endpoint /v1/node/{ID}/unregister
|
||||
|
||||
Driver API impact
|
||||
-----------------
|
||||
1. Add a new driver that can be used to interact with ironic.
|
||||
|
||||
|
||||
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:
|
||||
Madhuri Kumari
|
||||
|
||||
Work Items
|
||||
----------
|
||||
* Add a driver in Valence to interact with Ironic.
|
||||
* Add a new field 'managed_by' in Nodes DB.
|
||||
* Add new API endpoint /v1/node/{ID}/register.
|
||||
* Add new API endpoint /v1/node/{ID}/unregister.
|
||||
* Update api-ref to include the new API.
|
||||
|
||||
Dependencies
|
||||
============
|
||||
Depends on Ironic project. python-ironicclient needs to be
|
||||
added to the project's requirement.
|
||||
|
||||
Testing
|
||||
=======
|
||||
* Each patch will be accompanied with unit testcases.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
Update document to include the details of new node register API.
|
||||
|
||||
References
|
||||
==========
|
||||
None
|
Loading…
x
Reference in New Issue
Block a user