[release-announce] octavia 6.1.0 (ussuri)

no-reply at openstack.org no-reply at openstack.org
Mon Oct 19 16:47:55 UTC 2020


We are excited to announce the release of:

octavia 6.1.0: OpenStack Octavia Scalable Load Balancer as a Service

This release is part of the ussuri stable release series.

The source is available from:

    https://opendev.org/openstack/octavia

Download the package from:

    https://pypi.org/project/octavia

Please report issues through:

    https://storyboard.openstack.org/#!/project/908

For more details, please see below.

6.1.0
^^^^^


New Features
************

* Add a new configuration option to define the default
  connection_limit for new listeners that use the Amphora provider.
  The option is [haproxy_amphora].default_connection_limit and its
  default value is 50,000. This value is used when creating or setting
  a listener with -1 as connection_limit parameter, or when unsetting
  connection_limit parameter.


Upgrade Notes
*************

* The failover improvements do not require an updated amphora image,
  but updating existing amphora will minimize the failover outage time
  for standalone amphora on subsequent failovers.


Security Issues
***************

* If you are using the admin_or_owner-policy.yaml policy override
  file you should upgrade your API processes to include the unscoped
  token fix. The default policies are not affected by this issue.


Bug Fixes
*********

* Fixed an issue with failing over an amphora if the pair amphora in
  an active/standby pair had a missing VRRP port in neutron.

* Fixed an issue where setting of SNI containers were not being
  applied on listener update API calls.

* Fixed an Octavia API validation on listener update where SNI
  containers could be set on non-TERMINATED_HTTPS listeners.

* Fixed an issue where some columns could not be used for sort keys
  in API list calls.

* Fix an issue when the barbican service enable TLS, we create the
  listerner failed.

* Fixed an issue where amphora load balancers fail to create when
  Nova anti-affinity is enabled and topology is SINGLE.

* Fixed an issue where listener "insert_headers" parameter was
  accepted for protocols that do not support header insertion.

* Fixed an issue where UDP only load balancers would not bring up
  the VIP address.

* Fixes an issue when using the admin_or_owner-policy.yaml policy
  override file and unscoped tokens.

* With haproxy 1.8.x releases, haproxy consumes much more memory in
  the amphorae because of pre-allocated data structures. This amount
  of memory depends on the maxconn parameters in its configuration
  file (which is related to the connection_limit parameter in the
  Octavia API). In the Amphora provider, the default connection_limit
  value -1 is now converted to a maxconn of 50,000. It was previously
  1,000,000 but that value triggered some memory allocation issues
  when quickly performing multiple configuration updates in a load
  balancer.

* Significantly improved the reliability and performance of amphora
  and load balancer failovers. This is especially true when the Nova
  service is experiencing failures.

Changes in octavia 6.0.1..6.1.0
-------------------------------

879b08d3 Ignore DELETED amphorae when performing certificate rotation
8de7e1ec Fixes API list handling of unscoped tokens
2dbd8f69 Fix amphora failover when VRRP port is missing
d2fb5e0d Set Grub timeout to 0 for fast boot times
6bc9c4d8 Update amphora v2 for the failover refactor
e8282012 Fix memory consumption issues with default connection_limit
8ae3f857 Remove haproxy_check_script for UDP-only LBs
43db3477 Update grenade job to run one smoke test
e5cc2493 Fix missing dependency in amphora create flow
9b826fca Fix missing params in amphora base and noop driver
1e2aec16 Add missing reload method in amphora noop driver
bfa44b75 Refactor the failover flows
39eb3286 Fix API sort key for complex columns
5e377fa8 Pin pylint for stable branches
17c22145 Increase the devstack secuirty group rules quota
f923ef09 Switch back to using git for the agent ref
19557664 Set amphora-agent build-only packages
621acb42 Fix accepting 'insert_headers' when unsupported
c3f61aec Fix haproxy user flow log format substitution
274393fd Prioritize policy validation
7c6fef82 Fix listener update with SNI certificates
fc6e0b0a Migrate grenade job to native Zuul v3
12e30394 add the verify for the session
b4bc92eb Fix neutron subnet lookup ignoring endpoint_type
209726d9 Fix netcat option in udp_check.sh for CentOS/RHEL
bd2987ba Fix batch member create for v1 amphora driver


Diffstat (except docs and test files)
-------------------------------------

