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
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
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
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
This patch will update the amphora v2 code for the failover refactor[1].
[1] https://review.opendev.org/705317
Change-Id: I43803d0b750e8ca4722ababe296f2725148da405
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
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
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
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
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
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
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
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
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
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
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
The default Grub timeout is 5 set by the bootloader element. Setting
timeout to zero helps reduce boot times.
Change-Id: I82d877a41d7339891a388e26d149fd65cb61c727
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
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
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