281 Commits

Author SHA1 Message Date
Michael Johnson
11b9d8ae76 Move system scoped secure-RBAC to separate file
This patch moves the system scope configuration in the policy override example files out to a separate override file. This way the new default roles can be enabled independently of system scoped tokens. This helps us align to the changes in the secure-RBAC spec[1].

[1] https://governance.openstack.org/tc/goals/selected/consistent-and-secure-rbac.html

Change-Id: I1b41780f3ca84ceca563d668ae8bb40011a60bf4
(cherry picked from commit 5ab6e3d30f6af23084782345845cad9bcdcd1953)
(cherry picked from commit c8dd836e9cc8f143c0be12bb34d1309ba1181c6e)
2022-07-19 18:31:08 +02:00
Ade Lee
58eac3d91f Update scripts to use fips allowed algorithms
Openssl genrsa is deprecated in favor of genpkey, and fails in FIPS mode.
Update the relevant calls to use genpkey instead.

Change-Id: I1aab9faa8afe845e445e620d1800785d2e19ad1e
(cherry picked from commit 36a642d9d0b95b6337558144450bbc7802784c23)
2022-02-04 20:05:21 +00:00
Zuul
e647f6d71a Merge "Edits for "Basic Load Balancing Cookbook"" 2021-07-02 20:17:39 +00:00
Brian Haley
2bcb344fb9 Update contributor documentation
There is a new IRC network in town.

Change-Id: I70fa2fbe5936847e701d2d8dfb6069e33de9c889
2021-06-16 12:36:30 -04:00
Greg Rakauskas
a26494bfcb Edits for "Basic Load Balancing Cookbook"
Several edits from early January 2021.
Tech review edits from two devs incorporated. Thanks!
Additional comments from Brian added. Thanks!

Co-Authored-By: Michael Johnson <johnsomor@gmail.com>
Change-Id: Iddcbe83dc4b3fec796ac94339f2839818890ab2f
2021-05-04 14:32:24 -04:00
Gregory Thiemonge
815a283823 Spare pool removal
Spare pool feature was deprecated in Victoria, we decided to remove it
during the Xena release cycle.

Change-Id: I830c6a4c49fa47105f788cf99a0f775e5dbdcaea
2021-04-28 09:10:09 +02:00
Greg Rakauskas
de352cac20 Edits for "Operator Maintenance Guide"
Several edits from early January 2021.

Co-Authored-By: Michael Johnson <johnsomor@gmail.com>
Change-Id: Ib2408ef82e12b50c112b224b6f02f0e00a441a86
2021-04-20 17:20:57 -04:00
Michael Johnson
6c54eab5b5 Make /healthcheck cache results
The healthcheck endpoint should cache results to reduce the potential load on the backend systems being tested.
This patch adds the caching and a configuration setting for the interval
between cache refreshes.

Change-Id: Ic97a991437144f3a220d9b96839cec5b63565f8c
Story: 2008203
Task: 40987
2021-03-15 21:43:43 +00:00
Ghanshyam Mann
c5e59b5e9e [goal] Deprecate the JSON formatted policy file
As per the community goal of migrating the policy file
the format from JSON to YAML[1], we need to do two things:

1. Change the default value of '[oslo_policy] policy_file''
config option from 'policy.json' to 'policy.yaml' with
upgrade checks.

2. Deprecate the JSON formatted policy file on the project side
via warning in doc and releasenotes.

[1]https://governance.openstack.org/tc/goals/selected/wallaby/migrate-policy-format-from-json-to-yaml.html

Change-Id: I8b78c7b640ab18ddfc809cb4603decc739d494d1
2021-03-10 22:09:35 -06:00
Zuul
41ff3ee3f1 Merge "Add support for scoped tokens and default roles" 2021-03-10 02:55:08 +00:00
Michael Johnson
a5f142c566 Add support for scoped tokens and default roles
This patch is the base patch to enable support for Keystone
scoped tokens[1] and default roles[2] in the Octavia API.

It strives to maintain backward compatibility and support for
Octavia Advanced RBAC roles.

[1] https://docs.openstack.org/keystone/latest/admin/tokens-overview.html#authorization-scopes
[2] https://docs.openstack.org/keystone/latest/admin/service-api-protection.html

Change-Id: I4443d4531dc97d14f8277024baa11ab43e87fb39
2021-03-08 19:33:35 +00:00
Carlos Goncalves
c93a76b9f3 Add HTTP/2 example to the load balancing cookbook
Change-Id: I55453a92ad8107bf19fc8dd20e5b5d90e2b6458b
2021-02-23 08:36:44 +00:00
Gregory Thiemonge
ce2e0d7425 Add test coverage for SCTP health checker script
Also removed a block of shell code in install-ubuntu.rst,
because the block triggered an error in the doc job and it was unused.

Change-Id: I41033e8cd9710a91b9502db11577b1f1cb85fa46
2021-02-19 08:34:46 +01:00
Gregory Thiemonge
2888f44e7b Add SCTP support in Amphora
Add SCTP support in the Amphora (with keepalived).
Add amphora-health-checker script for customized SCTP health checks
(INIT/INIT-ACK/ABORT).

