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¶
Release |
Description |
---|---|
Pike |
Introduced |