We high-spiritedly announce the release of: octavia 6.2.1: 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.2.1 ^^^^^ Bug Fixes * Fixed an issue with batch member updates, that don't have any changes, not properly rolling back the update. * Fixed an issue that an amphorav2 LB cannot be reached after loadbalancer failover. The LB security group was not set in the amphora port. * Fixes an issue where provider drivers may not decrement the load balancer objects quota on delete. * Fix an issue with the rsyslog configuration file in the Amphora when the log offloading feature and the local log storage feature are both disabled. * Some IPv6 UDP members were incorrectly marked in ERROR status, because of a formatting issue while generating the health message in the amphora. * Fixed an issue with the "lo" interface in the "amphora-haproxy" network namespace. The "lo" interface was down and prevented haproxy to communicate with other haproxy processes (for persistent stick tables) on configuration change. It delayed old haproxy worker cleanup and increased the memory consumption usage after reloading the configuration. * Fix load balancers that use customized host_routes in the VIP or the member subnets in amphorav2. * Fix weighted round-robin for UDP listeners with keepalived and lvs. The algorithm must be specified as 'wrr' in order for weighted round-robin to work correctly, but was being set to 'rr'. * Fixed the healthcheck endpoint always querying the backends by caching results for a configurable time. The default is five seconds. * Fix a bug that allowed a user to create a load balancer on a "vip_subnet_id" that belongs to another user using the subnet UUID. Changes in octavia 6.2.0..6.2.1 ------------------------------- e84d9478 Enable lo interface in the amphora-haproxy netns de602782 Add amphora_id in store params for failover_amphora 45b31c18 Fix comment for the ca_certificates_file opt 4cfbf666 Optimize CountPoolChildrenForQuota task in amphorav2 d5dc2b26 Fix task_flow.max_workers with persistence in amphorav2 bae6808f Fix rsyslog configuration when disabling logs 8829f0fb Fix devstack cleanup when using amphorav2 19619ce8 Validate user access to vip_subnet_id when creating a LB c7b4b875 Fix using subnets with host_routes in amphorav2 driver 170be0dd Make /healthcheck cache results 5b6d25ca Explicitely set nodeset to Bionic-based 46b9ce7c Cap hacking 7367311c Fix empty Batch Member Update to unlock objects a8266a9e Fix weighted round-robin about UDP listener 7ded0e47 Fix LB failover for amphorav2: set security group 4b8de86c Fix incorrect ERROR status with IPv6 UDP members dcce548e Fix provider driver quota handling Diffstat (except docs and test files) ------------------------------------- devstack/plugin.sh | 10 ++- etc/octavia.conf | 19 ++++- .../amphorae/backends/agent/api_server/osutils.py | 2 +- .../api_server/templates/amphora-netns.systemd.j2 | 4 + .../amphorae/backends/utils/keepalivedlvs_query.py | 13 ++-- octavia/api/drivers/amphora_driver/v1/driver.py | 11 +-- octavia/api/drivers/amphora_driver/v2/driver.py | 11 +-- octavia/api/drivers/driver_agent/driver_updater.py | 43 +++++++++-- octavia/api/healthcheck/healthcheck_plugins.py | 23 +++++- octavia/api/v2/controllers/load_balancer.py | 2 +- octavia/api/v2/controllers/member.py | 6 ++ octavia/common/base_taskflow.py | 5 +- octavia/common/config.py | 6 +- .../logging/templates/10-rsyslog.conf.template | 5 ++ octavia/common/jinja/lvs/jinja_cfg.py | 2 +- octavia/controller/worker/v2/controller_worker.py | 27 ++++++- .../worker/v2/tasks/amphora_driver_tasks.py | 22 +++++- .../controller/worker/v2/tasks/database_tasks.py | 10 +-- .../controller/worker/v2/tasks/network_tasks.py | 2 +- octavia/db/repositories.py | 10 +++ .../backend/agent/api_server/test_keepalivedlvs.py | 2 +- .../backends/utils/test_keepalivedlvs_query.py | 29 ++++++- .../amphora_driver/v1/test_amphora_driver.py | 11 ++- .../amphora_driver/v2/test_amphora_driver.py | 11 ++- .../drivers/driver_agent/test_driver_updater.py | 71 ++++++++++++++++- .../common/jinja/logging/test_logging_jinja_cfg.py | 38 ++++++---- .../unit/common/jinja/lvs/test_lvs_jinja_cfg.py | 16 ++-- .../sample_configs/sample_configs_combined.py | 4 +- .../common/sample_configs/sample_configs_split.py | 2 +- .../worker/v1/tasks/test_network_tasks.py | 5 +- .../worker/v2/tasks/test_amphora_driver_tasks.py | 88 +++++++++++++++++++++- .../worker/v2/tasks/test_database_tasks_quota.py | 36 ++------- .../worker/v2/tasks/test_network_tasks.py | 5 +- .../controller/worker/v2/test_controller_worker.py | 21 ++++-- ...batch-member-update-issue-09b76787553e7752.yaml | 5 ++ ...phorav2-failover-secgroup-c793de5e00b32653.yaml | 5 ++ ...ver-agent-decrement-quota-27486d9fa0bdeb89.yaml | 5 ++ ...x-error-in-rsyslog-config-a316a7856e1a847a.yaml | 5 ++ ...x-ipv6-udp-health-message-ed94b35bbea396ec.yaml | 5 ++ ...o-interface-amphora-netns-90fb9934026e1485.yaml | 8 ++ ...net-host_routes-amphorav2-3c079c5a3bfa1b3d.yaml | 5 ++ .../fix-udp-listener-wrr-50de9dc0774a8ea1.yaml | 6 ++ .../notes/healthcheck-cache-641f0a64e6f5856c.yaml | 5 ++ ...e-access-to-vip_subnet_id-48fc92b45529cafd.yaml | 5 ++ test-requirements.txt | 2 +- zuul.d/projects.yaml | 27 +++++-- 51 files changed, 598 insertions(+), 139 deletions(-) Requirements updates -------------------- diff --git a/test-requirements.txt b/test-requirements.txt index 6fc42870..9f5123d0 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4 +4 @@ -hacking>=3.0 # Apache-2.0 +hacking>=3.0,<4.1.0 # Apache-2.0