Change-Id: I30997ae6cc6b8ec724f0e9dcfdfe49356b320ff4
Story: 2007884
Task: 40932
2021-01-29 13:58:39 +01:00
Carlos Goncalves
d2d5fc80f8 Add ALPN support for TLS-enabled pools
ALPN is a TLS extension for application-layer protocol negotiation
within the TLS handshake [1].

This patch extends the Pool API to include a new 'alpn_protocols'
parameter. With this parameter, users can set an ALPN preference list
(descending order of preference) to be advertised by load balancer to
members.

This patch also adds HTTP/2 over TLS support to TLS-enabled pools to the
Amphora provider driver, although default the pool ALPN protocol list
configuration setting has HTTP/2 disabled similarly to the default
listener ALPN protocol list value added in Victoria release.

[1] https://tools.ietf.org/html/rfc7301

Change-Id: I91924486bab22601c15c538c8a5282ad8bc54700
2021-01-28 14:42:48 +01:00
Zuul
009af5b0d8 Merge "Correct a typo in the document" 2020-10-29 09:09:50 +00:00
Zuul
f306ec7f46 Merge "Add requirements for jobboard drivers" 2020-09-10 22:02:29 +00:00
Gregory Thiemonge
639c11751e Add SCTP support in API
Add SCTP support in the API for listeners, pools, health-monitors
resources.

Story: 2007884
Task: 40255

Change-Id: I57a3c528a20943724bdcd36422c689f496068330
2020-09-10 11:23:04 +00:00
Zuul
49912974b7 Merge "Deprecate the Spares Pool feature for removal in X" 2020-09-09 00:44:19 +00:00
Adam Harwell
29a2ec7187 Deprecate the Spares Pool feature for removal in X
Use of the spares pool was originally recommended to increase provisioning
speed, but since Nova's server groups do not support adding existing VMs,
Octavia cannot support use of the spares pool with the Active-Standby
topology. Since this is our recommended topology for production deployments,
and speed is less essential in development/testing environments (the
only place we could recommend the use of Single topology), the overhead of
maintaining spares pool support exceeds its theoretical usefulness.

Change-Id: I7375e9758c7ae80e2370189117e8e63c79446490
2020-09-08 14:29:58 -07:00
Michael Johnson
7fe78c5943 Add proxy v2 protocol support
This patch adds support for the proxy protocol v2 on pools.

Depends-On: https://review.opendev.org/747296
Change-Id: Ic112c5e71ee9b6433b307fdf27059f217ba4136e
Story: 2005611
Task: 30858
2020-09-04 18:15:16 +00:00
Ann Taraday
460566e328 Add requirements for jobboard drivers
As Octavia allows to use RedisTaskFlowDriver or
ZookeeperTaskFlowDriver we should install python clients that
allows to work with redis and zookeeper backends.

Story: 2007892

Change-Id: I7312c8c1057618e909339aa7a4dfeb836f4b8f33
2020-09-03 08:02:01 +00:00
Michael Johnson
d5fe092a3e Update amphora v2 for the failover refactor
This patch will update the amphora v2 code for the failover refactor[1].

[1] https://review.opendev.org/705317

Change-Id: I43803d0b750e8ca4722ababe296f2725148da405
2020-09-03 11:48:14 +04:00
Carlos Goncalves
a5f0524fd0 Add ALPN support for TLS-terminated HTTPS LBs
ALPN is a TLS extension for application-layer protocol negotiation
within the TLS handshake [1].

This patch extends the Listener API to include a new 'alpn_protocols'
parameter. With this parameter, users can set an ALPN preference list
(descending order of preference).

Presently, the amphora provider driver is limited to http/1.0 and
http/1.1 ALPN protocol IDs. Support for "h2" (HTTP/2 over TLS) depends
on HAProxy 2.0 or newer.

[1] https://tools.ietf.org/html/rfc7301

Change-Id: If08a8169498cdfaa75440e8971ba0caff45ac4c4
2020-08-27 13:19:52 +02:00
suhaiming
03e6c73d5e Correct a typo in the document
Change-Id: Iaac4449b5c6757feb61b983ab5a1a1d92ccd7f3d
2020-08-27 08:25:24 +00:00
Carlos Goncalves
bb9b30be7e Allow amphorav2 to run without jobboard
This patch adds a new configuration setting to enable/disable jobboard
functionality in the amphorav2 provider. When disabled, the amphorav2
provider behaves similarly to the amphora v1 provider.

The default setting is jobboard disabled while jobboard remains an
experimental feature.

Change-Id: I063d832f5a049d7ae38378766200c7f82a35996d
2020-08-17 13:57:33 +00:00
suhaiming
81f06616c9 Correct a typo in the document
Change-Id: I72674a73767917df75d0576ded4e2aab56c9b074
2020-08-10 01:03:29 +00:00
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