The previously-merged patches for L7 and shared pools did not include
release notes. This commit adds the missing release notes.
Change-Id: I0c216addf9e85d512fd2fe689db1e819d183b36c
Partially-Implements: blueprint lbaas-l7-rules
Sets up the flows and some new tasks required to create all the
resources needed for an entire load balancer graph. This includes
updating all listeners on all amphorae (depending on topology), and
plugging networks and setting up the routes and rules on every
amphora for a load balancer. Luckily this mostly reuses tasks and
flows that were already created, though some new tasks and flows
were created specifically for handling many listeners.
Co-Authored-By: Trevor Vardeman <trevor.vardeman@rackspace.com>
Change-Id: I43a838e80281a37537e179cd8d4768f45e1ca7f1
We need the ability to send a request to the API with a fully configured
load balancer and have it create all the appropriate resources all at once. It
will support all load balancing topologies, and all different configurations of
a load balancer.
Co-Author: Trevor Vardeman <trevor.vardeman@rackspace.com>
Change-Id: Id3a5ddb8efded8c6ad72a7118424ec01c777318d
Adds a new cascading delete method to the REST API.
When a load balancer is deleted it will alo delete
all associated listeners, pools, memebers, healthmonitors,
and L7 Policies
Change-Id: I0fd88923dc76e573b92d83f68d292ded913b13a6
Removes unecessary and error causing steps from the
Delete LoadBalancer flow.
Change-Id: Ic96c7e44f223f0603dc899c9acf2cb11c57e18de
Closes-Bug: #1547256
The to_data_model method previously labeled an SNI container without a
unique identifier, using the "listener_id". Now it will use the
"tls_container_id" to ensure it is truly unique.
Change-Id: I174f8f650fc51668fd7b70e845d4706916f06295
Recent scenario tests are showing create operations on
pool-subordinate objects (like Member and Health Monitor) appear
to be returning too quickly with statuses that indictate the
operation is done. This has lead to intermittent problems of tests
failing because the load balancer was not in an expected state.
Our hypothesis is that the aforementioned operations are not
setting the load balancer status to PENDING_UPDATE as they should.
This patch fixes this problem, ensuring that PENDING_UPDATE status
is set on the load balancer and listener status correctly prior to
the execution of the creation taskflow, as well as whenever pool or
pool-subordinate objects are updated and deleted. This should resolve
the related intermittent scenario test failures.
In addition to the above, I have re-organized some of the API methods
to remove some code duplication between various API controller, and
re-organized several of the API functional tests for health monitors
and members to catch the above problem.
Change-Id: I5e3a1eabb76af3b913e3edbe95a3b14c3c40244b
Closes-Bug: 1548588
https://blueprints.launchpad.net/octavia/+spec/anti-affinity
Added a new column in lb table for server group id;
Added a new task in compute tasks for creating server group;
Added a new task in dtabase tasks to update server
group id info for lb;
Add server group id in create method in nova driver to support
anti-affinity when creating compute instance
Change-Id: If0d3a9ba1012651937a2bda9bc95ab4f4c8852d5
After looking into bug reports of health monitor URLs not
working after the shared pools patch, I was able to verify that
they do in fact work, but that the legacy documentation was wrong.
(This is after checking both the state of Octavia's documentation
and API code prior to the shared pools patch, and checking the
neutron-lbaas octavia driver in master right now.)
This patch updates the octavia API documentation to list the
correct new and legacy URLs for doing health monitor CRUD operations.
Change-Id: I632a0a50de0320ed316ef0bf180b8d7e788f746a
Closes-Bug: 1543364
Closes-Bug: 1543366
The amphora REST driver does not have reasonable timeouts on the
python "requests" library calls. For example, the PUT call to
load a certificate into an amphora can hang forever.
This patch adds a request timeout that defaults to 5 seconds.
Change-Id: I75bed9fa1d590ce206aa0947d35552fc80907c0a
Closes-Bug: #1496634
HMAC comparison is done using != but should use constant time
comparison function.
This patch switches to using oslo_utils.secretutils constant_time_compare.
It also updates the octavia requirements.txt to have oslo.utils>=3.5.0
as global-requirements has it.
Change-Id: Ic06e15d68560ada04707c97aa39434fc7c68ca63
Closes-Bug: #1548546
Octavia has been gathering listener statistics for a long time,
but so far has never exposed this via the API. Further, our
documentation has shown that we should have had an API interface to
the listener stats this whole time. This commit adds this interface,
as described in the API documentation.
Change-Id: I4848bb31feb03ab0599a26f600951518f2c41254
Closes-Bug: 1543356
This commit adds documentation for the API changes involved in
adding L7 polcy and rule functionality to Octavia. It is the last in
a chain of commits designed to keep the size of each individual commit
manageable / reviewable.
Change-Id: I1f01a2b546dabc8dc8ad3cf512f7be9276243e74
Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
This commit modifies the jinja templates used by the rest and SSH
amphora drivers for generating the haproxy configurations that get
generated for each listener. It is one in a chain of commits
designed to keep the size of each individual commit
manageable / reviewable. Documentation updates will come in a later
commit.
Per Octavia team discussion, this commit also moves these templates
to the octavia/common/templates directory.
Change-Id: I18aa6080dd19b4afbbdff1ccc81cff7d96b993e6
Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
This commit modifies the controller worker and its tasks and flows
in order to enable the manipulation of L7 policies and rules
in Octavia as well as unit tests for the same. It is one in a chain
of commits designed to keep the size of each individual commit
manageable / reviewable. Jinja template and documentation updates
will come in later commits.
Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: I13de3f89d9236cf508744b04c1d8de04296a34f3
This commit adds the API necessary for manipulating L7 rules
in Octavia as well as unit tests of the API. It is one in a chain
of commits designed to keep the size of each individual commit
manageable / reviewable. Jinja template and documentation updates
will come in later commits.
Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: Iabc3ac44bbb4c3230eb02f978300caabc0c25cc5
This commit adds the API necessary for manipulating L7 policies
in Octavia as well as unit tests of the API. It is one in a chain
of commits designed to keep the size of each individual commit
manageable / reviewable. API for L7 Rules, jinja template, and
documentation updates will come in later commits.
Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: Ib8b18beac83ca46d0fae30a76b72ef0e729696b7
This commit adds the repository methods for handling L7 rules,
as well as logic for validating their internal consistency.
This commit is one in a chain to deliver full L7 switching
capability to Octavia.
Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: I1eaf3bf9b889a36927d9abfb3f755725e2b06f34
This commit adds logic to the handling of repositories for L7
policies. This commit is one in a chain to deliver full L7
switching capability to Octavia.
Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: I04a8eb5074418cc699c09234c321be9f1c595614
This commit adds the database structures necessary for adding
L7 functionality to Octavia. In the interest of limiting the size of
this commit, note that repository, API, jinja template, and
documentation updates will come in subsequent commits.
Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: I2ec4ea11dc7d8ff6ec78d79473f1ceb68e713b90