254 Commits

Author SHA1 Message Date
Zuul
e475734b2a Merge "Clarify health monitor behavior" 2020-06-23 08:06:09 +00:00
Zuul
0a697a352c Merge "Switch oslo.policy over to yaml" 2020-06-11 22:11:11 +00:00
Michael Johnson
66a67ba5af Clarify health monitor behavior
The basic cookbook document implied that pools without a health
monitor would eventually remove a failed member from the pool.
This will not happen as if there is not health monitor, the members
are assumed as ONLINE.

Change-Id: I6c52f163d8ac0456b4faf7d9bf5cc4a19ee6eeb7
2020-06-11 09:10:20 -07:00
Michael Johnson
fafabad042 Switch oslo.policy over to yaml
Oslo.policy is moving away from using json format policy files[1].

This patch updates the Octavia documentation, policy configuration file, and
legacy admin-or-owner policy file to be in yaml format.

Octavia will continue to honor and support the json format file as long
as oslo.policy does, but this patch will encourage new deployments
to use the yaml format.

[1] https://docs.openstack.org/oslo.policy/latest/admin/policy-json-file.html

Change-Id: I925cc05981e677c0552b18f845fdbc512d2af22c
2020-06-08 08:54:07 -07:00
Michael Johnson
c2ff9bce99 Update the feature matrix for new features
We missed updating the provider driver feature matrix for a few
new Octavia features. This patch updates the matrix.

Change-Id: I328830df19fb8df6ea93cee2ad2f0dbda03279a1
2020-06-05 12:39:15 -07:00
Zuul
7e851d3f6e Merge "Fix the grenade plugin to also upgrade octavia-lib" 2020-05-29 13:48:39 +00:00
Carlos Goncalves
59831f46f7 Fix the grenade plugin to also upgrade octavia-lib
Upgrade octavia-lib in target environment to make sure we are testing
the latest code.

Change-Id: I8003de0f71a5dee7438ab2f6a2c497386018c1ac
2020-05-22 19:46:31 +02:00
Andreas Jaeger
acb4d7b4e1 Switch to newer openstackdocstheme and reno versions
Switch to openstackdocstheme 2.2.1 and reno 3.1.0 versions. Using
these versions will allow especially:
* Linking from HTML to PDF document
* Allow parallel building of documents
* Fix some rendering problems

Update Sphinx version as well.

Set openstackdocs_pdf_link to link to PDF file. Note that
the link to the published document only works on docs.openstack.org
where the PDF file is placed in the top-level html directory. The
site-preview places the PDF in a pdf directory.

Disable openstackdocs_auto_name to use 'project' variable as name.

Change pygments_style to 'native' since old theme version always used
'native' and the theme now respects the setting and using 'sphinx' can
lead to some strange rendering.

openstackdocstheme renames some variables, so follow the renames
before the next release removes them. A couple of variables are also
not needed anymore, remove them.

See also
http://lists.openstack.org/pipermail/openstack-discuss/2020-May/014971.html

Change-Id: I87889f73207ecd940963fbe601ccbb79863b96ac
2020-05-21 13:06:24 +02:00
Raimund Hook
908abe6e09 Small fix of wording in Ubuntu install doc
In the section about creating a key pair for the amphora instance, there
were a few small typos. This change fixes those.

TrivialFix

Change-Id: Ic6af32cc566abb6931ef61c979407780121e4bb6
Signed-off-by: Raimund Hook <openstack@sting-ray.za.net>
2020-04-22 14:42:18 +01:00
Zuul
4f16f0aeb6 Merge "Add listener allowed_cidrs to the feature matrix" 2020-04-10 11:19:24 +00: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
Zuul
5cbe0453f6 Merge "Add F5 Networks provider driver by SAP SE" 2020-04-02 14:07:25 +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
Zuul
51f8d25fbd Merge "Add UDP LBs to the basic cookbook" 2020-03-30 06:10:44 +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
894fdcafa4 Merge "Allow AZ to override valid_vip_networks config" 2020-03-23 20:28:58 +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
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
Michael Johnson
801b99ed00 Update the available provider drivers list.
This patch updates the list of known Octavia provider drivers.

Change-Id: Ic5e1717603a815de8655188e118b1ce95c99d9c1
2020-03-03 13:20:21 -08:00
Adam Harwell
4a360bfda7 Allow AZ to override valid_vip_networks config
Different AZs may have access to different vip networks.

Change-Id: I7169b34d93bc8a265fc74fedcbba67e980285a7e
2020-02-25 01:30:56 +00:00
Michael Johnson
bb0efa2a5d Add docs warning for PING health monitors
This patch adds a warning box to the load balancer cookbook clarifying
that the health monitor type of 'PING' should only be used in specific
cases.
This was called out in release notes, but was not clear in the cookbook.

