2225 Commits

Author SHA1 Message Date
Adam Harwell
b0a845554b Update HAProxy version for Centos
ALso tweak the systemd service config for haproxy 1.8 since it no longer
ships with a systemd wrapper.

Change-Id: If4f230dcba8c360c919f6c2d93705bf67089b2cf
2018-05-07 18:57:34 +00:00
Zuul
f33c461cb9 Merge "Correct field filtering for member/l7rule/amphora" 2018-05-07 15:51:30 +00:00
Adam Harwell
fe92dabe33 Correct field filtering for member/l7rule/amphora
The exposed definition was incorrect due to a copy/paste error during
the original creation of these controllers, causing the field filter
list to be read as a single value. A side-effect of this was that the
filtering code still worked, but did an 'in' operation on one string
instead of a list.

This caused two bugs:
1) Multiple field filters were ignored, and only the first would be
returned.
2) The field matching would match inside of the field names, so
filtering for `id` would match `id`, `project_id`, etc. and return
extra fields.

Change-Id: Ibb509c1e487876b957ad02cd66cebebc178bef4d
Backport-Candidate: Queens Pike
2018-05-04 00:42:02 -07:00
Michael Johnson
8e2f7512c2 Improve Health Manager error handling
It was reported that the Health Manager process could be crashed with
malformed heartbeat packets. I was unable to reproduce the issue
(I suspect oslo_utils fixed the root cause), but I could see how this
could happen and our error handling could be improved.
This is a lower severity as this port is intended to be only accessible
from a private lb-mgmt-net network.
This patch adds additional exception handling to the Health Manager
listener routines to better handle heartbeat packet issues.

Change-Id: I2da6fa394f5152148237d0986fd969b7950815ba
Story: 2001959
Task: 15081
2018-05-03 18:04:58 -07:00
Mohammed Naser
b4632d7fe9 Remove PluggedVIPNotFound references
The PluggedVIPNotFound exception is no longer being raised anywhere
so we can drop any references to it.

Change-Id: Ida424233a3a7fbb372a837ba3f484abd089d38aa
2018-04-26 16:15:37 -04:00
Zuul
0c6f281ccd Merge "Fix lower-constraints to actually match our reqs" 2018-04-26 04:49:39 +00:00
Zuul
d4f9ee04e7 Merge "Health Monitor url_path requires leading slash" 2018-04-26 04:49:37 +00:00
Zuul
d31552336c Merge "Pool PUT should validate name/description length" 2018-04-26 04:49:37 +00:00
Zuul
fa35a0f383 Merge "Correct flavor to flavor_id in LB API" 2018-04-26 04:47:56 +00:00
Zuul
ca49d4cdef Merge "Fix keepalived vrrp check script to be in PATH" 2018-04-26 02:52:07 +00:00
Zuul
d25b2cc619 Merge "Fix calls to "DELETED" items" 2018-04-26 01:50:55 +00:00
Adam Harwell
aa1b32df54 Fix keepalived vrrp check script to be in PATH
ACTIVE_STANDBY is currently broken because keepalived can't access the
main check script.

Change-Id: I66a5df575583b0545fb00bc1170ad8064d2963aa
2018-04-25 16:49:05 -07:00
Adam Harwell
7293dd9460 Fix lower-constraints to actually match our reqs
Change-Id: Idd65ff22c9ab1a0fee1e47c7b37f07174481a243
2018-04-21 01:17:37 -07:00
Adam Harwell
791f52309c Health Monitor url_path requires leading slash
Change-Id: I9b5b0eb6560cf08420b37ae0eacb5e1f86f75f54
Story: 2001891
Task: 14375
2018-04-20 16:56:05 -07:00
Adam Harwell
555c057e88 Pool PUT should validate name/description length
Change-Id: I75aba494f08153bb1da94338edb9916713c5bc58
Backport-Candidate: Queens Pike
2018-04-20 23:55:21 +00:00
Adam Harwell
86da7a86a1 Correct flavor to flavor_id in LB API
This matches neutron-lbaas. This was never actually used, so changing it
should not be an issue hopefully.

Change-Id: If5dfcb291e7fa5c406ea99905f61673786823c8b
2018-04-20 23:55:04 +00:00
Michael Johnson
97c0eab918 Fix calls to "DELETED" items
Fixes the v2 API returning "DELETED" records until the amphora_expiry_age
timeout expired. The API will now immediately return a 404 HTTP status
code when deleted objects are requested. The API version has been raised
to v2.1 to reflect this change.

Change-Id: Iaf150240b0de32f75ba8cfe605293e3af086cc78
Story: 2001557
Task: 6501
2018-04-20 15:50:46 -07:00
Carlos Goncalves
c5c7770e30 Add sos element to Red Hat family images
sosreport is a tool that collects information about a system.

