3365 Commits

Author SHA1 Message Date
Zuul
0ccb997793 Merge "Run taskflow jobboard conductor conditionally" 2020-04-16 11:41:24 +00:00
Zuul
d9e029960d Merge "Correct delay between UDP healthchecks" 2020-04-16 00:18:29 +00:00
Adam Harwell
f4057134a8 Healthmanager opts aren't CLI-related
This impacts local testing and is just a weird bug to have in general...

Change-Id: Ie1b53f5175bf3c827090650d0229579b0a33e7f2
2020-04-15 20:10:06 +00:00
Michael Johnson
ccd6c3875e Disable two tests due to sqlalchemy/sqlite bug
This patch adds a test skip for two tests that are impacted by the
recent sqlalchemy 1.3.16 release.
With this release, a patch[1], changes the default commit behavior
of a transaction. With this change we are seeing that the load
balancer created in the tree-create test disappears from the
transaction context during the test and the pool create call will
throw a foreign key error as the load balancer is not in the database.

It's not clear if this is purely a sqlalchemy, pysqlite, or sqlite3
bug at this time.
Given the requirements are already in freeze for the Ussuri release,
we are opting to disable the tests (we know only sqlite is impacted),
instead of attempt to blacklist 1.3.16 in requirements.

[1] 9ebbf8614a (diff-e9762e21a27d8e6c44db6f9dd4edc694R455)

Change-Id: I7910ebe4cff692bab67349bbf3e4ee4e24b5fa7a
2020-04-15 10:08:00 -07:00
ZhaoBo
6e61991833 Support HTTP and TCP checks in UDP healthmonitor
This patch introduces 2 macros in lvs.

1. Support HTTP GET, allow users create HTTP healthmonitor for udp pool.
2. Support TCP check, allow users create TCP healthmonitor for udp pool.

Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Change-Id: I61c7d8d4df54710a92b8c055be84bba29bf3d7e6
Story: 2003200
Task: 23356
Story: 2003199
Task: 23355
2020-04-15 16:18:35 +00:00
Ann Taraday
fb70e3b3c1 Run taskflow jobboard conductor conditionally
Run taskflow jobboard conductor only if amphorav2 provider is
enabled.

Fixes devstack plugin.sh conditions for amphorav2 provider.

Change-Id: I49b587cf748996658859667485400307205d209b
2020-04-15 20:11:07 +04:00
Brian Haley
1c639f01a0 Don't inherit enforcing bash errexit in devstack plugin
The devstack plugin code was sourcing a file that was
enabling bash errexit, which was then inheriting it in
later operations that could cause the shell to exit
unexpectedly.

Change both scripts to 'set +e' near exit so sourcing
them doesn't have issues.

Change-Id: I16513b0066c05cd6fc606da341df636094010a34
2020-04-15 10:10:34 -04:00
Adam Harwell
96a4482dff Fix py3 amphora-agent cert-rotation type bug
Flask's stream always returns bytes, file write always takes string.
This causes py3 amps to return 500 on cert rotation AND wipe out the
certificate, so the amphora are no longer controllable and go to ERROR
state. Anyone running py3 amps prior to this patch will experience
amphorae breaking on a timer due to housekeeping cert rotation!

Change-Id: I831b0b48d719397c14d80f8ebcbad997c50c7795
2020-04-14 06:48:43 -07:00
OpenStack Proposal Bot
c9e1551550 Imported Translations from Zanata
For more information about this automatic import see:
https://docs.openstack.org/i18n/latest/reviewing-translation-import.html

Change-Id: Ifbaac9d41080210124e15476df392622b94b5b2e
2020-04-11 08:32:07 +00:00
Zuul
771a5d87f4 Merge "Fix amphora image build jobs" 2020-04-10 13:28:50 +00:00
Zuul
4f16f0aeb6 Merge "Add listener allowed_cidrs to the feature matrix" 2020-04-10 11:19:24 +00:00
Adam Harwell
4b2a38d93c Correct delay between UDP healthchecks
Template was using timeout value instead of delay value.
Also clean up redundant values in the templates (things like retry and
delay_before_retry only need to be specified once at the top level).

Change-Id: I376917e40eb7a92f7f03e691ed9a0c23fd2ce8f8
2020-04-09 18:47:11 -07:00
Zuul
ee30c1f7c9 Merge "Add availability-zone to loadbalancer object docs" 2020-04-09 13:04:27 +00:00
Zuul
73fbc05386 Merge "Jobboard based controller" 2020-04-09 00:10:44 +00:00
Adam Harwell
4f4804259f Add availability-zone to loadbalancer object docs
Change-Id: I8626c0338d4ad7d11bf5d56b022136cb4513d37e
2020-04-08 16:24:11 -07:00
Ann Taraday
9c13499d21 Jobboard based controller
Introduce TaskFlowServiceController which uses taskflow
jobboard feature and saves jobs info into persistence backend.

