3349 Commits

Author SHA1 Message Date
Michael Johnson
7fe78c5943 Add proxy v2 protocol support
This patch adds support for the proxy protocol v2 on pools.

Depends-On: https://review.opendev.org/747296
Change-Id: Ic112c5e71ee9b6433b307fdf27059f217ba4136e
Story: 2005611
Task: 30858
2020-09-04 18:15:16 +00:00
Zuul
46de66b240 Merge "Update amphora v2 for the failover refactor" 2020-09-04 14:15:37 +00:00
Zuul
eef3c91bf2 Merge "Add amphora delete API" 2020-09-04 13:28:38 +00:00
Michael Johnson
59dcdd9a86 Add amphora delete API
This patch adds an amphora delete API. It can be used to delete
extra "spare" amphora after the feature has been disabled.

A followup patch will be required for the amphorav2 path as the
amphorav2 failover patch, which is required for the amphora delete
flow, has not yet merged.

Story: 2008014
Task: 40666

Change-Id: I32b6561c78c153a4b7e73b1a4b83e045fbe97fb6
2020-09-03 13:34:07 -07:00
Carlos Goncalves
ea0bbd2775 Add amphora image tag capability to Octavia flavors
This patch adds 'amp_image_tag' to the supported capabilities of the
amphora provider driver. One use case where operators could find this
relevant is on multi CPU architecture clouds.

Task: 40156
Story: 2007854

Change-Id: Id4141e820a8b34e379a8f60b53fc183680c55c79
2020-09-03 13:10:07 -07:00
Carlos Goncalves
a422e5a203 Introduce an image driver interface
With this image driver interface, we align our codebase with other
existing driver interfaces like compute, network and volume.

This interface also allows the amphora provider driver to check for
existence of tagged images at API level (e.g. amphora image tag
capability in Octavia flavors).

Change-Id: Id808c082808fafe1a1e004957ff47eca57f97ee8
2020-09-03 20:06:35 +00:00
Michael Johnson
d5fe092a3e Update amphora v2 for the failover refactor
This patch will update the amphora v2 code for the failover refactor[1].

[1] https://review.opendev.org/705317

Change-Id: I43803d0b750e8ca4722ababe296f2725148da405
2020-09-03 11:48:14 +04:00
Zuul
4a4a2344de Merge "Add a message for the amphora image size" 2020-09-02 10:06:13 +00:00
Zuul
97faa9c2ef Merge "Switch to live from noop drivers" 2020-09-02 09:16:17 +00:00
Zuul
0a1e834123 Merge "Add some details on enable_anti_affinity option" 2020-09-02 03:12:32 +00:00
Zuul
6c135364fc Merge "trivial fix" 2020-09-02 02:06:41 +00:00
Zuul
80a30d26d1 Merge "Fix API sort key for complex columns" 2020-09-01 15:49:20 +00:00
Zuul
71e53a5b67 Merge "Add missing log line for finishing amp operations" 2020-09-01 15:49:18 +00:00
Adam Harwell
6b182b50cd Add missing log line for finishing amp operations
Both amp config and amp cert rotate were missing Finished log lines.

Change-Id: I86add89ed7ea474dcb24962547c78460bc2e260c
2020-09-01 11:56:46 +00:00
Paul Peereboom
6df1ce8e28 Fix user permission for WSGI configuration
Task: 35692
Story: 2006172

Change-Id: I477d2d12c64c1e38e3917333e5d47f612cab93b0
2020-09-01 11:56:18 +00:00
Michael Johnson
b6f6c14292 Fix API sort key for complex columns
The Octavia API sort function was not working correctly for some
columns that have different names in the API vs the data model.
This patch also handles the case where a column may be a compound
object in the data model, such as vip_address->vip.ip_address.

Change-Id: I0c124e80fec2ac9ad813e78df6ad25da6b8e9668
Story: 2007991
Task: 40626
2020-09-01 11:55:12 +00:00
Carlos Goncalves
f3b5e6e147 Switch to live from noop drivers
The switch to live drivers ease greenfield deployments by not requiring
deployers to explicitly set live drivers. The switch also helps
deployers identify production-ready from experimental drivers.
Experimental features like volume and distributor remain defaulted to
their noop drivers.

This patch also fixes some tests that were not mocked properly.

Change-Id: I1e4e3c4f0e4142fa0d0d1ac895b10e2349d79c20
2020-08-28 20:51:45 +00:00
Carlos Goncalves
a5f0524fd0 Add ALPN support for TLS-terminated HTTPS LBs
ALPN is a TLS extension for application-layer protocol negotiation
within the TLS handshake [1].

This patch extends the Listener API to include a new 'alpn_protocols'
parameter. With this parameter, users can set an ALPN preference list
(descending order of preference).

