Sometimes the LBaaS V2 policyb targets are hard to infer.
This adds a sample policy file for users to customize with
all the targets.
Change-Id: I105d2e7daf932087632ceb6231b21158f9786335
Oslo config generator was introduced in patch [1] to
automatically generate the sample Neutron LBaaS configuration
files.
This patch removes the static example configuration files from
the repository as they are now redundant.
[1] https://review.openstack.org/#/c/252981/
Change-Id: Ied6baba264e46aee59fb97f4909df3cbf4d00237
Partially-Implements: blueprint autogen-neutron-conf-file
Partial-bug: #1199963
Depends-On: Iae1e581ec2bea9c0ced700229effcc716d53fe4e
This adds a new tox environment, genconfig, which generates sample
neutron LBaaS configuration file using oslo-config-generator.
DocImpact: Update the docs that LBaaS no longer includes static example
configuration files. Instead, use tools/generate_config_file_samples.sh
to generate them and the files generated now end with .sample extension.
Partially-Implements: blueprint autogen-neutron-conf-file
Change-Id: I25507f3bc6e995580aa91a912c2cf4110757df15
Partial-bug: #1199963
Due to the repository splitting the new location should be used
and the old one is only for Juno and older.
Change-Id: I47347818a742805b7da8a18c66bfa6703d10da9a
Closes-Bug: #1507314
The patch will register the consumer for the Barbican
service upon validation.
If an error is caught it will also de-reg the consumer.
Change-Id: I0377222c9492185a7b0462eb935179963027ed37
Currently local_cert_manager is never enabled if 'cert_manager_class'
is set to 'neutron_lbaas.common.cert_manager.local_cert_manager'.
Because due to initialization order of config parameters.
This fixes it to correct order.
Change-Id: I0b60e9034e113160ec8347da52d67c4835c90cbf
- Needs CI, which will likely be via a new infra job
- Needs stats method - can be done in a subsequent review
- Needs to update entity status's based on what octavia says it is, but this
will be done in a subsequent review
Co-Authored-By: Doug Wiegley <dougw@a10networks.com>
Co-Authored-By: Brandon Logan <brandon.logan@rackspace.com>
Co-Authored-By: Trevor Vardeman <trevor.vardeman@rackspace.com>
Co-Authored-By: Phillip Toohill <phillip.toohill@rackspace.com>
Co-Authored-By: Banashankar K Veerad <bkalebe@us.ibm.com>
Change-Id: I651fb3aeac56d7abfca7625e087c97941670e193
LeastPoolAgentScheduler assigns a pool to an lbaas-agent
with the least number of pools. When there are multiple
lbaas-agents on multiple nodes, pools will be evenly
distributed over the agents. Thus this scheduler helps
the scalability of lbaas-agents serving large number of pools.
At the moment only available lbaas-agent scheduler is ChanceScheduler.
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Change-Id: I0b920a8bb5b2918dd5f47ef2a81d3009896af47d
Added the passthrough shim driver for KEMP appliances.
Updated the config file with the KEMP path to the driver.
Added unit tests to test the shim.
Change-Id: Ib429c8ebde4d2cbb54ad37f4bfe6e4255706479b
Closes-bug: 1436781
Adds support for VMWare NSX-v Edge loadbalancer appliance.
The support is for lbaasv1 API.
Change-Id: I6f65aa053fd131e0b17757fda1a483c6f5a25a11
Partially-Implements: blueprint vmware-nsx-v
This adds the haproxy namespace driver based on the lbaas
v2 object model. It has been retrofitted to work with the
new object model and new device driver interface. Everything
else has been shamelessly copied from the v1 haproxy namespace
driver.
Change-Id: Icf34a215e094d27270a5f64df2d1cb995f505370
Partially-implements: blueprint lbaas-refactor-haproxy-namespace-driver-to-new-driver-interface
Co-Authored-By: Brandon Logan <brandon.logan@rackspace.com>
Implements the agent scheduler to choose which agent will host
the loadbalancer. Only a random scheduling algorithm implemented.
Exposed two API calls that allows an admin user to get a list of
loadbalancers hosted by an agent and get the agent that is hosting
a particular loadbalancer.
Implemented the loadbalancer driver classes and methods for the agent
driver. These will call the agent scheduler to host the load balancer
and then send the data to a queue.
Depends-On: Ic9179ef0a95b91d1b7662537fffeb0a949efc925
Partially-implements: blueprint lbaas-refactor-haproxy-namespace-driver-to-new-driver-interface
Co-Authored-By: Brandon Logan <brandon.logan@rackspace.com>
Change-Id: Ic4a83ef255aed0474eebb73f28d67e09f35666b7
Moving base lbaas v2 driver modules to their new location - drivers/
instead of the old one - services/loadbalancer/drivers/
This change set is a preparation for next-coming new lbaas v2 drivers
implementations
Change-Id: I9a629fbed69ae8149feb1a761d83114779717fc1
Includes a Barbican and a Local (insecure) implementation.
Change-Id: I435189b2637e32803a13ebd4951e61fac4ab234d
Partially-Implements: blueprint lbaas-tls
Methods deploy the actual haproxy process when called.
Includes a service that periodically runs to collect stats.
Added quotas to the neutron.conf
Partially-implements: blueprint lbaas-api-and-objmodel-improvement
Partially-implements: blueprint lbaas-refactor-haproxy-namespace-driver-to-new-driver-interface
Change-Id: I98c67346b75619b9cc64f68c3c2f7329123f1e3c
Co-authored-by: Brandon Logan <brandon.logan@rackspace.com>
Co-authored-by: Phillip Toohill <phillip.toohill@rackspace.com>
When delete and re-add the same vip, we need to send gratuitous ARP
to flush the ARP cache in the Router.
Change-Id: Id97088abb95f4433a100abdae8c8726b3be42ed2
Closes-Bug: 1301165
Unifies haproxy reference implementation to make common agent based plugin driver
which is suitable for all vendors who wants to use async mechanism.
- Agent API as well as device driver API changed to handle
loadbalancer objects individually;
- Agent loads device drivers according to config;
- LogicalDeviceCache class was removed from agent as it was used only
as a list - to put and remove entries ant check whether entry is in or not.
It was replaced with instance_mapping dict in agent to store known instances and
corresponding device_drivers;
- Agent reports which device drivers are supported (needs for scheduling on plugin side);
- Agent-to-plugin API was extended to provide an ability for agent to update
statuses of pools/vips/members/health_monitors;
- Vendor should only implement device driver; plugin driver just needs
to inherit AgentBasedPluginDriver and override device_driver member;
- This patch doesn't move files to make review easier;
all rename/replace will be done in a subsequent patch;
DocImpact
NOTE: Since the change in the agent RPC API is backward-incompatible
(major RPC version change), LBaaS server-agent communications will be
completely broken until both sides are upgraded so users will be unable to
create new or update existing HAProxy loadbalancer instances during upgrade
Implements blueprint lbaas-common-agent-driver
Change-Id: I9fd90a1321611d202ef838681273081fa6c1686a
This change renames everything to Neutron while providing backwards
compatible adjustments for Grizzly configuration files.
implements blueprint: remove-use-of-quantum
Change-Id: Ie7d07ba7c89857e13d4ddc8f0e9b68de020a3d19
implements blueprint lbaas-namespace-agent
This a reference implemention of the Quantum load balancing service
using HAProxy. The implemention is designed for vendors, developers,
and deployers to become familiar with the API and service workflow.
This change also adds some constraint checks for data integrity.
Change-Id: I10a67da11840477ccf063b98149f4f77248802a1