2471 Commits

Author SHA1 Message Date
Zuul
7fa83ef8e6 Merge "Fix the API list performance regression" 2018-09-26 08:32:38 +00:00
Zuul
b4c323db16 Merge "Pass through DIB_LOCAL_ELEMENTS from localrc" 2018-09-26 04:11:02 +00:00
Zuul
89d992773e Merge "Fix health manager performance regression" 2018-09-25 23:16:49 +00:00
Michael Johnson
951f018efe Pass through DIB_LOCAL_ELEMENTS from localrc
This patch allows us to specify special DIB elements via the localrc.
An octavia-tempest-plugin patch[1] linked to this will use this
setting in the gates to configure DIB to use the infra package mirrors.

[1] https://review.openstack.org/#/c/601332

Change-Id: I7444e8941c7175d92c50f1714a87b4181b983829
2018-09-24 16:35:33 -07:00
Michael Johnson
d08578d8fd Remove duplicate check gate jobs
We had a bad merge that duplicated some of the v2 check gate jobs.
This patch corrects that.

Change-Id: Ibe60e78d1c1dc6a978eaf80e16124b372aff6360
2018-09-24 11:24:03 -07:00
Zuul
48e0986051 Merge "Updates README-Vagrant.md to use OSC commands" 2018-09-20 22:27:35 +00:00
Michael Johnson
f15b43ddf4 Fix the API list performance regression
This patch fixes the Octavia v2 API "list" performance regression.

It also corrects some database model forward reference issues.

Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Change-Id: Ic110e0e73938743c1aba01aa28f393bae7141cbd
Story: 2002933
Task: 22920
2018-09-19 14:02:38 -07:00
German Eichberger
78ba1970f8 Updates the operator docs with the new lb failover command
Since Pike we have the failopver command on the load balancer and
this should be used instead of dsabling the port. Added other
minor updates.

Change-Id: I606518d8d9a52104872a08ee18bd6be62c100de3
2018-09-19 10:37:56 -07:00
ckji
756a17ce3a Updates README-Vagrant.md to use OSC commands
Change-Id: I255520474a38147722bc75f868ef6c7fccbcba97
2018-09-17 16:58:08 +08:00
Zuul
aee5c6e10e Merge "Gate on octavia-dsvm-base based jobs and housekeeping" 2018-09-15 02:29:09 +00:00
Zuul
182c942b5d Merge "Support DNF package manager in diskimage-create" 2018-09-15 00:46:10 +00:00
Zuul
d1168a496b Merge "Add the missing markup for the hyperlink title" 2018-09-14 23:37:17 +00:00
Zuul
4155922a74 Merge "Set some amphora driver optimizations" 2018-09-14 23:25:05 +00:00
Zuul
e2bdb0adf4 Merge "Update amphora-agent to report UDP listener health" 2018-09-14 23:14:31 +00:00
Zuul
1fd65c9acf Merge "Validate member address for batch update members" 2018-09-14 03:18:49 +00:00
Zuul
7c9ef40c2c Merge "Make health checks resilient to DB outages" 2018-09-13 19:32:49 +00:00
Carlos Goncalves
326713c54c Gate on octavia-dsvm-base based jobs and housekeeping
In Rocky, octavia-tempest-plugin (v2) got a significant bump in test coverage
surprassing existing tempest tests in Octavia repo (v1). The direction
we are pursuing is to move to v2 only anyway and drop v1 altogether once
neutron-lbaas is dropped. Hence, we should also gate on octavia v2 jobs.

This patch also proposes gating on octavia-v2-dsvm-scenario-centos-7 job
and octavia-v2-dsvm-scenario-ubuntu-bionic as check job.

In addition, this patch cleans up remaining leftovers when transitioned
to Zuul v3, as well removes jobs octavia-v1-dsvm-scenario-multinode and
octavia-v1-dsvm-py3x-scenario-multinode from gate list and nuke
octavia-v1-dsvm-scenario-lxd.

Depends-On: https://review.openstack.org/#/c/600118