Presently, the amphora provider driver is limited to http/1.0 and
http/1.1 ALPN protocol IDs. Support for "h2" (HTTP/2 over TLS) depends
on HAProxy 2.0 or newer.

[1] https://tools.ietf.org/html/rfc7301

Change-Id: If08a8169498cdfaa75440e8971ba0caff45ac4c4
2020-08-27 13:19:52 +02:00
Zuul
0b1d8dd5e7 Merge "Update devstack plugin" 2020-08-26 23:58:54 +00:00
Zuul
d7b568f73d Merge "Set Grub timeout to 0 for fast boot times" 2020-08-26 22:53:42 +00:00
Zuul
36085827eb Merge "Add octavia-amphora-image-build-live jobs" 2020-08-26 22:42:00 +00:00
Zuul
4cb81a65e5 Merge "Correct a typo in the document" 2020-08-26 22:39:14 +00:00
Zuul
746a495ea2 Merge "Set CentOS amphora image size back to default value" 2020-08-26 22:39:12 +00:00
Gregory Thiemonge
9fb58eb9f4 Fix invalid DOWN status when updating a UDP pool
When adding a new UDP member or a UDP-CONNECT health-monitor to a UDP
pool, there can be a race condition in the first heartbeat message
sent to the health-manager service.
This message might contain a DOWN status for a working member that
hasn't been checked yet.

This commit introduces a new member status between the amphora-agent and
the health-manager: it indicates that the UDP pool has been updated and
that the status of a member is a transitional state, preventing an
incorrect ERROR status.

Story: 2007792
Task: 40042

Change-Id: Id9e19375ebca6a720e6a85006f5e8948d3aed760
2020-08-26 09:56:57 +02:00
Zuul
2d97ebcd24 Merge "Allow amphorav2 to run without jobboard" 2020-08-25 22:47:04 +00:00
Zuul
a2d53b41b0 Merge "Fix operational status for disabled UDP listeners" 2020-08-25 22:39:01 +00:00
Zuul
a55a6fd2cd Merge "Fix listener tls_versions and tls_ciphers clearing" 2020-08-25 21:36:06 +00:00
Zuul
703a07df21 Merge "Ensure xtrace is enabled in devstack plugin" 2020-08-24 14:32:58 +00:00
Zuul
13faf288e4 Merge "Fix memory consumption issues with default connection_limit" 2020-08-24 07:50:16 +00:00
Carlos Goncalves
17c856dbcb Set CentOS amphora image size back to default value
DIB reduced the size of CentOS minimal images to the point CentOS-based
amphora images fit back in the default 2 GB disk.

Change-Id: Icd3ff0162def1820940d49e36308fc976bfde364
2020-08-21 15:48:46 +00:00
Carlos Goncalves
bf3d5372b9 Fix new pylint errors
Pylint 2.6.0 added two new checkers [1] that make pep8 validation to
fail:

- raise-missing-from (W0707)
- super-with-arguments (R1725)

[1] http://pylint.pycqa.org/en/latest/technical_reference/features.html

Change-Id: I15fd7082646d95414bdd8f0815ee44b5867b3ed0
2020-08-21 15:00:27 +02:00
Zuul
0a85de4c6d Merge "Switch back to using git for the agent ref" 2020-08-20 09:35:12 +00:00
suhaiming
d1da0c1cd7 Correct a typo in the document
Change-Id: I9cbf9c4cdf8d8b8bf8d896b2d59d45d0ee1d4fc5
2020-08-20 07:35:32 +00:00
Zuul
2640607309 Merge "Increase the devstack secuirty group rules quota" 2020-08-19 23:17:28 +00:00
Michael Johnson
2e2464d778 Increase the devstack secuirty group rules quota
Recent changes to the Octavia tempest tests has caused our test
runs to exceed the default neutron security group rule quota.
This patch increases that quota for the Octavia project in devstack.

Change-Id: I49e92f81b23e0b306c62c406a45029b96dce20df
2020-08-18 16:09:11 -07:00
Michael Johnson
e45937a47c Ensure xtrace is enabled in devstack plugin
Currently some phases of the devstack plugin do not have xtrace
enabled, which can make it hard to debug issues in the devstack
plugin.
This patch makes sure that xtrace is enabled while the Octavia
devstack plugin is running so that we can see the commands being
executed. It will restore the previous setting after our plugin
is done running.

Change-Id: Id6828b86779f1daca6a00a03f43c78fe26828f4f
2020-08-18 15:07:02 -07:00
Michael Johnson
f2cda017dc Add a message for the amphora image size
This patch adds an output from the diskimage-create.sh script that
shows the generated image size.
This is handy for seeing the impact of a patch on the generated
amphora image size.

