Lbaas, use Octavia as reference implementation

Change-Id: Ib8faac4238f2e0c4f7af0b37495c76402a349a89
This commit is contained in:
Doug Wiegley 2015-04-16 15:32:23 -06:00
parent a0dc78d7ae
commit 509c1aff5a
1 changed files with 165 additions and 0 deletions

View File

@ -0,0 +1,165 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==============================================
Lbaas, use Octavia as reference implementation
==============================================
https://blueprints.launchpad.net/neutron/+spec/lbaas-ref-octavia
The lbaas team intends to replace the reference implementation
with the service-vm like implementation provided by project
Octavia[1], which uses nova compute to provide scalability
and HA features.
Problem Description
===================
The existing reference implementation does not scale well,
does not handle HA, is fragile in the face of underlying host failures.
Proposed Change
===============
A neutron-lbaas Octavia driver (or shim) will be added to neutron-lbaas,
which will reference the controller/framework implemented by the Octavia
project[1].
The existing reference implementation, the namespace haproxy driver, will
remain in the neutron-lbaas tree for Liberty, for upgrades.
The default driver enabled in the neutron-lbaas.conf file will be Octavia,
a dependency on Octavia will be added to the project requirements file,
and packagers will have to install/deploy Octavia as part of an lbaas install.
The neutron-lbaas devstack plugin will start installing Octavia automatically.
Data Model Impact
-----------------
None.
REST API Impact
---------------
None.
Security Impact
---------------
None.
Notifications Impact
--------------------
None.
Other End User Impact
---------------------
None.
Performance Impact
------------------
None.
IPv6 Impact
-----------
None.
Other Deployer Impact
---------------------
Upgrades will have to manually choose to switch to Octavia. The old driver
will continue to function.
New installs will need to pull in and start Octavia.
Developer Impact
----------------
None.
Community Impact
----------------
The existing reference implementation is not well liked. Hopefully, this
starts to change that perception.
Alternatives
------------
One alternative is to continue to maintain the existing reference/agent
driver, and keep Octavia present as an option. The extra maintenance cycles
of keeping both drivers prime-time is less desirable by the lbaas team.
Implementation
==============
Assignee(s)
-----------
Primary assignee:
Octavia team
Work Items
----------
- Octavia neutron-lbaas driver.
- Tweak requirements.
- Convert tests to stably run with Octavia.
- Modify devstack plugin
Dependencies
============
* A working Octavia implemention. The switch will happen no later than the
middle of L-3, and only if Octavia is "complete enough" for production use,
as determined by the services lieutenant and/or the PTL.
Testing
=======
Existing tests will exercise the Octavia backend. Additional jobs will be
added to continue testing the namespace/haproxy backend, until it is
removed (schedule TBD.)
Tempest Tests
-------------
Same as existing.
Functional Tests
----------------
Same as existing.
API Tests
---------
Same as existing.
Documentation Impact
====================
User Documentation
------------------
References to the driver/config settings will need to be updated, as will documentation
on how to check if the right agents are running/troubleshooting.
Developer Documentation
-----------------------
None.
References
==========
[1] https://github.com/stackforge/octavia