We contentedly announce the release of: octavia 8.0.1: OpenStack Octavia Scalable Load Balancer as a Service This release is part of the wallaby 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. 8.0.1 ^^^^^ Deprecation Notes ***************** * The "[amphora_agent].agent_server_network_file" configuration option is now deprecated, the new Amphora network configuration tool introduced in Xena does not support a single configuration file. Bug Fixes ********* * Amphora network configuration for the VIP interface and the pool member interfaces are now applied with the amphora-interface tool. amphora-interface uses pyroute2 low-level functions to configure the interfaces instead of distribution-specific tools such as "network- scripts" or "/etc/network/interfaces" files. * Disable conntrack for TCP flows in the Amphora, it reduces memory usage for HAProxy-based listeners and prevents some kernel warnings about dropped packets. * Fix an issue with amphorav2 driver, a failover of an amphora created an amphora with an ERROR status. * Fixes loadbalancer creation failure when one of the listener port matches with the octavia generated peer ports and the allowed_cidr is explicitly set to 0.0.0.0/0 on the listener. This is due to creation of two security group rules with remote_ip_prefix as None and remote_ip_prefix as 0.0.0.0/0 which neutron rejects the second request with security group rule already exists. * Fix a serialization error when using host_routes in VIP subnets when persistence in the amphorav2 driver is enabled. * Fixed MAX_TIMEOUT for timeout_client_data, timeout_member_connect, timeout_member_data, timeout_tcp_inspect API listener. The value was reduced from 365 days to 24 days, which now does not exceed the value of the data type in DB. * 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. * Increase the limit value for nr_open and file-max in the amphora, the new value is based on what HAProxy 2.x is expecting from the system with the greatest maxconn value that Octavia can set. * Fix an issue with the provisioning status of a load balancer that was set to ERROR too early when an error occurred, making the load balancer mutable while the execution of the tasks for this resources haven't finished yet. * Fix an issue that could set the provisioning status of a load balancer to a PENDING_UPDATE state when an error occurred in the amphora failover flow. * Fix weighted round-robin for UDP and SCTP 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'. Changes in octavia 8.0.0..8.0.1 ------------------------------- 9b7791db Fix LB set in ERROR too early in MapLoadbalancerToAmphora f700bdbb Fix LB set in ERROR too early in the revert flow 77a87a7f Fix failover of az-specific loadbalancers 60b14c69 Fix management network selection when calculating deltas 19058596 Disable conntrack for TCP flows in the amphora e692201f Fix duplicate SG creation for listener peer port 4dbca788 Fix MAX_TIMEOUT value for listener c524eaf1 Fix PlugVIPAmphora revert function in amphorav2 de2f752e Add generic network interface management in the amphora f55376bf Update nr_open limit value in the amphora 6367a849 Fix using host_routes in VIP subnet with amphorav2 f16f72cc Add caps for pip-extra-reqs/pip-missing-reqs 9ba11825 Enable lo interface in the amphora-haproxy netns bd01b2b0 Fix race conditions between API and worker DB calls 20db85fd Fix comment for the ca_certificates_file opt adb454b2 Optimize CountPoolChildrenForQuota task in amphorav2 19504cef Fix amphora failover flow in amphorav2 driver a53e2eab Fix task_flow.max_workers with persistence in amphorav2 e06530e6 Fix jobboard_enabled setting in devstack 168f1a12 Fix devstack cleanup when using amphorav2 46979a0d Cap hacking and pylint d9603b3d Fix weighted round-robin about UDP and SCTP listener Diffstat (except docs and test files) ------------------------------------- devstack/plugin.sh | 12 +- .../75-amphora-agent-install | 3 + .../static/usr/local/bin/lvs-masquerade.sh | 27 + .../post-install.d/20-haproxy-tune-kernel | 4 +- etc/octavia.conf | 17 +- octavia/amphorae/backends/agent/agent_jinja_cfg.py | 2 - .../backends/agent/api_server/loadbalancer.py | 5 - .../amphorae/backends/agent/api_server/osutils.py | 512 +----------- octavia/amphorae/backends/agent/api_server/plug.py | 56 +- .../amphorae/backends/agent/api_server/server.py | 2 + .../api_server/templates/amphora-netns.systemd.j2 | 6 +- .../api_server/templates/plug_port_ethX.conf.j2 | 43 - .../api_server/templates/plug_vip_ethX.conf.j2 | 82 -- .../api_server/templates/rh_plug_port_ethX.conf.j2 | 47 -- .../rh_plug_port_eth_ifdown_local.conf.j2 | 19 - .../templates/rh_plug_port_eth_ifup_local.conf.j2 | 19 - .../api_server/templates/rh_plug_vip_ethX.conf.j2 | 60 -- .../templates/rh_plug_vip_ethX_alias.conf.j2 | 29 - .../api_server/templates/rh_route_ethX.conf.j2 | 29 - .../api_server/templates/rh_rule_ethX.conf.j2 | 17 - .../agent/api_server/templates/systemd.conf.j2 | 2 +- .../agent/api_server/templates/sysvinit.conf.j2 | 6 +- .../agent/api_server/templates/upstart.conf.j2 | 6 +- octavia/amphorae/backends/agent/api_server/util.py | 6 +- .../agent/templates/amphora_agent_conf.template | 3 - octavia/amphorae/backends/utils/interface.py | 237 ++++++ octavia/amphorae/backends/utils/interface_file.py | 218 +++++ octavia/cmd/interface.py | 90 ++ octavia/common/base_taskflow.py | 5 +- octavia/common/config.py | 9 +- octavia/common/constants.py | 41 +- octavia/common/exceptions.py | 5 + octavia/common/jinja/lvs/jinja_cfg.py | 2 +- .../worker/v1/tasks/amphora_driver_tasks.py | 8 - .../controller/worker/v1/tasks/database_tasks.py | 51 +- .../controller/worker/v1/tasks/network_tasks.py | 8 +- octavia/controller/worker/v2/controller_worker.py | 36 +- .../controller/worker/v2/flows/amphora_flows.py | 4 + .../worker/v2/tasks/amphora_driver_tasks.py | 16 +- .../controller/worker/v2/tasks/database_tasks.py | 96 +-- .../controller/worker/v2/tasks/network_tasks.py | 11 +- octavia/db/repositories.py | 10 + .../drivers/neutron/allowed_address_pairs.py | 17 +- .../backend/agent/api_server/test_server.py | 894 ++++++++++---------- .../backends/agent/api_server/test_osutils.py | 432 ++-------- .../backends/agent/api_server/test_plug.py | 139 ---- .../backends/agent/api_server/test_util.py | 2 +- .../backends/agent/test_agent_jinja_cfg.py | 8 - .../unit/amphorae/backends/utils/test_interface.py | 902 +++++++++++++++++++++ .../amphorae/backends/utils/test_interface_file.py | 583 +++++++++++++ .../sample_configs/sample_configs_combined.py | 8 +- .../worker/v1/tasks/test_amphora_driver_tasks.py | 37 +- .../worker/v1/tasks/test_database_tasks.py | 110 +-- .../worker/v2/flows/test_amphora_flows.py | 6 +- .../worker/v2/tasks/test_amphora_driver_tasks.py | 42 +- .../worker/v2/tasks/test_database_tasks.py | 125 +-- .../worker/v2/tasks/test_database_tasks_quota.py | 36 +- .../worker/v2/tasks/test_network_tasks.py | 18 +- .../controller/worker/v2/test_controller_worker.py | 24 +- .../drivers/neutron/test_allowed_address_pairs.py | 30 + ...work-interface-management-d77bc9905ed997f6.yaml | 13 + ...disable-conntrack-for-tcp-01ef6948d99353c2.yaml | 6 + ...mphora-failover-amphorav2-b19a76ccfdc75245.yaml | 5 + ...fix-duplicate-sg-creation-0c502a5d2d8c276d.yaml | 9 + ...amphorav2-and-persistence-54b99d651a4ee9c4.yaml | 5 + .../fix-listener-MAX_TIMEOUT-4c4fdf804a96c34b.yaml | 7 + ...o-interface-amphora-netns-90fb9934026e1485.yaml | 8 + .../fix-nr_open-limit-value-7f475c3e301a608d.yaml | 6 + ...isioning-status-on-errors-7f3736ef6e94d453.yaml | 9 + ...udp-and-sctp-listener-wrr-50de9dc0774a8ea1.yaml | 6 + setup.cfg | 1 + test-requirements.txt | 4 +- tox.ini | 18 +- 79 files changed, 3248 insertions(+), 2429 deletions(-) Requirements updates -------------------- diff --git a/test-requirements.txt b/test-requirements.txt index a4e7a9ba..d1dd6b6d 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 @@ -11 +11 @@ oslotest>=3.2.0 # Apache-2.0 -pylint>=2.5.3 # GPLv2 +pylint>=2.5.3,<2.8 # GPLv2