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.
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
Notifications impact
None
Other end user 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
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
History
Revisions
Release |
Description |
Pike |
Introduced |