The sos plugin for Octavia can gather information of installed packages,
log and configuration files for Octavia controller components and
amphora agent. The result is a generated report that can be used for
troubleshooting. The plugin redacts confidential data such as passwords,
certificates and secrets.

At present sos only installs in Red Hat family images as the plugin does
not support other distributions.

Change-Id: I5131a4cfdedd8b78fb673b4264ef1d7a1d613972
2018-04-19 15:51:50 +02:00
Zuul
afb47816ac Merge "Trivial: fix syntax error in command examples" 2018-04-18 23:49:02 +00:00
Michael Johnson
240478a505 Adding Gophercloud to the SDKs list
Gophercloud has support for Octavia so adding it to the SDK list
in the docs.

Change-Id: I4c2b676be0725067f3084b6b2a4eeefd24458cb5
2018-04-18 09:41:49 -07:00
Carlos Goncalves
655c31d4ab Trivial: fix syntax error in command examples
Change-Id: I1bc92babad3252dffd1075756137b63b57546dff
2018-04-18 13:39:21 +02:00
Michael Johnson
7b8ad36d92 Add Octavia v2 tempest plugin jobs to Octavia
This patch adds the tempest API and scenario jobs from
octavia-tempest-plugin to the Octavia gates list.

Initially in non-voting to gauge stability.

Change-Id: Ifca0d1e0e99424d13752694b5e9c4c5731c3ea95
2018-04-17 14:36:05 -07:00
Michael Johnson
f935a51fe4 Switch to ubuntu-minimal for default amphora image
Previously we were using the "ubuntu" diskimage-builder base element as the
default base OS to build the amphora image.
The "ubuntu" element is based on the ubuntu cloud image. This image includes
packages we do not need for the amphora image. At this point it's not clear
that Ubuntu will ship an 18.04 LTS cloud image in the format the "ubuntu"
element requires.
This patch switches the default Ubuntu amphora image to build with the
"ubuntu-minimal" diskimage-builder element.

This patch also moves the amphora agent into a virtual environment inside
the amphora.

It also sets up support for Ubuntu 18.04 (bionic beaver) and HAProxy 1.8.

Change-Id: I84a85ca1363bce2e0f13da64540ec7ba3575e818
2018-04-16 18:07:31 -07:00
Michael Johnson
be505cdfba Fix statistics update typo
The entry point for the stats db driver had typo.

Change-Id: I44eb1217e61f00f803af790c94468581aae66da6
2018-04-13 14:48:36 -07:00
Zuul
69a45c254b Merge "Add debug timing logging to amphora health update" 2018-04-12 19:08:22 +00:00
Zuul
f315d09e0f Merge "Install client from pip if not in LIBS_FROM_GIT" 2018-04-12 19:01:30 +00:00
Michał Dulko
f66f08ff9c Install client from pip if not in LIBS_FROM_GIT
It shouldn't be a requirement to put python-octaviaclient into
LIBS_FROM_GIT in local.conf. This commit makes Octavia's DevStack plugin
install it from pip if it's not present in LIBS_FROM_GIT.

Story: 2001830
Task: 12587
Change-Id: I37014a766e27f6117c96aef976fa1e0b5a9ca031
2018-04-12 11:45:29 +02:00
Zuul
fde4ebe822 Merge "Add pool session persistence validation" 2018-04-12 02:46:35 +00:00
Michael Johnson
dda45f0cb8 Add pool session persistence validation
This patch adds validation to the pool session persistence options.
It validates the cookie_name specified and whether that option is valid
for the session persistence type specified.

Change-Id: I2f35a1a267bf2fc35bbb93a7f5390213ca20d1a8
Story: 2001818
Task: 12555
2018-04-11 12:00:48 -07:00
caoyuan
cf296c2ade Update auth_uri option to www_authenticate_uri
Option auth_uri from group keystone_authtoken is deprecated[1].
Use option www_authenticate_uri from group keystone_authtoken.

[1]https://review.openstack.org/#/c/508522/

Change-Id: If6eee4ecfb4c6c607c9ee762cc535cf5d6180d88
2018-04-11 23:34:05 +08:00
Zuul
53141880c3 Merge "Move o-hm0 dhcp config under /etc/dhcp" 2018-04-11 14:11:04 +00:00
Zuul
ec2ecdc2b1 Merge "Improve some log messages in health_monitor.py" 2018-04-11 05:14:56 +00:00
Zuul
3375672d1c Merge "Add API alias for '/statuses'" 2018-04-11 04:25:38 +00:00
huangshan
68e425ef29 Improve some log messages in health_monitor.py
Modify some health monitor debug log messages to
indicate it is the health monitor ID printed
instead of the pool ID