Change-Id: Id18783acefc5ba9acb1789a2fd3d52df603f292a
2020-08-18 18:55:35 +00:00
Michael Johnson
7d6322ae08 Switch back to using git for the agent ref
A diskimage-builder patch [1] broke our amphora-agent element by
uninstalling git prior to the post-install.d phase.
A followup patch in Octavia [2] changed how we get the git
reference to awking an git internal log file. This seems fragile
to me, so I am proposing this alternative.
This patch updates our element to finish using git before the
install.d phase is complete.

[1] https://review.opendev.org/745678
[2] https://review.opendev.org/745683

Change-Id: I9a346b626f852171ec00d2868ccb6f98b1fb8994
2020-08-18 11:27:51 -07:00
Zuul
1d1142a13d Merge "Clarify the current status of Octavia in README" 2020-08-18 18:20:46 +00:00
Zuul
2feff341ca Merge "Set amphora-agent build-only packages" 2020-08-18 18:20:44 +00:00
Michael Johnson
9097c575c0 Clarify the current status of Octavia in README
There was some legacy (neutron-lbaas) language in the README.rst
file for Octavia. This patch updates that and highlights the API
version status documentation.

Change-Id: I16bff7fc1a1359f8c34f4e154aa6dd29a5dd7a9b
2020-08-18 17:23:06 +00:00
Carlos Goncalves
bb9b30be7e Allow amphorav2 to run without jobboard
This patch adds a new configuration setting to enable/disable jobboard
functionality in the amphorav2 provider. When disabled, the amphorav2
provider behaves similarly to the amphora v1 provider.

The default setting is jobboard disabled while jobboard remains an
experimental feature.

Change-Id: I063d832f5a049d7ae38378766200c7f82a35996d
2020-08-17 13:57:33 +00:00
Zuul
e2e873fc9d Merge "[AmphoraV2] Fix l7policy/l7rule quota decrement" 2020-08-14 11:09:56 +00:00
Carlos Goncalves
611af6008a Set Grub timeout to 0 for fast boot times
The default Grub timeout is 5 set by the bootloader element. Setting
timeout to zero helps reduce boot times.

Change-Id: I82d877a41d7339891a388e26d149fd65cb61c727
2020-08-12 13:00:24 +02:00
Carlos Goncalves
6b3580d9c2 Add octavia-amphora-image-build-live jobs
These two new jobs are primarily meant to be included in
diskimage-builder check queue to help flag regressions impacting our
Ubuntu and CentOS amphora images.

Change-Id: If9aacfd3ccc7910d2324ea9ff11336236fab2929
2020-08-12 11:47:56 +02:00
Zuul
aa52cb39ca Merge "Add line terminator to certificate list file" 2020-08-11 19:48:45 +00:00
Zuul
fc6a9ce805 Merge "Fix amphora image build jobs" 2020-08-11 17:20:08 +00:00
Carlos Goncalves
fa1c5ef6dd Set amphora-agent build-only packages
A recent change in DIB [1] broke our CentOS 8 amphora image builds only
because we've not been handling package dependencies propertly.

The DIB change now installs package "python3" which provides
/usr/bin/python3 and is a requirement of scripts in later build phases.
It so happens that we are removing package "python3-pip", a dependency
of "python36" too early so builds fail when bin python3 is required.

DIB package-installs element provides property "build-only". When set,
it will cause packages to be added both to the list of packages
installed and list of packages to be uninstalled. This allows expressing
build-time dependencies that should not end up in the final image as is
the case of packages like "build-essential" and "libffi-dev" in our
amphora-agent element.

As for the removal of Git, we do not explicitely install it so we should
not uninstall it either. Git is a fake dependency of source-repositories
element and will be abstent in the final image with [2].

[1] https://review.opendev.org/#/c/741868/
[2] https://review.opendev.org/#/c/745678/

Depends-On: https://review.opendev.org/#/c/745678/

Change-Id: I3b82180c8fcf2e2f053c6bcce405f1ea730f62ba
2020-08-11 17:21:27 +02:00
Carlos Goncalves
13fe928c8a Add line terminator to certificate list file
Commit c9e1551 changed file mode to binary from text. When on binary,
Python does not apply newlines so the resulting file has no line
terminator. This has not been an issue up to HAProxy version 1.8, but
testing on HAProxy 2.2.2 fails configuration check.

Workaround this HAProxy issue by adding a line terminator to the
certificate list file.

Task: 40593
Story: 2007974

Change-Id: Iedd22e75a9124a41b776305f2fcb0caaabd07d6a
2020-08-11 17:21:27 +02:00
Zuul
04bbedbd03 Merge "Correct a typo in the document" 2020-08-11 12:42:26 +00:00