Cyborg Generic Driver Proposal

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

Revisions
Release Description
Pike Introduced
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.