As a followup to Id99948aec64656a0532afc68e146f0610bff1378, adding auto
detection to haproxy_amphora.user_group
haproxy is capable[1] handling a list of configuration files.
This patch leverages that capability by simply providing haproxy with an
additional configuration file, which is baked in the amphora image via a
diskimage-builder element.
The above-mentioned element will specify the following values for user group:
Ubuntu: 'nogroup'
RHEL/CentOS/Fedora: 'haproxy'
The amphora-agent will parse and remove any user_group configuration provided
by Octavia controller worker.
This is in order to maintain amphora-agent backward compatibility to old
Octavia workers, who still provide user_group to the amphora-agent.
Octavia Workers that include this patch will no longer provide user_group
configuration to the amphora-agent.
[1] https://cbonte.github.io/haproxy-dconv/1.7/management.html#3
Related-Bug #1548070
Change-Id: Ia8fede9d7da4709a48661d1fc595a16d04fcbfa9
When trying to exit out of the house_keeping daemon
the terminal would hang until all threads finished
their iteration of time.sleep(). Now the threads
instead use the Event object so on keyboard intterupt
the threads will exit without waiting.
Change-Id: I4cb62977f647209ea87001a949fc42472ad53a70
* tempest init command calls oslo_config to generate sample tempest.conf
which expects a list of tuples (group, [group_options]) provided by
octavia plugin's get_opt_lists method. Due to comma at the end of
service_option, oslo_config excepts one more tuple which was not there
which causing failure to tempest init. Removing it fix the issue.
* use register_opt for service_available in config
Change-Id: I6af2c72dd83e5ef5fd3ae9a66ee774e3cbab8f67
Closes-bug: #1681405
Recent changes to neutron and gate hooks can cause the api extension
list to not include "all" but a neutron specific list. This means
lbaasv2 may not be included in api extension list. This will cause
tempest to skip the neutron-lbaas tests.
This change explictly adds "all,lbaasv2" for the network extensions.
Change-Id: I8623e27265544d9606e9000c52c79cec05413fcc
Use https instead of http to ensure the safety without containing our
account/password information
Change-Id: If41464eac8fb5f79baf22153c53ada45c1cae832
This spec intro to extend octavia API to accept Qos policy which created
by users from neutron. In Octavia, we just accept the qos policy but not
provide Qos function to the vip port of loadbalancer. This is very useful
to adapt the changes about neutron qos in the future.
Change-Id: Ia47da1e26106c6353eebd880138df4b57bcf9db4
Closes-Bug: #1657090
The endpoint are as follows:
- /v2.0/lbaas/l7policies/
- /v2.0/l7policies/
GET all - /<policy-id>/l7rules/
GET one - /<policy-id>/l7rules/<rule-id>
POST - /<policy-id>/l7rules/ {<body>}
PUT - /<policy-id>/l7rules/<rule-id> {<body>}
DELETE - /<policy-id>/l7rules/<rule-id>
Partially Closes-Bug: #1616701
Co-Authored-By: Shashank Kumar Shankar <shashank.kumar.shankar@intel.com>
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Change-Id: I247988a2ea19a92f827756504a0ee46679bbc53b
GET all - /v2.0/lbaas/l7policies/<l7policy-id>
GET one - /v2.0/lbaas/l7policies/<l7policy-id>
POST - /v2.0/lbaas/l7policies {<body>}
PUT - /v2.0/lbaas/l7policies/<l7policy-id> {<body>}
DELETE - /v2.0/lbaas/l7policies/<l7policy-id>
Co-Authored-By: Nakul Dahiwade <nakul.dahiwade@intel.com>
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Partially-Implements: #1616655
Change-Id: I91baf79df16d4a1eefd151ed87ec871b57ac6ef8
This patch aligns Octavia v2 API for members with
lbaasv2.
GET all - /v2.0/lbaas/pools/<pool-id>/members
GET one - /v2.0/lbaas/pools/<pool-id>/members/<member-id>
POST - /v2.0/lbaas/pools/<pool-id>/members {<body>}
PUT - /v2.0/lbaas/pools/<pool-id>/members/<member-id> {<body>}
DELETE - /v2.0/lbaas/pools/<pool-id>/members/<member-id>
Also fixes a few bugs from previous API commits and refactors
some test code / adds missing tests.
Note: This changes the default operating_status of Members from OFFLINE
to NO_MONITOR in the *v1* API, if the pool has no Health Monitor.
I see this as a bug fix.
Co-Authored-By: Nakul Dahiwade <nakul.dahiwade@intel.com>
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Partially-Implements: #1616642
Closes-Bug: #1678330
Closes-Bug: #1678336
Closes-Bug: #1678337
Change-Id: I0e15ab70afd5bbbc8b94db0dc9e64f13146003e8
Introduces a new config parameter to specify the anti-affinity
policy.
Bumps nova version.
Closes-Bug: 1677604
Change-Id: I8c50057bd43873182058097e802bc839d1be0554
During anti affinity failover the server-group wasn't stored
in the flow. This will rectify that.
To test: Load this patch on top of new soft-anti-affinity patch,
set to ACTIVE-PASSIVE, perform failover, see newly created server
belongs to same server-group.
Change-Id: I620c42101fd2362156b15f7f2390c2a72a04c566
Closes-Bug: 1677379
Some tests, such as test_listener_basic for example, use helper function
_send_requests() to send traffic to a loadbalancer both in a positive
(expect to succeed) and negative (expect to fail) context.
In a case of a negative context, _send_requests() currently won't catch
socket.error, which is a valid response from a loadbalancer in a case of
a request rejection.
F5's LBaaS driver replays with TCP RST in a case of request rejection and
they confirmed[1] that adding by catching socket.error in
_send_requests() tests work as expected.
[1] https://bugs.launchpad.net/octavia/+bug/1675702/comments/2
Change-Id: Iab001fc31ce81b2fd5e8e87333fa9a3391ecda99
Closes-Bug: #1675702
Make API path for pools independent of Loadbalancers and
Listeners.
- /v2.0/lbaas/pools/
- /v2.0/pools/
GET all - /pools/
GET one - /pools/<pool-id>
POST - /pools/ {<body>}
PUT - /pools/<pool-id> {<body>}
DELETE - /pools/<pool-id>
Co-Authored-By: Shashank Kumar Shankar <shashank.kumar.shankar@intel.com>
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Partially-Implements: #1616641
Change-Id: I7679cc7b3f559db774a9d036580177cf1aa7e693
Per the discussion in the service-types-authority repository [1]
updating octavia to use "load-balancer" as the service type.
[1] https://review.openstack.org/#/c/434999/
Change-Id: I4faa327c064f6291c578d3e04f8ee8624940ce08