Jobboard could be operated via RedisTaskFlowDriver or
ZookeeperTaskFlowDriver, that could be set via the config.
RedisTaskFlowDriver is intoduced as default backend for jobboard.
Usage of jobboard allows to resume jobs in case of restart/stop
of Octavia controller services.

Persistence backend saves state of flow tasks that required in
case of resuming job. SQLAlchemy backend is used here.

Bump taskflow version to 3.7.1 and add dependency to
SQLAlchemy-Utils (required for taskflow sqlalchemy
backend support).

Story: 2005072
Task: 30806
Task: 30816
Task: 30817

Change-Id: I92ee4e879e98e4718d2e9aba56486341223a9157
2020-04-08 19:53:09 +04:00
Dawson Coleman
d47f164a60 Add ability to specify TLS cipher list for pools
Pools can now be each be assigned an OpenSSL cipher string with the
field tls_ciphers.  A new configuration option, default_pool_ciphers,
specifies what cipher string to use for new tls-enabled pools
if one is not explicitly specified at time of creation.

Change-Id: Iedb7774bfb8d70ea307d6a513248e1fe2389fa34
Depends-On: I77da6f14063877af0077f2c12df1aab5d5ead187
Story: 2006627
Task: 37172
2020-04-07 20:59:56 -05:00
Zuul
78863cf7ee Merge "Don't register cli opts on import" 2020-04-07 17:14:58 +00:00
Zuul
8c6d64baa7 Merge "Add ability to set TLS cipher list for listeners" 2020-04-07 16:45:27 +00:00
Ben Nemec
19d80f11a4 Don't register cli opts on import
A recent change in oslo.policy has made it register its cli opts on
the global config object. This was done to fix a bug where the opts
passed to the oslo.policy cli tools would get lost once it called
into project code because it was previously using a private config
object.

Octavia had already fixed this bug in a different way by filtering
the args in the enforcer code, which should no longer be necessary
now that the oslo.policy fix has merged.

However, the use of the global config object by the policy cli has
introduced a new problem, which is that after the config object is
initialized you can't register more cli opts. Because Octavia was
registering cli opts on import, this means that when the policy
tools call the Octavia policy entrypoint those opts get registered
and cause a failure.

To fix that, this change moves the cli opt registration into a
function that gets called from config.init so they will only get
registered when running an actual Octavia service. A separate
function was needed because they also need to be registered in
unit tests, and we don't want to actually initialize the entire
config object there. This way they can be initialized properly
in both scenarios.

Change-Id: I48ae260335f67e8ab1a188a94e44a7f1968e6fe9
2020-04-07 00:06:44 +00:00
Dawson Coleman
cd176e55c5 Add ability to set TLS cipher list for listeners
Listeners will now be able to each be assigned their own OpenSSL
cipher string with a new field: tls_ciphers.  There is also a new
configuration option, default_listener_ciphers, which specifies the
cipher string to assign to new listeners when one is not explicitly
specified.

Change-Id: I77da6f14063877af0077f2c12df1aab5d5ead187
Depends-On: Id5f4c20abd40dd092558a711987953012d4ae67f
Story: 2006627
Task: 36839
2020-04-06 17:06:32 -07:00
Zuul
5cbe0453f6 Merge "Add F5 Networks provider driver by SAP SE" 2020-04-02 14:07:25 +00:00
Zuul
5f30b749ac Merge "Update hacking for Python3" 2020-04-02 13:32:22 +00:00
Carlos Goncalves
cb7fdece3a Add F5 Networks provider driver by SAP SE
Change-Id: Idc1e82601a1a757bd0f083e97bc06652717728e2
2020-03-31 11:21:37 +00:00
Zuul
cd4a52f50d Merge "Ussuri contributor docs community goal" 2020-03-30 11:08:20 +00:00
Andreas Jaeger
79464c0e04 Update hacking for Python3
The repo is Python 3 now, so update hacking to version 3.0 which
supports Python 3.

Fix problems found.

Update local hacking checks for new flake8.

Add test-requirements.txt to doc building, hacking is now imported and
needed for autodoc.

Change-Id: I06211ef20131c64deba135123e53d87f3b5356a2
2020-03-30 10:03:05 +00:00
Zuul
51f8d25fbd Merge "Add UDP LBs to the basic cookbook" 2020-03-30 06:10:44 +00:00
Zuul
0475acaab1 Merge "Fix TESTING.rst example" 2020-03-27 15:31:24 +00:00
Michael Johnson
399331b01a Ussuri contributor docs community goal
This patch updates the Octavia contributor documentation to follow
the guidelines of the Ussuri cycle community goal[1].

[1] https://governance.openstack.org/tc/goals/selected/ussuri/project-ptl-and-contrib-docs.html

Co-authored-by: Brian Rosmaita <rosmaita.fossdev@gmail.com>
Story: 2007236
Task: 38542
Change-Id: I5f109a4e9ac2e31939ff28b655ffb00c1c02b417
2020-03-25 16:55:48 -07:00
Zuul
73fca169ab Merge "Exclude acpid on Red Hat family DIB builds" 2020-03-25 19:34:36 +00:00
Carlos Goncalves
37b8bc9b16 Fix amphora image build jobs
The amphora image build jobs are python3. Installing python-yaml
(python 2) causes trouble.