.gitignore                                         |    1 +
api-ref/source/parameters.yaml                     |    6 +-
devstack/plugin.sh                                 |    5 +-
devstack/upgrade/settings                          |    6 -
diskimage-create/diskimage-create.sh               |    3 +
.../75-amphora-agent-install                       |    3 +
elements/amphora-agent/package-installs.yaml       |    8 +-
.../post-install.d/90-remove-build-deps            |    5 +-
etc/octavia.conf                                   |   41 +
.../backends/agent/api_server/amphora_info.py      |   74 +-
.../backends/agent/api_server/keepalived.py        |    4 +
.../backends/agent/api_server/keepalivedlvs.py     |    6 +-
.../backends/agent/api_server/loadbalancer.py      |   35 +-
octavia/amphorae/backends/agent/api_server/util.py |   79 +-
.../amphorae/backends/utils/ip_advertisement.py    |  183 ++++
.../amphorae/backends/utils/network_namespace.py   |   50 +
octavia/amphorae/backends/utils/network_utils.py   |   83 ++
octavia/amphorae/backends/utils/udp_check.sh       |   14 +-
octavia/amphorae/drivers/driver_base.py            |   67 +-
octavia/amphorae/drivers/haproxy/exceptions.py     |    7 +-
.../amphorae/drivers/haproxy/rest_api_driver.py    |   60 +-
.../drivers/keepalived/vrrp_rest_driver.py         |   79 +-
octavia/amphorae/drivers/noop_driver/driver.py     |   42 +-
octavia/api/common/pagination.py                   |   15 +-
octavia/api/common/types.py                        |    8 +
octavia/api/drivers/amphora_driver/v1/driver.py    |    7 +-
octavia/api/drivers/amphora_driver/v2/driver.py    |    7 +-
octavia/api/drivers/utils.py                       |   35 +-
octavia/api/v2/controllers/base.py                 |    4 +
octavia/api/v2/controllers/health_monitor.py       |   16 +-
octavia/api/v2/controllers/l7policy.py             |   27 +-
octavia/api/v2/controllers/l7rule.py               |   31 +-
octavia/api/v2/controllers/listener.py             |   11 +-
octavia/api/v2/controllers/load_balancer.py        |   56 +-
octavia/api/v2/controllers/member.py               |   14 +-
octavia/api/v2/controllers/pool.py                 |   33 +-
octavia/api/v2/types/listener.py                   |    1 +
octavia/certificates/common/auth/barbican_acl.py   |    4 +-
octavia/common/clients.py                          |    4 +-
octavia/common/config.py                           |   54 +-
octavia/common/constants.py                        |   62 +-
octavia/common/data_models.py                      |    8 +
octavia/common/exceptions.py                       |   20 +-
.../jinja/haproxy/combined_listeners/jinja_cfg.py  |   11 +-
.../jinja/haproxy/split_listeners/jinja_cfg.py     |    4 +-
octavia/common/utils.py                            |   23 +
octavia/compute/drivers/noop_driver/driver.py      |    8 +-
octavia/compute/drivers/nova_driver.py             |   40 +-
octavia/controller/worker/v1/controller_worker.py  |  449 +++++----
.../controller/worker/v1/flows/amphora_flows.py    |  766 ++++++++-------
.../worker/v1/flows/load_balancer_flows.py         |  450 ++++++++-
.../worker/v1/tasks/amphora_driver_tasks.py        |  220 +++--
.../controller/worker/v1/tasks/compute_tasks.py    |   84 +-
.../controller/worker/v1/tasks/database_tasks.py   |   51 +-
.../controller/worker/v1/tasks/network_tasks.py    |  219 ++++-
octavia/controller/worker/v1/tasks/retry_tasks.py  |   74 ++
octavia/controller/worker/v2/controller_worker.py  |  423 +++++---
.../controller/worker/v2/flows/amphora_flows.py    |  786 ++++++++-------
octavia/controller/worker/v2/flows/flow_utils.py   |   47 +-
.../controller/worker/v2/flows/listener_flows.py   |   14 +-
.../worker/v2/flows/load_balancer_flows.py         |  503 ++++++++--
octavia/controller/worker/v2/flows/pool_flows.py   |    9 +-
.../worker/v2/tasks/amphora_driver_tasks.py        |  267 ++++--
.../controller/worker/v2/tasks/compute_tasks.py    |   92 +-
.../controller/worker/v2/tasks/database_tasks.py   |  124 ++-
.../controller/worker/v2/tasks/network_tasks.py    |  254 +++--
octavia/controller/worker/v2/tasks/retry_tasks.py  |   73 ++
octavia/db/models.py                               |    4 +-
octavia/db/repositories.py                         |   25 +-
octavia/network/base.py                            |   52 +
octavia/network/data_models.py                     |   16 +-
.../drivers/neutron/allowed_address_pairs.py       |  289 ++++--
octavia/network/drivers/neutron/base.py            |   17 +-
octavia/network/drivers/neutron/utils.py           |   45 +-
octavia/network/drivers/noop_driver/driver.py      |   69 ++
octavia/opts.py                                    |    1 +
.../backend/agent/api_server/test_keepalivedlvs.py |   12 +-
.../backend/agent/api_server/test_server.py        |   22 +-
.../agent/api_server/test_haproxy_compatibility.py |    6 +-
.../backends/agent/api_server/test_loadbalancer.py |   48 +-
.../backends/agent/api_server/test_util.py         |  128 +++
.../backends/utils/test_ip_advertisement.py        |  212 ++++
.../backends/utils/test_network_namespace.py       |  116 +++
.../amphorae/backends/utils/test_network_utils.py  |  140 +++
.../amphorae/drivers/haproxy/test_exceptions.py    |   52 +
.../drivers/haproxy/test_rest_api_driver_0_5.py    |   34 +-
.../drivers/haproxy/test_rest_api_driver_1_0.py    |   34 +-
.../drivers/haproxy/test_rest_api_driver_common.py |   83 ++
.../drivers/keepalived/test_vrrp_rest_driver.py    |   48 +-
.../test_noop_amphoraloadbalancer_driver.py        |   19 +-
.../haproxy/combined_listeners/test_jinja_cfg.py   |  137 ++-
.../sample_configs/sample_configs_combined.py      |   20 +-
.../worker/v1/flows/test_amphora_flows.py          |  213 +++--
.../worker/v1/flows/test_load_balancer_flows.py    |  236 ++++-
.../worker/v1/tasks/test_amphora_driver_tasks.py   |  286 ++++--
.../worker/v1/tasks/test_compute_tasks.py          |   70 +-
.../worker/v1/tasks/test_database_tasks.py         |   34 +-
.../worker/v1/tasks/test_network_tasks.py          |  416 +++++++-
.../controller/worker/v1/tasks/test_retry_tasks.py |   47 +
.../controller/worker/v1/test_controller_worker.py |  899 +++++++++++++----
.../worker/v2/flows/test_amphora_flows.py          |  167 ++--
.../worker/v2/flows/test_listener_flows.py         |    8 +-
.../worker/v2/flows/test_load_balancer_flows.py    |  274 +++++-
.../controller/worker/v2/flows/test_pool_flows.py  |    3 +-
.../worker/v2/tasks/test_amphora_driver_tasks.py   |  313 ++++--
.../worker/v2/tasks/test_compute_tasks.py          |   67 +-
.../worker/v2/tasks/test_database_tasks.py         |   37 +-
.../worker/v2/tasks/test_network_tasks.py          |  436 ++++++++-
.../controller/worker/v2/tasks/test_retry_tasks.py |   47 +
.../controller/worker/v2/test_controller_worker.py | 1011 +++++++++++++++-----
.../drivers/neutron/test_allowed_address_pairs.py  |  478 ++++++++-
.../unit/network/drivers/neutron/test_utils.py     |    1 +
.../network/drivers/test_network_noop_driver.py    |   56 ++
.../legacy/grenade-devstack-octavia/post.yaml      |   19 -
playbooks/legacy/grenade-devstack-octavia/run.yaml |   62 --
...ailover-missing-vrrp-port-9b5f13b9951b7edb.yaml |    5 +
...ner-update-sni-containers-6595c52e2de1f621.yaml |    8 +
.../notes/fix-api-sort-key-337f342d5cdce432.yaml   |    5 +
...ix-barbican-client-verfiy-689be1b9389bd1d8.yaml |    5 +
...amphora-create-dependency-a954ded0d260d462.yaml |    5 +
...header-insertion-mismatch-e3aeb5f5fee0348b.yaml |    5 +
.../notes/fix-udp-only-lbs-c4ca42106fc1e2bb.yaml   |    5 +
.../get-all-unscoped-token-61da95856bc662e0.yaml   |   10 +
...ction_limit-config-option-3ed9f0ed6ec2b514.yaml |   18 +
.../refactor_failover_flow-9efcd854240f71ad.yaml   |   11 +
test-requirements.txt                              |    2 +-
tools/create_flow_docs.py                          |   45 +-
tools/flow-list-v2.txt                             |   32 +
tools/flow-list.txt                                |    3 +-
zuul.d/jobs.yaml                                   |   69 +-
zuul.d/projects.yaml                               |   15 +-
149 files changed, 11196 insertions(+), 3022 deletions(-)


Requirements updates
--------------------

diff --git a/test-requirements.txt b/test-requirements.txt
index 7d827764..6fc42870 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -11 +11 @@ oslotest>=3.2.0 # Apache-2.0
-pylint>=2.2.0 # GPLv2
+pylint>=2.2.0,<=2.5.3 # GPLv2






More information about the Release-announce mailing list