2888 Commits

Author SHA1 Message Date
Carlos Goncalves
0978c776a2 Switch TaskFlow engine to parallel
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
2019-08-14 11:27:49 +02:00
Zuul
6e4da85064 Merge "Re-enable the py36 tox environment" 2019-08-08 03:03:03 +00:00
Zuul
a7a04c899f Merge "Prevent UDP LBs to use different IP protocol versions in amphora driver" 2019-08-07 19:53:00 +00:00
Zuul
c65329391a Merge "Fixed down server issue after reloading keepalived" 2019-08-07 17:59:23 +00:00
Zuul
7b7e6deb64 Merge "Fixed pool and members status with UDP loadbalancers" 2019-08-07 17:52:36 +00:00
Zuul
6053c4baeb Merge "Fix wrong package names or versions for centos-minimal images" 2019-08-07 11:48:04 +00:00
Zuul
1b98355056 Merge "Add missing lib dependencies to requirements.txt" 2019-08-07 07:30:42 +00:00
Michael Johnson
518241816c Re-enable the py36 tox environment
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
2019-08-06 17:15:52 -07:00
Zuul
ddd2fd371c Merge "Fix listener deletion in ACTIVE/STANDBY topology" 2019-08-06 23:16:35 +00:00
Carlos Goncalves
262a89c7ed Add missing lib dependencies to requirements.txt
Some Python libraries were missing in requirements.txt. This patch adds
them to the list of dependencies.

Change-Id: I6dc4a7626cd5244b445893b96a7d7351ca528dc1
2019-08-06 08:41:34 -07:00
Gregory Thiemonge
50c168e860 Fix wrong package names or versions for centos-minimal images
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
2019-08-06 15:39:59 +00:00
Carlos Goncalves
6e57e6fd3d Install missing packages in nodepool instance
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
2019-08-06 15:39:12 +00:00
Gregory Thiemonge
b1a4758f58 Fix listener deletion in ACTIVE/STANDBY topology
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
2019-08-06 15:38:30 +00:00
Michael Johnson
b32064cdf2 Fix a unit test for new octavia-lib
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
2019-08-05 08:27:43 -07:00
Zuul
2111d9e264 Merge "Add support for monitor_{address,port} in UDP members" 2019-08-02 10:00:23 +00:00
Zuul
768fe6ce06 Merge "Add failover logging to show the amphora details." 2019-08-01 21:30:29 +00:00
Zuul
be94300f5b Merge "Build amphora image using centos-minimal element" 2019-08-01 06:13:37 +00:00
Zuul
f7669a0727 Merge "Add support for oslo_middleware http_proxy_to_wsgi" 2019-08-01 04:21:52 +00:00
Zuul
134d9dbb13 Merge "Fix flavor profile API handling of None updates" 2019-08-01 01:43:07 +00:00
Vlad Gusev
ec83c69372 Add support for oslo_middleware http_proxy_to_wsgi
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
2019-07-31 17:10:54 -07:00
Zuul
4e72fa9c2e Merge "Add missing test requirement "fixtures"" 2019-07-31 04:00:19 +00:00
Zuul
68d9ed58b9 Merge "Fix l7rule API handling of None updates" 2019-07-30 19:19:31 +00:00
Zuul
f80f25e862 Merge "Bump the openstackdocstheme extension to 1.20" 2019-07-30 12:38:48 +00:00
Gregory Thiemonge
0a9f587015 Fixed down server issue after reloading keepalived
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
2019-07-30 12:19:08 +02:00
Gregory Thiemonge
4decb6d53c Fixed pool and members status with UDP loadbalancers
This commit fixes pool and members status when using UDP loadbalancers.

Story: 2005736
Task: 33394