Change-Id: I1d591dda5fbb7aaea4d51da5a1d2218114051f36
2020-03-25 13:31:05 +01:00
Zuul
70e244fff5 Merge "Pick stale amphora randomly" 2020-03-25 04:11:55 +00:00
Zuul
894fdcafa4 Merge "Allow AZ to override valid_vip_networks config" 2020-03-23 20:28:58 +00:00
Zuul
85824b3282 Merge "Network Delta calculations should respect AZs" 2020-03-23 20:28:57 +00:00
Michael Johnson
81ed1334d2 Exclude acpid on Red Hat family DIB builds
Red Hat/centos do not ship acpid for ppc64le, but others do.
This patch sets up a package map for DIB to exclude the acpid
package on Red Hat family image builds, while allowing it for the
other distros.

Change-Id: Iaef520e5f2a66833228e824ec4fb41f5915169af
2020-03-23 09:27:10 -07:00
Zuul
2cf00d8c85 Merge "Fix padding logic for UDP health daemon" 2020-03-23 03:16:56 +00:00
Adam Harwell
d27ee3f0ee Fix padding logic for UDP health daemon
Should have done "pad to 8 characters" on the hex conversion, but it was
instead hardcoded to pad a single `0`, which is right in a lot of cases
but not all.

For example:
>>> ip1 = ipaddress.ip_address('98.136.140.23')
>>> ip2 = ipaddress.ip_address('10.1.1.1')
>>> "%X" % ip1._ip
'62888C17'
>>> "%X" % ip2._ip
'A010101'

Change-Id: Ia9fec4e72c00f7086489b245d9dc50ed9c27f12a
2020-03-20 16:51:44 -07:00
Zuul
fa77cae14a Merge "Add a periodic image build job" 2020-03-20 21:58:11 +00:00
Zuul
7f617a3ab7 Merge "Add oslo middleware healthcheck to Octavia API" 2020-03-20 21:43:01 +00:00
Zuul
d2b432b07e Merge "Fix load balancer update with provider filtered params" 2020-03-20 08:06:31 +00:00
Sam Morrison
18020e6c88 Add oslo middleware healthcheck to Octavia API
healthcheck middleware adds a /healthcheck url that allows
unauthenticated access to provide a simple check when running
octavia-api behind a load balancer

https://docs.openstack.org/oslo.middleware/latest/reference/healthcheck_plugins.html

Co-authored-by: Michael Johnson <johnsomor@gmail.com>
Change-Id: I10db6226750f7b7c703067d2ab82eea3a9875112
2020-03-19 11:24:16 -07:00
Zuul
22fa179edc Merge "Remove the barbican "Grant access" from cookbook" 2020-03-19 14:27:34 +00:00
Brian Haley
f6b957e8ee Remove all usage of six library
Convert all code to not require six library and instead
use python 3.x logic.

Created one helper method in common.utils for binary
representation to limit code changes.

Change-Id: I2716ce93691d11100ee951a3a3f491329a4073f0
2020-03-18 17:15:26 -04:00
Brian Haley
70f5df1e17 Update cirros image to cirros-0.5.1-x86_64
Change example string and depend on devstack change to
make sure we won't break.

Depends-on: https://review.opendev.org/#/c/711492
Change-Id: I5ca700b27c3c5be26dc5132fafd9b6cffade2b6b
2020-03-18 12:21:44 -04:00
Michael Johnson
82abe333ad Remove the barbican "Grant access" from cookbook
We missed a line when removing the requirement to grant Octavia
access to the secret in barbican.
This patch corrects that oversight.

Change-Id: I3c6459becc415d6dc0792c44ca75e717b239cd92
2020-03-17 13:48:42 -07:00
Zuul
e0d4c98556 Merge "[Amphorav2] Fix noop driver case" 2020-03-17 17:36:12 +00:00
Zuul
157ad64c66 Merge "Stop "dnf makecache" in the amphora images" 2020-03-16 21:46:02 +00:00
Michael Johnson
c8b044af4a Stop "dnf makecache" in the amphora images
On base operating systems that use DNF there can be a systemd timer
that attempts to call out and update the dnf cache every hour.
This patch adds an diskimage-builder element that disables this
timer as most amphora will not be successful in updating this cache
because they do not have network access or DNS services avaialable.

Change-Id: I5dec631d3e66e1dfb6b8741caea89938ee18a7d8
Story: 2007408
Task: 39019
2020-03-16 16:53:27 +00:00
Ann Kamyshnikova
6bca6bef1b [Amphorav2] Fix noop driver case
Fix amphora creation with amphora_noop_driver
and network_noop_driver.

Change-Id: I5d3c4d5280916916e95120cfba6fc076a1650cf4
Story: 2005072
2020-03-16 10:50:28 +00:00
Zuul
978d57f3a4 Merge "Use sqlalchemy isnot(None)" 2020-03-13 08:25:18 +00:00