We are amped to announce the release of: octavia 13.0.0: OpenStack Octavia Scalable Load Balancer as a Service This release is part of the bobcat 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. Changes in octavia 12.0.0.0rc1..13.0.0 -------------------------------------- d7bba6c5 Move octavia grenade job on jammy c9075475 Add support for HTTP Strict Transport Security ad95a583 Remove sqlalchemy-tips from the generic tips template 072c10fe Move docstring to the right place in database_tasks 2643a766 Fix the issue of losing nf_conntrace* values after a reboot. 9ba449c9 Update the bug tracker links in the doc (switch to Launchpad) fd587500 Remove unused wait_for_port_detach code ff80e454 Remove blockdiag from Octavia 81d7d983 Add job to test with SQLAlchemy master (2.x) 390ba396 Fix pool_timeout for tests with sqlite file backend e59a555b Fix sqlalchemy declarative_base import dac994e3 [sqlalchemy2] Disabling 'create_engine.convert_unicode' filter b15a6e8c [sqlalchemy2] subtransactions & autocommit removal 58d0ede1 Fix UDP pool's member status in LB with additional VIPs 72f59a34 Fix error in agent-agent with empty UDP pools in IPv4+IPv6 LBs 8ccc0d01 Don't update the management port when calculating delta 2aac2a8d Fix IPv6 session persistence failed a9359ab7 Imported Translations from Zanata 133e7478 Fix test_driver_agent tests with newer octavia-lib b3bf1779 Fix incorrect removal of IP rules in the amphora 21682f70 Fix haproxy global maxconn with disabled listeners 294bd406 Fix TCP HMs on UDP pools with SELinux 68b088ed Fix health message format for v2 and v3 in unit tests e3a81dcb Mock access to tuned active_profile file in unittests 72139801 Splitting scenario jobs in the gate pipeline 1278660e Imported Translations from Zanata c4dd87f9 Avoid interface name collisions in the amphora 80d316f5 Splitting scenario jobs in 2 e63e149b [sqlalchemy2] Added missing relationships in models 022b4077 [sqlalchemy2] Removal of cascade backrefs 77b6b092 [sqlaclhemy2] Don't pass strings to session.execute 134d4728 [sqlalchemy2] Using non-integer/slice indices on Row is deprecated 49d066cc [sqlalchemy2] Use subquery to select from a query c412058f [sqlalchemy2] positional arguments for case 0c02ba02 [sqlalchemy2] use attribute to indicate relationship e0bff29e [sqlalchemy2] move to Session.get() f21fee9a [sqlalchemy2] Turn on RemovedIn20Warnings in tests 6e7ce65c Fix pep8 error e20ceebc Fix hm operating status to ONLINE in single lb call 3e6fd13b Remove python-neutronclient 18cd1f34 Send IP advertisements when plugging a new member subnet cd1646ce Fix octavia-amphora-image-build periodic job 25fbd4e8 Update doc for the OVN provider 1771f6ac Fix octavia-status with amphorav2 6dbe7b8d Update amphorav2 jobs 3b4ef33f Merge amphorav2 provider doc into amphora doc 324c3528 Remove specific handling of amphorav1 parameters 6c0515c9 amphorav1 removal 9284b740 Change Pydevd settrace configuration 84a4c071 Fix quota error messages 5eb234b8 Add octavia-grenade-slurp CI job f48146b1 Imported Translations from Zanata afb4d151 Fixing octavia-grenade job and disabling pylint warnings 2e4ee9c6 Fix ORM caching for with_for_update calls a460698c Fix octavia to accept [ipv6]:port ba92aeb9 Fix failover when the last listener is deleted 8c6f1a0a Fix focal amphora image build 5fff5676 Fix create_server_group in compute noop 70b1aeac Fix devstack policy overrides 3a157c02 Fix pool creation with single LB create call 764cbf01 Purge some dev tools from the amphora image 5ed6f375 Workaround an openstacksdk bug 47de8fa3 Fix upgrade check not working 5d5dcb20 Imported Translations from Zanata e0f67604 Update master for stable/2023.1 60f579b6 allowed_cidr validation for additional_vips 32988c0a Fix example policy file system-reader role Diffstat (except docs and test files) ------------------------------------- CONTRIBUTING.rst | 4 +- README.rst | 2 +- api-ref/source/conf.py | 3 +- api-ref/source/parameters.yaml | 56 + api-ref/source/v2/examples/listener-create-curl | 2 +- .../v2/examples/listener-create-request.json | 5 +- .../v2/examples/listener-create-response.json | 13 +- .../source/v2/examples/listener-show-response.json | 13 +- api-ref/source/v2/examples/listener-update-curl | 2 +- .../v2/examples/listener-update-request.json | 17 +- .../v2/examples/listener-update-response.json | 13 +- .../v2/examples/listeners-list-response.json | 17 +- api-ref/source/v2/listener.inc | 18 + devstack/plugin.sh | 15 + devstack/upgrade/shutdown.sh | 2 + .../feature-matrix-healthmonitor.ini | 20 +- .../feature-matrix-l7policy.ini | 2 +- .../feature-matrix-l7rule.ini | 2 +- .../feature-classification/feature-matrix-lb.ini | 2 +- .../feature-matrix-listener.ini | 2 +- .../feature-matrix-member.ini | 2 +- .../feature-classification/feature-matrix-pool.ini | 2 +- elements/amphora-agent/package-installs.yaml | 25 + .../post-install.d/50-selinux-policies | 3 + etc/policy/keystone_default_roles-policy.yaml | 2 +- .../amphorae/backends/agent/api_server/osutils.py | 1 + octavia/amphorae/backends/agent/api_server/plug.py | 28 +- .../api_server/templates/amphora-netns.systemd.j2 | 4 +- octavia/amphorae/backends/agent/api_server/util.py | 21 + .../backends/health_daemon/health_daemon.py | 12 +- .../backends/health_daemon/health_sender.py | 2 + octavia/amphorae/backends/utils/interface.py | 20 +- octavia/amphorae/backends/utils/interface_file.py | 9 +- .../amphorae/backends/utils/keepalivedlvs_query.py | 17 +- octavia/amphorae/drivers/driver_base.py | 3 +- .../amphorae/drivers/haproxy/rest_api_driver.py | 36 +- octavia/amphorae/drivers/health/heartbeat_udp.py | 58 +- .../amphorae/drivers/keepalived/jinja/jinja_cfg.py | 15 +- octavia/amphorae/drivers/noop_driver/driver.py | 8 +- octavia/api/common/hooks.py | 8 +- octavia/api/common/pagination.py | 8 +- octavia/api/drivers/amphora_driver/v1/__init__.py | 11 - octavia/api/drivers/amphora_driver/v1/driver.py | 547 ---- octavia/api/drivers/amphora_driver/v2/driver.py | 16 +- octavia/api/drivers/driver_agent/driver_get.py | 36 +- octavia/api/drivers/driver_agent/driver_updater.py | 12 +- octavia/api/drivers/utils.py | 6 +- octavia/api/healthcheck/healthcheck_plugins.py | 6 +- octavia/api/root_controller.py | 5 +- octavia/api/v2/controllers/amphora.py | 73 +- .../v2/controllers/availability_zone_profiles.py | 76 +- octavia/api/v2/controllers/availability_zones.py | 40 +- octavia/api/v2/controllers/flavor_profiles.py | 65 +- octavia/api/v2/controllers/flavors.py | 34 +- octavia/api/v2/controllers/health_monitor.py | 77 +- octavia/api/v2/controllers/l7policy.py | 92 +- octavia/api/v2/controllers/l7rule.py | 123 +- octavia/api/v2/controllers/listener.py | 149 +- octavia/api/v2/controllers/load_balancer.py | 86 +- octavia/api/v2/controllers/member.py | 115 +- octavia/api/v2/controllers/pool.py | 97 +- octavia/api/v2/controllers/quotas.py | 8 +- octavia/api/v2/types/listener.py | 15 + octavia/cmd/octavia_worker.py | 3 - octavia/cmd/status.py | 5 +- octavia/common/clients.py | 70 +- octavia/common/config.py | 86 +- octavia/common/constants.py | 5 +- octavia/common/data_models.py | 8 +- .../jinja/haproxy/combined_listeners/jinja_cfg.py | 13 +- .../haproxy/combined_listeners/templates/macros.j2 | 7 +- octavia/common/jinja/lvs/jinja_cfg.py | 6 +- octavia/common/keystone.py | 63 +- octavia/common/validate.py | 35 + octavia/compute/drivers/noop_driver/driver.py | 6 + octavia/controller/healthmanager/health_manager.py | 9 +- octavia/controller/housekeeping/house_keeping.py | 73 +- octavia/controller/queue/v1/__init__.py | 11 - octavia/controller/queue/v1/consumer.py | 64 - octavia/controller/queue/v1/endpoints.py | 160 -- octavia/controller/worker/amphora_rate_limit.py | 9 +- octavia/controller/worker/task_utils.py | 98 +- octavia/controller/worker/v1/__init__.py | 11 - octavia/controller/worker/v1/controller_worker.py | 1157 -------- octavia/controller/worker/v1/flows/__init__.py | 11 - .../controller/worker/v1/flows/amphora_flows.py | 610 ----- .../worker/v1/flows/health_monitor_flows.py | 105 - .../controller/worker/v1/flows/l7policy_flows.py | 94 - octavia/controller/worker/v1/flows/l7rule_flows.py | 100 - .../controller/worker/v1/flows/listener_flows.py | 128 - .../worker/v1/flows/load_balancer_flows.py | 692 ----- octavia/controller/worker/v1/flows/member_flows.py | 230 -- octavia/controller/worker/v1/flows/pool_flows.py | 127 - octavia/controller/worker/v1/tasks/__init__.py | 11 - .../worker/v1/tasks/amphora_driver_tasks.py | 453 ---- octavia/controller/worker/v1/tasks/cert_task.py | 51 - .../controller/worker/v1/tasks/compute_tasks.py | 335 --- .../controller/worker/v1/tasks/database_tasks.py | 2756 -------------------- .../controller/worker/v1/tasks/lifecycle_tasks.py | 173 -- octavia/controller/worker/v1/tasks/model_tasks.py | 41 - .../controller/worker/v1/tasks/network_tasks.py | 970 ------- octavia/controller/worker/v1/tasks/retry_tasks.py | 74 - octavia/controller/worker/v2/controller_worker.py | 263 +- .../controller/worker/v2/flows/listener_flows.py | 3 + .../worker/v2/flows/load_balancer_flows.py | 23 +- .../worker/v2/tasks/amphora_driver_tasks.py | 243 +- .../controller/worker/v2/tasks/compute_tasks.py | 6 +- .../controller/worker/v2/tasks/database_tasks.py | 942 ++++--- .../controller/worker/v2/tasks/network_tasks.py | 198 +- octavia/db/api.py | 49 +- octavia/db/base_models.py | 4 +- octavia/db/healthcheck.py | 3 +- ...52d2d32e_add_http_strict_transport_security_.py | 42 + octavia/db/models.py | 14 +- octavia/db/prepare.py | 2 + octavia/db/repositories.py | 944 ++++--- octavia/hacking/checks.py | 2 +- octavia/network/base.py | 14 - .../drivers/neutron/allowed_address_pairs.py | 227 +- octavia/network/drivers/neutron/base.py | 142 +- octavia/network/drivers/neutron/utils.py | 154 +- octavia/network/drivers/noop_driver/driver.py | 7 - octavia/statistics/drivers/update_db.py | 20 +- .../backend/agent/api_server/test_server.py | 19 +- .../api/drivers/driver_agent/test_driver_agent.py | 275 +- .../api/v2/test_availability_zone_profiles.py | 1 + .../backends/agent/api_server/test_amphora_info.py | 2 + .../backends/agent/api_server/test_osutils.py | 2 +- .../backends/agent/api_server/test_plug.py | 60 +- .../backends/agent/api_server/test_util.py | 35 + .../backends/health_daemon/test_health_daemon.py | 8 + .../backends/health_daemon/test_health_sender.py | 18 + .../unit/amphorae/backends/utils/test_interface.py | 81 + .../amphorae/backends/utils/test_interface_file.py | 2 + .../backends/utils/test_keepalivedlvs_query.py | 134 +- .../drivers/haproxy/test_rest_api_driver_1_0.py | 62 +- .../amphorae/drivers/health/test_heartbeat_udp.py | 38 +- .../drivers/keepalived/jinja/test_jinja_cfg.py | 8 +- .../amphorae/drivers/noop_driver/test_driver.py | 5 +- .../unit/api/drivers/amphora_driver/v1/__init__.py | 11 - .../api/drivers/amphora_driver/v1/test_driver.py | 824 ------ .../api/drivers/driver_agent/test_driver_get.py | 6 +- .../drivers/driver_agent/test_driver_updater.py | 24 +- .../haproxy/combined_listeners/test_jinja_cfg.py | 153 +- .../sample_configs/sample_configs_combined.py | 13 +- .../healthmanager/test_health_manager.py | 30 +- .../controller/housekeeping/test_house_keeping.py | 67 +- .../unit/controller/queue/v1/test_consumer.py | 61 - .../unit/controller/queue/v1/test_endpoints.py | 189 -- .../controller/worker/test_amphora_rate_limit.py | 2 +- .../unit/controller/worker/test_task_utils.py | 68 +- .../unit/controller/worker/v1/flows/__init__.py | 11 - .../worker/v1/flows/test_amphora_flows.py | 474 ---- .../worker/v1/flows/test_health_monitor_flows.py | 72 - .../worker/v1/flows/test_l7policy_flows.py | 67 - .../worker/v1/flows/test_l7rule_flows.py | 67 - .../worker/v1/flows/test_listener_flows.py | 91 - .../worker/v1/flows/test_load_balancer_flows.py | 431 --- .../worker/v1/flows/test_member_flows.py | 106 - .../controller/worker/v1/flows/test_pool_flows.py | 77 - .../unit/controller/worker/v1/tasks/__init__.py | 11 - .../worker/v1/tasks/test_amphora_driver_tasks.py | 792 ------ .../controller/worker/v1/tasks/test_cert_task.py | 46 - .../worker/v1/tasks/test_compute_tasks.py | 634 ----- .../worker/v1/tasks/test_database_tasks.py | 2615 ------------------- .../worker/v1/tasks/test_database_tasks_quota.py | 415 --- .../worker/v1/tasks/test_lifecycle_tasks.py | 401 --- .../controller/worker/v1/tasks/test_model_tasks.py | 44 - .../worker/v1/tasks/test_network_tasks.py | 1788 ------------- .../controller/worker/v1/tasks/test_retry_tasks.py | 47 - .../controller/worker/v1/test_controller_worker.py | 2096 --------------- .../worker/v2/flows/test_load_balancer_flows.py | 1 - .../worker/v2/tasks/test_amphora_driver_tasks.py | 75 +- .../worker/v2/tasks/test_database_tasks.py | 595 +++-- .../worker/v2/tasks/test_database_tasks_quota.py | 101 +- .../worker/v2/tasks/test_network_tasks.py | 17 +- .../controller/worker/v2/test_controller_worker.py | 4 +- .../drivers/neutron/test_allowed_address_pairs.py | 1017 ++++---- .../unit/network/drivers/neutron/test_base.py | 375 ++- .../unit/network/drivers/neutron/test_utils.py | 44 +- .../unit/statistics/drivers/test_update_db.py | 12 +- ...r-delete-causing-failover-251efdb79af24c0a.yaml | 5 + .../notes/add-hsts-support-91527398ba966115.yaml | 9 + ...ation-for-additional_vips-175c32824cc7ee95.yaml | 7 + ...ad-management-port-update-3fa157f74ee8c7b2.yaml | 7 + ...ber-update-race-condition-09b82e2cc3121e03.yaml | 5 + ...t-udp-pools-dual-stack-lb-b298ded551ac97e1.yaml | 6 + ...n-with-disabled-listeners-fa89f762a94b8fe9.yaml | 6 + ...-online-in-single-lb-call-214a7ca22937a877.yaml | 5 + .../fix-ip-rules-in-amphora-b74b7b616752c13b.yaml | 11 + ...ress-enclosed-in-brackets-c1cfc4717465ba09.yaml | 6 + ...ssion-persistence-failure-d649656a44fc3bbb.yaml | 6 + ...twork-interface-collision-939fd32587ea3344.yaml | 8 + ...-octavia-status-amphorav2-038fe77a2189b99f.yaml | 5 + ...tatus-on-lb-single-create-897070aee0a42da6.yaml | 5 + ...linux-tcp-hm-on-udp-pools-89c3b8db89e359ba.yaml | 7 + ...atus-with-additional-vips-7511690a0c112b44.yaml | 6 + ...ixed-quota-error-messages-fe3ae81a43f93a17.yaml | 6 + ...-ipvs-before-setting-opts-c5b2f0871bc38c27.yaml | 5 + ...-subnet-ip-advertisements-af2264844079ef6b.yaml | 6 + .../removed-neutronclient-43f62f25210c3392.yaml | 23 + .../notes/removing-amphorav1-ff43992c07a2071d.yaml | 10 + releasenotes/source/2023.1.rst | 6 + releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 29 +- requirements.txt | 4 +- setup.cfg | 3 +- specs/template.rst | 12 +- tools/check_unit_test_structure.sh | 1 - tools/flow-list.txt | 32 - tox.ini | 10 +- zuul.d/jobs.yaml | 86 +- zuul.d/projects.yaml | 30 +- 242 files changed, 6276 insertions(+), 24379 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 872c355b..e20ed6e1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19 +18,0 @@ keystonemiddleware>=9.5.0 # Apache-2.0 -python-neutronclient>=6.7.0 # Apache-2.0 @@ -21,0 +21 @@ stevedore>=1.20.0 # Apache-2.0 +openstacksdk>=0.103.0 # Apache-2.0 @@ -49 +49 @@ jsonschema>=3.2.0 # MIT -octavia-lib>=3.1.0 # Apache-2.0 +octavia-lib>=3.3.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org