Change-Id: I7d2d8223e0b876257dd6a639fc92cbb11f0d6338
2018-09-12 04:35:18 +00:00
Carlos Goncalves
92473ce210 Make health checks resilient to DB outages
Octavia is struggling with proper handling of DB connectivity issues
bringing down all running loadbalancers. Octavia tries to failover
amphorae and can fail in one of the following stages:

1. Octavia can't create new amphora because Nova isn't ready yet after
   DB outage. Nova-API throws 500, Octavia nukes amphora instance and
   won't try to recreate it again.
2. Octavia tries to recreate amphora instance but it gets stuck in
   PENDING_CREATE forever.
3. Octavia fails completely reporting DB connection issues, leaving some
   amphoras in error, some in pending_delete as bellow: It affects also
   HA deployments.

This patch fixes that by wrapping the DB check for health, waiting for
the connection to be re-established and sleeping off the full
"heartbeat_timeout" interval.

Story: 2003575
Task: 24871

Change-Id: I7b30cd31e1ce0cf9dab61484f4404f1c6ccddd5e
2018-09-11 12:21:22 -06:00
Lingxian Kong
e943b39822 Validate member address for batch update members
We added the configuration option for reserved IP addresses that cannot
be used for load balancer member addresses, but the validation for
batch update members is missing.

This patch should also be backported to stable branches.

Change-Id: Ibd3145cfd8b92a494f7cceff10414d6e153136e9
Story: 2003413
2018-09-09 00:48:25 +12:00
Lingxian Kong
dbad641cde Fix batch update members
When batch update members request only contains existing members
update, octavia-api raises exception because 'pool_id' is missing.

This patch should backport to stable branches.

Change-Id: I43a9af83a6615d3bffb7ec9c69f8d0b66c03fc97
Story: 2003608
Task: 24940
2018-09-09 00:23:04 +12:00
Zuul
c7395e0488 Merge "Disable KVM at limestone (again)" 2018-09-08 03:29:23 +00:00
Carlos Goncalves
90ec2ae622 Support DNF package manager in diskimage-create
DNF is the next upcoming major version of Yum. It has been the default
package manager since Fedora 22. This patch tries to use DNF if
available, and falls back to Yum.

Change-Id: Ic011ef8281eb99ae010c61f47a8423bc186c25b7
2018-09-08 02:52:27 +02:00
Michael Johnson
9d7c14295e Disable KVM at limestone (again)
There appears to be a kernel regression that is leading to KVM failures
again. This patch adds limestone to the exclusion list based on job
failures[1].

[1] http://logs.openstack.org/32/600332/3/check/octavia-v1-dsvm-scenario/ \
    467a1e6/logs/libvirt/qemu/instance-00000001.txt.gz

Change-Id: I356c32c27f9803226e9a449c2f81aa1d04af9671
2018-09-07 15:04:59 -07:00
Michael Johnson
f13a2e6546 Fix health manager performance regression
When running stress tests against the Octavia Health Manager it was
observed that the scalability and performance of the health manager has
degraded.
It was observed that the ORM layer was forming poorly optimized queries,
putting excessive load on the database engine and unnecessary code paths
were executing for each heartbeat message.
This patch optimizes the health manager processing of amphora-agent
heartbeat messages by optimizing the database requests, pool processing,
and event streamer code paths.

Change-Id: I2f75715b09430ad139306d9196df0ec5d7a63da8
Story: 2001896
Task: 14381
2018-09-07 14:33:18 -07:00
Zuul
e99d0d60f4 Merge "Raise minimum coverage to 90%" 2018-09-07 09:39:38 +00:00
Zuul
ac0a5fc503 Merge "Use openstack-tox-cover template" 2018-09-07 03:25:21 +00:00
Zuul
336f1acb5e Merge "Validate member address for lb graph creation" 2018-09-07 02:14:00 +00:00
Michael Johnson
57046cf2b9 Raise minimum coverage to 90%
It's time to raise the bar for Octavia coverage. We have been at >= 90%
coverage for a while now, so I'm comfortable proposing raising the
minimum to 90%.

Change-Id: Icd9024d076d3d1c13e35e7e293af3c4fc8406ddf
2018-09-06 16:40:48 -07:00
Andreas Jaeger
f513a91da8 Use openstack-tox-cover template
Use openstack-tox-cover template, this runs the cover job as non-voting
in the check queue only.

Change-Id: I11ca9d9454d69e10e3c881ce85b6c287f57900bf
2018-09-06 20:36:52 +02:00
Andreas Jaeger
de57799490 Update zuul/projects.yaml
Remove all branch specifiers, the project has zuul.d backported and
branch specifiers are not needed.

Use new template for lower-constraints jobs.

Remove queue name from experimental queue, this is not needed.

Change-Id: I80e9a8efcc163e389c8d114063921e43a4b48039
2018-09-05 08:56:23 +02:00
Lingxian Kong
809915c4b1 Validate member address for lb graph creation
We added the configuration option for reserved IP addresses that cannot
be used for load balancer member addresses, but the validation for lb
graph creation is missing.

This patch should also be backported to stable branches.

Change-Id: I5ba30d29e7a35b370f21d9f68ec43efed74dd363
Story: 2003413
Task: 24555
2018-09-05 02:02:33 +00:00
Michael Johnson
2170cc6c45 Update amphora-agent to report UDP listener health
Currently the amphora-agent is not reporting UDP listener health
when the UDP listener does not have a pool and members.
This patch changes that behavior to report the listener as healthy
if the keepalived process is started and running in the amphora.

This patch also introduces message versioning for the health
heartbeat messages.

It also corrects a few assertEqual tests that had the reference and
actual values backwards.

Change-Id: Ifc28b4991852e59c0d27b4ab3d1afc4e9965e88b
Story: 2003592
Task: 24911
2018-08-31 13:34:57 -07:00
Michael Johnson
53772f5320 Set some amphora driver optimizations
This patch adds a few optimizations when using the amphora driver.

1. It increases the amp_active_retries from 10 to 30. This increases
the time we wait for nova to mark an instance "ACTIVE". The old default
of 10 was one minute forty seconds, but in some clouds it's been observed
that the nova schedule can get overloaded and take longer than a minute
forty to schedule the instance. Setting this to 30 means we will wait
five minutes for nova to schedule the instance.
2. It enables TCP kernel splicing in HAProxy. This has been shown to
reduce the CPU overhead for very high rate TCP load balancers.
3. Finally it enables "safe" HTTP keepalives on the backend member
connections [1]. This increases the request rate possible while using HTTP
protocol listeners and members.

[1] http://cbonte.github.io/haproxy-dconv/1.6/configuration.html#4-http-reuse

Change-Id: I3af009cac9a9edc8aef793b52c6a1488fde2c59b
2018-08-31 10:34:39 -07:00
Michael Johnson
96b9450e60 Re-enable flow diagrams
OpenStack requirements has added pydot to global requirements.
Even though this isn't the proper fix (still pending networkx 2.2 release)
this will resolve the dependency issue for us, so re-enabling our
flow diagrams.

Change-Id: I49856c8fbd7cb6302be4ec97a14b2c10682cf504
2018-08-30 10:14:06 -07:00
Ann Taraday
2a2b308a39 Fix passphrase None errors
At this moment if ca_private_key_passphrase is None loadbalancer
cannot be created due to AttributeError.
Current change adds check for None before encoding.

Story: 2003588

Task: 24896

Change-Id: I40063aa2f96534c12b284f72d16c9f5a72ad1486
2018-08-30 09:47:54 +00:00
Nguyen Hai
aed0867de4 add python 3.6 unit test job
This is a mechanically generated patch to add a unit test job running
under Python 3.6 as part of the python3-first goal.

See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html

Change-Id: I16151350b32ccc0493cbde3d73feb984c8e3047a
Story: #2002586
Task: #24316
2018-08-25 21:29:54 +00:00
Zuul
27013b166b Merge "switch documentation job to new PTI" 2018-08-24 20:49:50 +00:00
Zuul
87f78e27a1 Merge "import zuul job settings from project-config" 2018-08-24 18:56:34 +00:00
Nguyen Hai
0a7eb86e84 switch documentation job to new PTI
This is a mechanically generated patch to switch the documentation
jobs to use the new PTI versions of the jobs as part of the
python3-first goal.