Change-Id: Id50978aa51d8e0f28d77d401deb513994b6a6c2d
2018-04-11 10:31:42 +08:00
Michael Johnson
922c79f52f Add API alias for '/statuses'
Fixes a neutron-lbaas LBaaS v2 API compatibility issue when requesting a
load balancer status tree via '/statuses'. This patch adds an alias for
'/statuses' to use the same code as '/status'.

Change-Id: I7aebf87c5f48e2e72b1f7f26b95663a861382f36
Story: 2001812
Task: 12547
2018-04-10 16:41:17 -07:00
Zuul
b1d54045c6 Merge "Update introduction documention page" 2018-04-10 23:27:00 +00:00
Michael Johnson
ae1ab563e5 Move o-hm0 dhcp config under /etc/dhcp
Apparmor will block dhclient from accessing the o-hm0 configuration file
under /etc/octavia. This patch moves our dhclient.conf under /etc/dhcp/octavia
to allow the dhclient to access the file when apparmor is running.

Change-Id: I3153f8bd9237470f406a9edeb4e2a0767fc747b8
Story: 1673269
Task: 5434
2018-04-10 09:55:45 -07:00
Carlos Goncalves
b1b62d3f7c Update introduction documention page
A lot has changed in Octavia since the parapgrahs this patch touches on
were written. We should encourage operators and end-users to use Octavia
as first-class load balancing solution in OpenStack rather than
misleading new users by recommending them to use Neutron LBaaS with
Octavia as provider driver, at least whenever possible. A note is left,
though, for operators and end-users already running Neutron LBaaS to
migrate either to Octavia or, if not immediately possible, use the
Octavia proxy plugin in neutron-lbaas.

Change-Id: Ia7c6bca86d9510ce077295074fe9b034c6b35f54
2018-04-10 11:48:09 +01:00
Zuul
1f278e7ab3 Merge "Expose timeout options" 2018-04-09 20:41:29 +00:00
Adam Harwell
093d60d954 Add debug timing logging to amphora health update
Change-Id: I39079ca91331dc0cbca5c0e4dd3a2ea18e1271d4
2018-04-09 19:27:42 +00:00
Zuul
b07faa03e0 Merge "Add a devstack variable for legacy RBAC" 2018-04-09 07:12:10 +00:00
Zuul
cb625b631f Merge "Make keepalived initialization more predictable" 2018-04-09 04:56:58 +00:00
Zuul
d0683e5462 Merge "Defend against neutron error response missing keys" 2018-04-09 02:01:14 +00:00
Zuul
9ce74dda3f Merge "Fix revert method for batch member update" 2018-04-09 02:01:12 +00:00
Zuul
17abaf092c Merge "Minor refactor of health_sender.py" 2018-04-09 01:37:05 +00:00
Adam Harwell
d4474e8943 Make keepalived initialization more predictable
This prevents forcing keepalived to renegotiate roles between amps more
times than necessary.

Keepalived is already running at the point that we do our initial "amp
start" command, so if we actually force a restart it loses its state and
has to renegotiate. I would consider the fact that this works without
issue right now "very good luck". Let's make this more sane, and only
reload if that's what we need to do.

Change-Id: Ie920bba9b2d718c59c6ce00c0f013058ed2634bb
2018-04-08 12:29:10 +00:00
Zuul
06bf5c58d5 Merge "Correctly validate member subnet_id in batches" 2018-04-05 02:47:37 +00:00
Adam Harwell
1ed8f302d2 Minor refactor of health_sender.py
Just making things a little more clear.

Change-Id: I6c92e8da42faa4a1deb920a0364a913894b3feda
2018-04-05 07:38:41 +09:00
Adam Harwell
798be31315 Defend against neutron error response missing keys
I *have* seen this in the wild (it caused problems in our cloud with
Liberty neutron), and while I am unsure of the exact cause, it can't
hurt to code a little bit defensively!

Change-Id: I46ec944f7035fd7a5a09b7e7e4a4a38692039ab7
2018-04-05 07:17:34 +09:00
Adam Harwell
bb0447e98b Expose timeout options
Various timeout options need to be exposed to enable use-cases more
complex than standard HTTP requests.

In this patch we expose four new timeout values:
* timeout_client_data
* timeout_member_connect
* timeout_member_data
* timeout_tcp_inspect

Change-Id: Id4667201c1bfaa06f7af9060c936ba00c2f314f9
Story: 1457556
Task: 5453
2018-04-04 13:06:01 +09:00