Change-Id: I6b95891bec82e01c44b288cbe9796b1f87a07c32
2020-02-12 08:36:30 -08:00
Gregory Thiemonge
e1751220bc Add UDP LBs to the basic cookbook
Add a section to the basic cookbook that explains how to setup a UDP
load balancer with UDP-CONNECT health monitor.

And fix typos

Change-Id: Ib67a5c9437e3190f640a953c30f791cb34690910
2020-02-12 11:10:01 +01:00
Zuul
af9edc30d7 Merge "Complete dropping py27 support goal" 2020-02-06 19:54:18 +00:00
Carlos Goncalves
106cfb7e1e Add listener allowed_cidrs to the feature matrix
Change-Id: I8c0fadbc47823d030dc232984988e47f86368410
2020-01-24 15:02:23 +00:00
Brian Haley
4af42f837f Complete dropping py27 support goal
This takes care of the last details for dropping py27
support by adding a proper min version of python in setup.cfg.

Change-Id: I693db277d802b2a54084cc1be11d8ce04ad9be2e
2020-01-16 11:32:03 -05:00
Carlos Goncalves
dc2dd711e6 Stop supporting CentOS 7 controllers and images
The diskimage-create.sh tool will now default to CentOS 8 when building
CentOS-based amphora images.

This patch also removes leftover references to support for Ubuntu Trusty
and Xenial.

Change-Id: I3aba59c8dd86aeeee28cc6a67af93697912fb55b
2020-01-08 17:59:09 +01:00
Zuul
5972d7b0fa Merge "Add install guide for Ubuntu" 2019-12-19 09:12:41 +00:00
Hidekazu Nakamura
26cbb93a9a Add install guide for Ubuntu
This patch adds install guide for Ubuntu.

Co-Authored-By: Ajay Kumar <ajay.k@india.nec.com>
Change-Id: I30a16837fca8f1ddea2799dd7bd35ba4ebd7dbe8
2019-12-18 01:24:25 +00:00
Sam Morrison
3cce347129 Support creating an LB in a specified AZ
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Change-Id: I55d6c1a0b3e6060d6dacc13ee67d87f0219ef7de
2019-12-16 16:25:25 -08:00
Michael Johnson
7b3395abf6 Update policy docs to reflect json format
The oslo policy tools are using json format as the default now.
Update our docs to reflect that.

Change-Id: If04a0cf87b00b617db900885019b0ff9fdd7521f
2019-12-10 09:53:06 -08:00
Brian Haley
bc94789dc9 Stop testing python 2
Since it's no longer supported past Train, lets stop
running the tests.

Change-Id: Ia30435b3bb19acd1d2f9fe217251c393d4f7480e
2019-12-02 12:08:19 -05:00
Zuul
58a21efdce Merge "Update flavor guide to be cut/paste friendly" 2019-11-19 06:27:55 +00:00
Zuul
2a60c13863 Merge "Fix controller worker graceful shutdown" 2019-11-18 17:53:52 +00:00
Michael Johnson
c389077721 Update flavor guide to be cut/paste friendly
Replacing a UUID with the name of the flavor profile to make
testing cut/paste easier.

Change-Id: Ia114766dab48016a63f8ede9870a02208ee8f3f7
2019-11-11 14:07:55 -08:00
Zuul
43577a6c04 Merge "Fix batch member update error on empty change list" 2019-10-28 13:34:13 +00:00
Gregory Thiemonge
215c4c2284 Fix controller worker graceful shutdown
Fix an issue that prevents graceful shutdown of controller workers.