Change-Id: I75cde3ff820f085aebbdffd1e40c5ff40f16835d
2019-07-30 12:19:08 +02:00
Gregory Thiemonge
65e132a734 Add support for monitor_{address,port} in UDP members
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
2019-07-30 12:19:08 +02:00
Zuul
37799137a3 Merge "Fix multi-listener load balancers" 2019-07-29 22:14:04 +00:00
Michael Johnson
ab8a263674 Fix flavor profile API handling of None updates
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
2019-07-29 14:49:22 -07:00
Michael Johnson
e4e7b4a880 Fix l7rule API handling of None updates
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
2019-07-29 14:30:14 -07:00
Zuul
be5eef3492 Merge "Correcting typo in healthmonitors-list-response.json - http_vesion to http_version." 2019-07-29 19:17:42 +00:00
Zuul
a1879d1d50 Merge "Remove octavia-v2-dsvm-scenario-ubuntu-bionic job" 2019-07-29 19:17:41 +00:00
root
52485738b3 Correcting typo in healthmonitors-list-response.json - http_vesion to http_version.
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
2019-07-29 18:04:53 +05:30
Noboru Iwamatsu
93e06a9239 Add failover logging to show the amphora details.
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
2019-07-29 12:11:04 +09:00
Carlos Goncalves
262ffaa9d7 Build amphora image using centos-minimal element
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
2019-07-27 11:26:52 +02:00
Zuul
f4094381fd Merge "Make Ubuntu bionic the default for amphora images" 2019-07-27 03:46:17 +00:00
Zuul
80f4647648 Merge "Fix member API handling of None/null updates" 2019-07-27 00:49:25 +00:00
Michael Johnson
bd80cef648 Remove octavia-v2-dsvm-scenario-ubuntu-bionic job
All of the scenario tests are now running on Ubuntu bionic, so
remove our special/testing bionic job.

Change-Id: I8b02bdb1b8e055a32c673f09e1db6c5c3361220f
2019-07-27 00:19:57 +00:00
Zuul
de0ae9330c Merge "Blacklist sphinx 2.1.0 (autodoc bug)" 2019-07-26 23:35:44 +00:00
Zuul
fab8d48816 Merge "Add active-standby scenario jobs to check queue" 2019-07-26 23:35:36 +00:00
Michael Johnson
24fc7d615e Make Ubuntu bionic the default for amphora images
This patch updates the diskimage-create script to select Ubuntu
bionic as the default version of Ubuntu for the amphora image.

Change-Id: Ie8bbcbe073644137b8eb04c42d9457f507513007
2019-07-23 14:52:50 -07:00
Michael Johnson
06ce4777c3 Fix multi-listener load balancers
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
2019-07-23 14:28:49 -07:00
Michael Johnson
a84352af56 Add missing test requirement "fixtures"
Change-Id: I1cbf4dff958a36d2af2883cb2596fab53741cef1
2019-07-23 12:52:59 -07:00
Zuul
ba88441935 Merge "Update api-ref location" 2019-07-23 08:25:38 +00:00
Zuul
2363a929f3 Merge "Add cloud-init-datasources DIB element" 2019-07-23 00:01:05 +00:00
Michael Johnson
45cf2f328f Add project_id to all of the provider objects
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
2019-07-22 20:49:19 +02:00
Andreas Jaeger
bc19e07923 Update api-ref location
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
2019-07-22 19:18:40 +02:00
pengyuesheng
6b056dac25 Bump the openstackdocstheme extension to 1.20
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
2019-07-22 09:44:14 +08:00
Michael Johnson
2bb2f918ee Fix cryptsetup --pbkdf-memory failures
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
2019-07-17 21:32:45 +00:00
Carlos Goncalves
b12e5bb25e Add cloud-init-datasources DIB element
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
2019-07-16 14:34:26 +02:00
pengyuesheng
a70db6bf37 Blacklist sphinx 2.1.0 (autodoc bug)
See https://github.com/sphinx-doc/sphinx/issues/6440 for upstream details
Depend-On: https://review.opendev.org/#/c/663060/

Change-Id: Ia65511ff50679e36a88d1bdb5a0e07c71e5910dc
2019-07-16 17:13:40 +08:00