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