Multi-vendor support for LBaaS in Havana
This document deals with incremental approach for promoting multi vendor support for LBaaS in Havana. The design goal is to continue what was outlined during Grizzly which is to have a single LBaaS plugin running multi-vendor drivers selected via the Service Type semantics.
This document is focused on defining the steps needed to add “Driver” support for Havana. Later documents will address the driver selection mechanisms.
The intent is to introduce each “step” in this document as a BP and a patch.
Create a LBaas plugin that is able to load ONE LBaaS driver based on configuration.
The plugin invokes the proper call on the driver directly.
The driver at this stage must be a-sync and responsible for returning back from the LBaaS plugin calls ASAP. We plan to address async calls to the driver api in Step#2.
Plugin behaviour:
Note: The plugin should pass a reference of itself to the driver, so the driver will be able to invoke DB operations.
Deliveries for this step: A plugin and a “noop” driver.
Once we are done with this step every vendor will be able to implement its LBaaS driver.
Taking the HA-Proxy reference implementation delivered for Grizzly and modify it to work as an LBaaS driver. This modified driver will keep its async nature and will invoke the “name space” driver via RPC.
Once we are done with this step we can test this capability end-to-end.
Removing the driver responsibility for async operation.
In this step the the plugin will invoke the driver api via async mechanism.
Invocation options: