2492 Commits

Author SHA1 Message Date
Nguyen Van Trung
809a383635 Don't quote {posargs} in tox.ini
Quotes around {posargs} cause the entire string to be combined into one
arg that gets passed to stestr. This prevents passing multiple args
(e.g. '--concurrency=16 some-regex')

Change-Id: I7c45e4525f255deec7c79ae567cf4b1dda111a4a
2018-10-22 16:34:59 +00:00
Michael Johnson
759cb75960 Update docs conf.py for openstackdocstheme change
A Starlingx patch[1] changed the signature for some openstackdocstheme
methods which is causing Octavia docs to not build.

This patch updates the octavia docs configuration for the new
openstackdocstheme.

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

Change-Id: Id09ab3b78291c28e116f1f4ffb8836eac0537d94
2018-10-19 16:18:20 -07:00
Zuul
8e373c8053 Merge "Remove deprecated parameters" 2018-10-19 20:59:02 +00:00
Michael Johnson
e644b9fdce Remove deprecated API settings
We moved "bind_host", "bind_port", "auth_strategy", and "api_handler"
into the api_settings section in the configuration file. These settings
have now reached the end of their deprecation cycle and are being removed.

Change-Id: I323a7bdceae5a8d0e3025800beaf1d0a13c12ef8
2018-10-18 19:42:21 +00:00
Luis Tomas Bolivar
feff3b472c Ensure pool object contains the listener_id if passed
When creating a pool with an associated listener_id, sometimes the
listener_id is not set. Problem comes from [1] not setting the listeners
property on db_pool pool object even if it is passed.

[1] https://github.com/openstack/octavia/blob/master/octavia/api/v2/controllers/pool.py#L244-L245

Story: 2003833
Change-Id: I414a3c6d2e97d30ff12eda4ecf71ec032998df7d
2018-10-16 10:56:26 +02:00
Zuul
e9bd56f094 Merge "Refactor the AAP driver to not depend on nova" 2018-10-16 06:23:20 +00:00
Zuul
d81257d4cf Merge "Increment versioning with pbr instruction" 2018-10-16 05:59:19 +00:00
German Eichberger
79cd851548 Refactor the AAP driver to not depend on nova
Replace calls to the nova client with calls to the compute driver.
This will help non vm efforts (e.g. zune) and also make the code
easier to break up later.

Change-Id: I7ee175c5ecb98af0ca5e299c2ac10e43eb40ed30
2018-10-15 13:48:42 -07:00
Zuul
ed301d7fa2 Merge "Add API versioning to the api-ref" 2018-10-14 13:43:59 +00:00
Sean McGinnis
dd1b1be815 Increment versioning with pbr instruction
With moving away from required milestone releases, the version numbers
calculated by PBR on the master branch will not work for those testing
upgrades from the last stable release. More details can be found in the
mailing list post here:

    http://lists.openstack.org/pipermail/openstack-dev/2018-October/135706.html

This is an empty commit that will cause PBR to increment its calculated
version to get around this.

PBR will see the following which will cause it to increment the version:

Sem-Ver: feature

Please merge this patch as soon as possible to support those testing
upgrades.

Change-Id: Id29359e81c002cc302b81a8779f363a4a2ba5474
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2018-10-12 13:10:02 -05:00
German Eichberger
df17903ab8 Delete zombie amphorae when detected
Zombie amphorae will be deleted by the system to lighten the load on
operators if the amphora record is still in the database.

Story: 2003912
Task: 26800

Change-Id: If133a3d36a9381bcca9f7d00f5c1531885907940
2018-10-12 00:00:06 +01:00
Jacky Hu
6d21b33cdc Remove deprecated parameters
This is a follow up of I70e5cb07a4435f58f5da3999be70162efa7f0bd8, which
eliminated the usage of the parameters removed here.

Change-Id: I9c52aa6ef73482e2f2d83a6b228407790e18ca74
2018-10-11 09:25:41 +08:00
Michael Johnson
9aea3501d1 Add API versioning to the api-ref
This patch documents the new parameters added, by API version greater
than 2.0.

Change-Id: Ieb2c30653e832b9fa726f8430da603945fd10cc2
2018-10-10 16:24:36 -07:00
Adam Harwell
2c88c553ae HTTPS HMs need the same validation path as HTTP++
Second take on this patch, didn't realize the Create and the Update
paths were different. Same exact change as the other patch, but in the
update validation method.

For reference: https://review.openstack.org/#/c/604924/

Change-Id: I916ccb7658d4849b3c208405ec40fc1a0eab4ba7
2018-10-04 16:08:00 -07:00
Zuul
2ea3ed8c48 Merge "HTTPS HMs need the same validation path as HTTP" 2018-10-03 16:17:20 +00:00
Zuul
a0112c4b37 Merge "Support REDIRECT_PREFIX action for L7Policy" 2018-10-02 11:27:03 +00:00
Zuul
687a0e8472 Merge "Separate the thread pool for health and stats update" 2018-10-01 19:41:57 +00:00
Michael Johnson
9b6aa47c03 Fix an upgrade issue for CentOS 7 amphora
A recent patch[1] (stein master) added the http-reuse option to the
haproxy template for pools. This feature is not available in the HAProxy
version included with CentOS 7, 1.5.x. This could cause an upgrade issue
if the control plane was upgraded to Stein, but the cloud still had older
CentOS based amphora.

This patch corrects that issue by checking the HAProxy version in the
amphora and adjusting the template if it finds an older HAProxy.

This patch also updates the test_health_check_stale_amphora test to
not wait (sleep) for the full heartbeat_timeout.

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

Change-Id: I3d990d1d3cd93dbeced9edc53f9c166610dafcd0
Story: 2003901
Task: 26775
2018-09-28 16:37:22 -07:00
sapd
62192dba3a Support REDIRECT_PREFIX action for L7Policy
Currently, Octavia only support three actions for L7Policy,
in this patch we will implement new action for L7Policy.

Story: 2003700

Change-Id: Ie99591ede097b566294ebdb673c460442dd6d942
2018-09-28 18:10:39 +07:00
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
Adam Harwell
7dd6f8b846 HTTPS HMs need the same validation path as HTTP
Change-Id: I2fd51664336dca51f134b3fccd3e8c936b809839
2018-09-24 15:14:17 -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