164 lines
4.0 KiB
ReStructuredText
164 lines
4.0 KiB
ReStructuredText
..
|
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
|
License.
|
|
|
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
|
|
|
==============================
|
|
Cyborg Generic Driver Proposal
|
|
==============================
|
|
|
|
https://blueprints.launchpad.net/openstack-cyborg/+spec/generic-driver-cyborg
|
|
|
|
This spec proposes to provide the initial design for Cyborg's generic driver.
|
|
|
|
Problem description
|
|
===================
|
|
|
|
This blueprint proposes to add a generic driver for openstack-cyborg.
|
|
The goal is to provide users & operators with a reliable generic
|
|
implementation that is hardware agnostic and provides basic
|
|
accelerator functionality.
|
|
|
|
Use Cases
|
|
---------
|
|
|
|
* As an admin user and a non-admin user with elevated privileges, I should be
|
|
able to identify and discover attached accelerator backends.
|
|
* As an admin user and a non-admin user with elevated privileges, I should be
|
|
able to view services on each attached backend after the agent has
|
|
discovered services on each backend.
|
|
* As an admin user and a non-admin user, I should be able to list and update
|
|
attached accelerators by driver by querying nova with the Cyborg-API.
|
|
* As an admin user and a non-admin user with elevated privileges, I should be
|
|
able to install accelerator generic driver.
|
|
* As an admin user and a non-admin user with elevated privileges, I should be
|
|
able to uninstall accelerator generic driver.
|
|
* As an admin user and a non-admin user with elevated privileges, I should be
|
|
able to issue attach command to the instance via the driver which gets
|
|
routed to Nova via the Cyborg API.
|
|
* As an admin user and a non-admin user with elevated privileges, I should be
|
|
able to issue detach command to the instance via the driver which gets
|
|
routed to Nova via the Cyborg API.
|
|
|
|
Proposed change
|
|
===============
|
|
|
|
* Cyborg needs a reference implementation that can be used as a model for
|
|
future driver implementations and that will be referred to as the generic
|
|
driver implementation
|
|
* Develop the generic driver implementation that supports CRUD operations for
|
|
accelerators for single backend and multi backend setup scenarios.
|
|
|
|
|
|
Alternatives
|
|
------------
|
|
|
|
None
|
|
|
|
Data model impact
|
|
-----------------
|
|
|
|
* The generic driver will update the central database when any CRUD or
|
|
attach/detach operations take place
|
|
|
|
REST API impact
|
|
---------------
|
|
|
|
This blueprint proposes to add the following APIs:
|
|
|
|
* cyborg install-driver <driver_id>
|
|
* cyborg uninstall-driver <driver_id>
|
|
* cyborg attach-instance <instance_id>
|
|
* cyborg detach-instance <instance_id>
|
|
* cyborg service-list
|
|
* cyborg driver-list
|
|
* cyborg update-driver <driver_id>
|
|
* cyborg discover-services
|
|
|
|
Security impact
|
|
---------------
|
|
|
|
None
|
|
|
|
Notifications impact
|
|
--------------------
|
|
|
|
None
|
|
|
|
Other end user impact
|
|
---------------------
|
|
|
|
None
|
|
|
|
Performance Impact
|
|
------------------
|
|
|
|
None
|
|
|
|
Other deployer impact
|
|
---------------------
|
|
|
|
None
|
|
|
|
Developer impact
|
|
----------------
|
|
|
|
Developers will have access to a reference generic implementation which
|
|
can be used to build vendor-specific drivers.
|
|
|
|
Implementation
|
|
==============
|
|
|
|
Assignee(s)
|
|
-----------
|
|
|
|
Primary assignee:
|
|
Rushil Chugh <rushil.chugh@gmail.com>
|
|
|
|
Work Items
|
|
----------
|
|
|
|
This change would entail the following:
|
|
|
|
* Add a feature to identify and discover attached accelerator backends.
|
|
* Add a feature to list services running on the backend
|
|
* Add a feature to attach accelerators to the generic backend.
|
|
* Add a feature to detach accelerators from the generic backend.
|
|
* Add a feature to list accelerators attached to the generic backend.
|
|
* Add a feature to modify accelerators attached to the generic backend.
|
|
* Defining a reference implementation detailing the flow of requests between
|
|
the cyborg-api, cyborg-conductor and nova-compute services.
|
|
|
|
Dependencies
|
|
============
|
|
|
|
Dependent on Cyborg API and Agent implementations.
|
|
|
|
Testing
|
|
=======
|
|
|
|
* Unit tests will be added test Cyborg generic driver.
|
|
|
|
Documentation Impact
|
|
====================
|
|
|
|
None
|
|
|
|
References
|
|
==========
|
|
|
|
None
|
|
|
|
History
|
|
=======
|
|
|
|
|
|
.. list-table:: Revisions
|
|
:header-rows: 1
|
|
|
|
* - Release
|
|
- Description
|
|
* - Pike
|
|
- Introduced
|