cotyledon.Service.terminate function is by definition the graceful
termination function and doesn't have any 'graceful' optional boolean
argument (https://cotyledon.readthedocs.io/en/latest/api.html).

Because of this error, message_listener.wait() was never called in the
consumers' termination functions, so flows could be interrupted before
completion and could leave resources such as load balancer in a
PENDING_* provisioning state.

By default cotyledon.Service terminates the server after a timeout if
the worker could not shutdown itself gracefully. The default value
for the timeout is 300 seconds (set in devstack plugin) and can be
overriden using the graceful_shutdown_timeout setting in octavia.conf
The default value will be updated to a lower value when work on
persistant taskflow will be merged.

Story: 2006603
Task: 36770

Change-Id: I3f776bd018246897c9a889699a2d0ecbbfbb7098
2019-10-24 14:27:35 +02:00
Adam Harwell
01dfb8ffaf Fix batch member update error on empty change list
If the list of changes was empty, the worker would fail to fetch the
pool because it was retrieved implicitly from one of the changed
members. Pass it explicitly instead, and also short-circuit on NOOPs.

Story: 2006719
Task: 37090

Depends-On: https://review.opendev.org/#/c/688546/
Change-Id: I161a522abad4a2aa521ea46cb1065c5b05a2cd2e
2019-10-21 22:51:27 +00:00
Michael Johnson
076c3adc36 Add backend re-encryption to the LB cookbook
This patch adds a cookbook section for creating backend re-encryption
pools with optional client authentication.

Change-Id: If2a732d7b692f3cd6c422efbb1f71103ffecc4c9
2019-10-15 15:00:10 -07:00
Michael Johnson
4b4638e67d Add client authentication to the LB cookbook
This patch adds a cookbook section for creating client authentication
enabled listeners.

It also removes two references to granting access to secrets in
barbican that are no longer required.

Change-Id: Iaada1b5d519bfc57528aa15bae8c0ee2b55f0567
2019-10-15 13:45:55 -07:00
Zuul
e842d739a2 Merge "Update the load balancing cookbook" 2019-10-12 12:40:40 +00:00
Michael Johnson
9be2e4d4d2 Add the Amphora image building guide to the docs
This patch adds the Amphora image building guide from the
diskimage-create README.rst to the Administration documentation.
It also re-organizes the Adminstration guides to be broken down
by category as the old page was becoming a long list of guides.
(I like that kind of problem)
The diskimage-create README has a few formating corrections to make
it render better for the documentation.

Change-Id: Ice4071e1f872c8c0d0595427cff6f02ffbcf7968
2019-10-09 15:33:41 -07:00
Zuul
3ab36c8a15 Merge "Generate PDF documentation" 2019-09-20 07:05:15 +00:00
Michael Johnson
97058e925b Generate PDF documentation
This patch sets up PDF document generation for Octavia.

Story: 2006101
Task: 35146
Change-Id: I076335d08d5411fd629c3e8860f14980b0dbcb5a
2019-09-19 13:12:37 -07:00
Maciej Józefczyk
2eac7a7862 Add new algorithm SOURCE_IP_PORT
LB_ALGORITHM_SOURCE_IP_PORT is an algorithm used by OVN
Load Balancer [0]. This patch adds its support to the API.

[0] https://review.opendev.org/#/c/660369
Depends-On: I605f44f0f50219aa003df477de9bae4062f3c308

Change-Id: I436a6e553065d1755d465d20ad36f7ba2cbb8eba
Task: 35952
Story: 2006264
2019-09-13 15:19:15 +00:00
Carlos Goncalves
f3b48bc2f7 Add VIP access control list
This patch extends the listener API to include the new parameter
'allowed_cidrs'. This parameter is a list of IPv4 or IPv6 CIDRs. Leaving
this list unset defaults to the traditional behavior of allowing all
ingress traffic to the listener. Setting it will deny all traffic but
all CIDRs set in the 'allowed_cidrs' list.

Note that the API will validate that all CIDRs match the same IP version
of the VIP. This may change later as part of work to allow multiple VIPs
per LB (Change-Id Id7153dbf33b9616d7af685fcf13ad9a79793c06b).

Task: 26210
Story: 2003686

Change-Id: Id2b560df1cde9ce9403afbd593bbaa6cae5f06d6
2019-09-13 10:09:25 +02:00
Michael Johnson
78b1263237 Add long-running provider agent support
This patch adds support for long-running provider driver agents to
the Octavia driver-agent.
It will fork a process for all of the enabled provider driver
agents at startup.

Change-Id: Ib7042bcc48b1dd5b37b671dd5e64728b71ab9542
Story: 2006250
Task: 35863
2019-09-10 22:25:50 +00:00
Michael Johnson
09efc2a423 Add get method support to the driver-agent
This patch adds support for the octavia-lib to get objects by ID.

Change-Id: I98b399891488e5972ea4d332c06b55b34f20fb11
Story: 2005870
Task: 33680
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
2019-09-09 22:47:10 +00:00
Zuul
f785bb4d0c Merge "Fixed typos and bad markup style in maintenance guide" 2019-08-29 23:19:11 +00:00
Michael Johnson
9de37f3955 Update the load balancing cookbook
The "basic load balancing cookbook" still had a reference to
neutron-lbaas and an old DVR bug.
This patch corrects those issues.

Change-Id: I9299084402a0b09104e81f48e998b77a195745a0
Story: 2006470
Task: 36401
2019-08-28 12:32:57 -07:00