Merge "Remove valence-integration.rst"
This commit is contained in:
commit
694346ae1e
@ -1,176 +0,0 @@
|
|||||||
..
|
|
||||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
|
||||||
License.
|
|
||||||
|
|
||||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
|
||||||
|
|
||||||
===================
|
|
||||||
Valence Integration
|
|
||||||
===================
|
|
||||||
|
|
||||||
https://blueprints.launchpad.net/mogan/+spec/rsd-integration
|
|
||||||
|
|
||||||
The current Mogan implementation only supports pre-set configuration servers.
|
|
||||||
For custom servers, Mogan should to be able to compose bare metal through
|
|
||||||
integration with Valence that leverages the Redfish API to compose nodes using
|
|
||||||
disaggregated resources.
|
|
||||||
|
|
||||||
|
|
||||||
Problem description
|
|
||||||
===================
|
|
||||||
|
|
||||||
Mogan currently can only provision pre-set configuration servers, but users may
|
|
||||||
want to request a custom server with specific configurations like CPU, RAM, and
|
|
||||||
DISK.
|
|
||||||
|
|
||||||
Use Cases
|
|
||||||
---------
|
|
||||||
|
|
||||||
* An enterprise user wants to manage the RSD and general servers in a
|
|
||||||
unified manner.
|
|
||||||
|
|
||||||
* An enterprise user wants to apply a custom server with CPU, RAM, and DISK
|
|
||||||
specified himself.
|
|
||||||
|
|
||||||
|
|
||||||
Proposed change
|
|
||||||
===============
|
|
||||||
|
|
||||||
First, we need to refactor our flavor to pass Valence required parameters when
|
|
||||||
composing a node, need to align with Valence team. But for non-rack servers
|
|
||||||
we can keep the current way of scheduling a node to provision.
|
|
||||||
|
|
||||||
When a request come with the Valence specific flavor, We can invoke Valence to
|
|
||||||
compose the node on the fly, then register the composed node into Ironic with
|
|
||||||
Redfish driver(not supported yet). When nodes are enrolled in Ironic, there's
|
|
||||||
no difference with non-rack nodes. And these works are all done before the
|
|
||||||
current instance create workflow, so we can create a new taskflow [1]_ for
|
|
||||||
Valence which includes compose and enroll tasks:
|
|
||||||
|
|
||||||
ComposeNodeTask:
|
|
||||||
* execute: Invoke Valence to compose a node according the specified flavor.
|
|
||||||
* revert: Release the composed node if there's something wrong when enrolling.
|
|
||||||
|
|
||||||
EnrollNodeTask:
|
|
||||||
* execute: Enroll the composed node to Ironic.
|
|
||||||
* revert: If some exception raised and the node has been enrolled, need to
|
|
||||||
remove it from Ironic.
|
|
||||||
|
|
||||||
For Valence node, we should skip the scheduling task in provison workflow.
|
|
||||||
Currently there are ScheduleCreateInstanceTask and OnFailureRescheduleTask,
|
|
||||||
we can get rid of these two tasks when initialize the task flow in Valence
|
|
||||||
scenario. Or maybe can handle this like select which node instances are
|
|
||||||
launched(not supported yet).
|
|
||||||
|
|
||||||
Also, if there's some exception raised when provisioning, we should release the
|
|
||||||
composed node to Valence pool and remove it from Ironic.
|
|
||||||
|
|
||||||
When deleting a node we should remove it from ironic first, then release the
|
|
||||||
resources to Valence pool. For this, we can add a new field to instance to
|
|
||||||
indicate whether it's a valence instance or not.
|
|
||||||
|
|
||||||
|
|
||||||
Alternatives
|
|
||||||
------------
|
|
||||||
|
|
||||||
It will automatically invoke valence to compose node if scheduling max attempts
|
|
||||||
exceeds instead of using a specific flavor to indicate it's a Valence instance.
|
|
||||||
|
|
||||||
Data model impact
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
The proposed change will be add the following fields to the instance object
|
|
||||||
with their data type and default value for migrations.
|
|
||||||
|
|
||||||
+-----------------------+--------------+-----------------+
|
|
||||||
| Field Name | Field Type | Migration Value |
|
|
||||||
+=======================+==============+=================+
|
|
||||||
| composed | bool | None |
|
|
||||||
+-----------------------+--------------+-----------------+
|
|
||||||
|
|
||||||
|
|
||||||
REST API impact
|
|
||||||
---------------
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
Security impact
|
|
||||||
---------------
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
Notifications impact
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
Other end user impact
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
Performance Impact
|
|
||||||
------------------
|
|
||||||
|
|
||||||
There's one potential performance impact on the instance creating process,
|
|
||||||
as we need to composing the node from Valence first.
|
|
||||||
|
|
||||||
Other deployer impact
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
Developer impact
|
|
||||||
----------------
|
|
||||||
|
|
||||||
* As Mogan plans to support not only Ironic driver but also CloudBoot, need
|
|
||||||
to figure out whether CloudBoot has supported Redfish already or there's not
|
|
||||||
a plan to support it.
|
|
||||||
|
|
||||||
|
|
||||||
Implementation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Assignee(s)
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Primary assignee:
|
|
||||||
<niu-zglinux>
|
|
||||||
|
|
||||||
Work Items
|
|
||||||
----------
|
|
||||||
|
|
||||||
* Refactor flavor(instance type) to meet Valence's requirements.
|
|
||||||
* Add `composed` filed to instance object.
|
|
||||||
* Add a new taskflow for node composing and enrolling.
|
|
||||||
* Change delete instance process to handle composed node gracefully.
|
|
||||||
* Add Valence installation in Mogan devstack plugin as an option
|
|
||||||
|
|
||||||
Dependencies
|
|
||||||
============
|
|
||||||
|
|
||||||
* Need valence client to be ready to integrate.
|
|
||||||
|
|
||||||
* Redfish driver landed in ironic.
|
|
||||||
|
|
||||||
* Valence PodManager simulator need to be improved, maybe return a fake
|
|
||||||
node(VM) and maybe we can test it with ssh driver before Redfish driver
|
|
||||||
available.
|
|
||||||
|
|
||||||
|
|
||||||
Testing
|
|
||||||
=======
|
|
||||||
|
|
||||||
Unit Testing will be added.
|
|
||||||
|
|
||||||
Documentation Impact
|
|
||||||
====================
|
|
||||||
|
|
||||||
Docs about Valence integration will be added.
|
|
||||||
|
|
||||||
References
|
|
||||||
==========
|
|
||||||
|
|
||||||
.. [1] https://wiki.openstack.org/wiki/TaskFlow
|
|
||||||
|
|
||||||
* https://wiki.openstack.org/wiki/Valence
|
|
Loading…
Reference in New Issue
Block a user