The default TaskFlow engine is now set to 'parallel' instead of
'serial'. The parallel engine schedules tasks onto different threads to
allow for running non-dependent tasks simultaneously. This has the
benefit of accelerating the execution of some Octavia Amphora flows such
as provisioning of active-standby amphora loadbalancers.
Change-Id: I108b7f629d39c40b60ddf4a1878631f32e37b357
A recent automated patch[1] removed py36 from the tox default
environment list. Since Ubuntu 18.04 includes python 3.6 and we
still include a functional-3.6 test, we should keep the py36
environment in the list.
[1] https://review.opendev.org/#/c/669440/
Change-Id: I2bab434523efee0ad755e794f00c3a1ca85ec68f
Some Python libraries were missing in requirements.txt. This patch adds
them to the list of dependencies.
Change-Id: I6dc4a7626cd5244b445893b96a7d7351ca528dc1
Since centos-minimal is used as base for centos image, dib installs
haproxy 1.5.x instead of haproxy 1.8.x, and dhcp client is missing
(dhclient package).
Depends-On: https://review.opendev.org/#/c/673172/
Story: 2006323
Task: 36056
Change-Id: I3be0fa18578c7c1552f24842a09e18c01e34358a
The 'rpm', 'yumdownloader' and 'bc' tools do not come installed in the
Ubuntu nodepool image. We need 'rpm' and 'yumdownloader' to build
centos-minimal amphora images and 'bc' for checking minimum supported
Ubuntu version in diskimage-create.sh
This patch also adds octavia-lib to the required projects.
Change-Id: Iaa0f763005529cc394d3b95ce07f2be71e9b3778
When removing listeners, listeners are removed from the load balancer's
listener list just before reconfiguring each amphora.
In case of ACTIVE/STANDBY topology, the code is performed on both
amphorae, so the listener is removed twice from the list.
This commit ensures that we don't remove an already removed listener.
Story: 2006329
Task: 36065
Change-Id: I426255f587f36b415eb999a9eb28cf0f91de94b0
A patch[1] introduced a startup check for the socket paths that
impacted a unit test checking debtcollector is finding the new
octavia-lib location of the DriverLibrary.
This patch correctly mocks out this check for this unit test.
[1] https://review.opendev.org/#/c/665027/
Change-Id: Ife93834654385430d6a333d3d6ee67b719b6c37e
This sets up the HTTPProxyToWSGI middleware in front of Octavia API. The
purpose of this middleware is to set up the request URL correctly in
the case there is a proxy (For instance, a loadbalancer such as HAProxy)
in front of Octavia API.
So, when TLS connections are terminated at the proxy, and one tries to
get the versions from the '/' resource from Octavia API, one will notice
that the protocol is incorrect; It will show 'http' instead of 'https'.
So this middleware handles such cases.
The HTTPProxyToWSGI is off by default and needs to be enabled via a
configuration value.
It can be enabled with the option in octavia.conf:
[oslo_middleware]
enable_proxy_headers_parsing=True
Story: 2005105
Task: 29732
Change-Id: I276188530a83598ed75560f02ed9d80ce9afca2f
When removing a UDP health monitor, keepalived is reloaded with a
configuration without any checkers.
But if keepalived has previously detected a down server, the state of
the server is unchanged and it will never be added to the list of IPVS
servers.
Restarting keepalived on configuration change works around this issue.
This issue is fixed in keepalived (>=2.0.14):
https://github.com/acassen/keepalived/issues/1163
Story: 2005774
Task: 33491
Change-Id: Iaa34db6cb1dfed98e96a585c5d105e263c7efa65
This commit fixes pool and members status when using UDP loadbalancers.
Story: 2005736
Task: 33394
Change-Id: I75cde3ff820f085aebbdffd1e40c5ff40f16835d
UDP members didn't support monitor_address and monitor_port parameters.
Setting those values didn't have any effects.
This commit enables the support of both parameters.
Story: 2005775
Task: 33492
Change-Id: Idaacfa60a1909d3f5e0f94371a405c8ce8ae9efa
The current flavor profile API does not properly handle
clearing/reseting values on update. Some mandatory fields would
return a database "cannot be Null" error. This patch raises the
proper invalid option execption.
Story: 2005374
Task: 33542
Change-Id: I5253c48871a8bb3bf91f82aa7791585cc4a6d529
The current l7rule API does not properly handle
clearing/reseting values on update.
This patch corrects this to appropriately handle None/null updates
to the l7rule parameters.
Story: 2005374
Task: 36023
Change-Id: I4e8007ff98f585ce6622f7128ecdd53cdfa926a7
There is a typographical error in healthmonitors-list-response.json.
Correcting spelling from http_vesion to http_version.
Task: 36020
Story: 2006304
Change-Id: I6be0a593b1deb43f8aba982043ebf427be57d937
When failover occurs, Octavia health-manager doesn't log any
information about the loadbalancer. Due to this, operators can't
specify which loadbalancer got failed and which user was affected
by the failover.
This commit fix this issue by logging not only amphora_id but also
the linking information (e.g. loadbalancer_id, compute_id, ..)
when performing/completed the failover.
Change-Id: I9bdd6f2913c0da2b0772b4b694309ef993289360
Task: 34312
Story: 2005947
This patch changes CentOS amphora images to be built using the
centos-minimal DIB element. The generated image size is reduce from
approximately 702 MB to 520 MB. Compatibility with 'centos' AMP_BASEOS
is kept.
Change-Id: Iffc4a9725bff41618edbf246dd5a167b4e0ef6d3
All of the scenario tests are now running on Ubuntu bionic, so
remove our special/testing bionic job.
Change-Id: I8b02bdb1b8e055a32c673f09e1db6c5c3361220f
This patch updates the diskimage-create script to select Ubuntu
bionic as the default version of Ubuntu for the amphora image.
Change-Id: Ie8bbcbe073644137b8eb04c42d9457f507513007
Load balancers with multiple listeners, running on an amphora image
with HAProxy 1.8 or newer can experience excessive memory usage that
may lead to an ERROR provisioning_status.
This patch resolves this issue by consolidating the listeners into
a single haproxy process inside the amphora.
Story: 2005412
Task: 34744
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Change-Id: Idaccbcfa0126f1e26fbb3ad770c65c9266cfad5b
This patch adds a project_id field to all of the provider driver data
model objects.
This is useful for drivers to track/associate objects on the backend.
Change-Id: I8f509677da463bc5d0a7649f2f609045cf9b2dd7
The api documentation is now published on docs.openstack.org instead
of developer.openstack.org. Update all links that are changed to the
new location.
Note that redirects will be set up as well but let's point now to the
new location.
For details, see:
http://lists.openstack.org/pipermail/openstack-discuss/2019-July/007828.html
Change-Id: I9f617159eddc8af532403e47c325048d92cc9ade
Some options are now automatically configured by the version 1.20:
- project
- html_last_updated_fmt
- latex_engine
- latex_elements
- version
- release.
Change-Id: I25030e46ced9b1c77fad543aa9285c053a388f14
A recent patch[1] added --pbkdf-memory to the cryptsetup command line
to limit the memory cryptsetup is using. However, some distros use
an older version of cryptsetup that does not need this setting.
This patch adds logic to detect this and run the commands without
--pbkdf-memory.
[1] https://review.opendev.org/663784
Change-Id: I9e0debcbfe6ceeff0012c827d70d80d938b5a2fb
Story: 2006066
Task: 34782
The cloud-init-datasources DIB element configures cloud-init to only use
an explicit list of data sources. Until the switch from ubuntu element
to ubuntu-minimal, cloud-init was being configured to only use
ConfigDrive datasource because the ubuntu element had
cloud-init-datasources as element dependency. The ubuntu-minimal and
other OS elements (e.g. RHEL-based) do not have it, so the export
DIB_CLOUD_INIT_DATASOURCES was not being used.
Change-Id: I74ecc826596c5f739a49defe6588bcc741b03594