See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html

Change-Id: Ica898daa44f2bbc37789dc10d929060d031f4618
Story: #2002586
Task: #24316
2018-08-24 10:17:37 -07:00
Michael Johnson
c8074cd18a Fix the amphora noop driver
The amphora no-op driver did not get updated properly for the multi-amphora
failover fix.
This patch fixes that issue and corrects the doc strings for the
haproxy amphora driver update_amphora_listeners method.

Change-Id: Ib0d63da7c5599069f5ea50f0dfbc59eefba58c84
2018-08-23 17:45:04 -07:00
Nguyen Hai
fff1880748 import zuul job settings from project-config
This is a mechanically generated patch to complete step 1 of moving
the zuul job settings out of project-config and into each project
repository.

Because there will be a separate patch on each branch, the branch
specifiers for branch-specific jobs have been removed.

Because this patch is generated by a script, there may be some
cosmetic changes to the layout of the YAML file(s) as the contents are
normalized.

See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html

Change-Id: I0ff16a1354bf716f1df938573993cd9254cf6843
Story: #2002586
Task: #24316
2018-08-23 22:02:31 +09:00
Zuul
a0adf915e0 Merge "Temporarily remove octavia-v2-dsvm-scenario-ubuntu.bionic" 2018-08-22 18:38:14 +00:00
Zuul
4d867f623d Merge "Remove user_group option" 2018-08-21 15:51:12 +00:00
Carlos Goncalves
8ae5715b0e Temporarily remove octavia-v2-dsvm-scenario-ubuntu.bionic
The job definition of octavia-v2-dsvm-scenario-ubuntu.bionic has to be
moved over to octavia-tempest-plugin. Follow-up change
I7d2d8223e0b876257dd6a639fc92cbb11f0d6338 will re-define it and change
Iafd31337fed62affc4125e0e1eea0179db5f776d will re-enable the job
execution.

Change-Id: Iaecb484b7eee6e24e85df38a73d4f1f522e2204c
2018-08-21 11:05:30 +02:00
Michael Johnson
798ce95760 Disable KVM at OVH
OVH infra hosts are causing "KVM: entry failed, hardware error 0x0"
failures where instances fail to start (cirros, etc.).
This patch excludes OVH instances from kvm enablement until the issue is
resolved.

Depends-On: https://review.openstack.org/#/c/593452
Change-Id: Idedacb0d029e8166b87ede6a7b972e2f6ce74919
2018-08-19 20:46:32 +00:00
Zuul
6b49fc1fab Merge "Fix compat with Python >= 3.6" 2018-08-18 03:20:48 +00:00
James Page
97930016d9 Fix compat with Python >= 3.6
Provide a sane return value for get_keepalivedlvs_pid
to ensure that underlying Python libary code does not
throw a TypeError when joining values:

  TypeError: join() argument must be str or bytes, not 'MagicMock'

Change-Id: I174bbaf618a845cc246f3b1926d600d03e710de3
2018-08-17 06:33:19 +01:00
Michael Johnson
1ad9fd7272 Allow blocking IPs from member addresses
This patch adds a configuration option for reserved IP addresses that
cannot be used for load balancer member addresses. By default, this will
include the nova metadata service address 169.254.169.254.

Change-Id: I25de5ed5f6f35afc55dd1154c3e02934fddb100a
Story: 2003413
Task: 24555
2018-08-16 22:25:35 +00:00
Adam Harwell
91fae05a7d "Resolve" bandit issue with sha1 hashes
We only use them as a consistent hash, not for anything security
related. Even if someone could manage a hash collision or something,
the worst that could happen is their own LB stops working...
So, just tell bandit to ignore them.
Added a docstring to one function to attempt to be extra clear.

Change-Id: Ic337c32020e12183e2246b844ded07a83c6d3ad8
2018-08-17 07:22:27 +09:00
Zuul
790f29e006 Merge "Fix neutron "tenat_id" compatibility" 2018-08-16 03:40:02 +00:00