Spec detailing capability gaps with n-lbaas API

This spec is meant to enumerate the features and capabilities needed from the
Octavia API to achieve parity with the Neutron LBaaS API

Change-Id: I9bc348c6f86f868ec5e9ab2be2ae49947bfbacdc
This commit is contained in:
Brandon Logan 2016-04-28 00:20:21 -05:00 committed by Michael Johnson
parent 549b1ce29d
commit 0fbd683591
1 changed files with 118 additions and 0 deletions

View File

@ -0,0 +1,118 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
========================================
Align octavia API With Neutron LBaaS API
========================================
Problem description
===================
For the octavia API to truly be standalone, it needs to have capability parity
with Neutron LBaaS's API. Neutron LBaaS has the luxury of piggy-backing off
of Neutron's API. This gives Neutron LBaaS's API resources many capabilities
for free. This document is meant to enumerate those capabilities that the
octavia API does not possess at the time of this writing.
Proposed change
===============
Complete the tasks enumerated in the `Work Items`_ section
Alternatives
------------
* Do nothing and keep the status quo
Data model impact
-----------------
There will be some minor data model changes to octavia in support of this
change.
REST API impact
---------------
This change will have significant impact to the octavia API.
Security impact
---------------
This change will improve octavia security by adding keystone authentication.
Notifications impact
--------------------
No expected change.
Other end user impact
---------------------
Users will be able to use the new octavia API endpoint for LBaaS.
Performance Impact
------------------
This change may slightly improve performance by reducing the number of
software layers requests will traverse before responding to the request.
Other deployer impact
---------------------
Over time the neutron-lbaas package will be deprecated and deployers will
only require octavia for LBaaS.
Developer impact
----------------
This will simplify LBaaS development by reducing the number of databases
as well as repositories that require updating for LBaaS enhancements.
Implementation
==============
Assignee(s)
-----------
blogan
diltram
johnsom
rm_you
dougwig
Work Items
----------
Implement the following API Capabilities:
* Keystone Authentication
* Policy Engine
* Pagination
* Quotas
* Filtering lists by query parameter
* Fields by query parameter
* Add the same root API endpoints as n-lbaas
* Support "provider" option in the API to select a driver to spin up a load
balancer.
* API Handler layer to become the same as n-lbaas driver layer and allow
multiple handlers/drivers.
* Neutron LBaaS V2 driver to octavia API Handler shim layer
Implement the following additional features that n-lbaas maintains:
* OSC extension via a new repository 'python-octaviaclient'
Other Features to be Considered:
* Notifications for resource creating, updating, and deleting.
* Flavors
* Agent namespace driver or some lightweight functional driver.
* Testing octavia with all of the above
* REST API Microversioning
Dependencies
============
None
Testing
=======
Api tests from neutron-lbaas will be used to validate the new octavia API.
Documentation Impact
====================
The octavia api reference will need to be updated.
References
==========