We jubilantly announce the release of: octavia 11.0.0: OpenStack Octavia Scalable Load Balancer as a Service This release is part of the zed 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. 11.0.0 ^^^^^^ Bug Fixes * Fix the rescheduling of taskflow tasks that have been resumed after being interrupted. Changes in octavia 10.0.0..11.0.0 --------------------------------- d367b476 Prevent incorrect reschedule of resumed tasks with jobboard 770520e6 Add missing parameter in amphorav1 batch member update 96a44271 Fix create_vip_port function in amphorav1 1d19b702 Failover stop threshold / circuit breaker d9ee63f5 Allow multiple VIPs per LB e0a9ba15 Cache subnets validation for batch member update 05b4d361 Fix listener creation allowing pool protocol bdb8cab0 Deprecate amphorav1 driver 4b0d4c1b Fix plugging member subnets on existing networks 34579fdc Imported Translations from Zanata 7118e8d5 Reconfigure amphora network interfaces seamlessly 57e006ea Fix unclear error messages in the API f29d8aa1 Fix sporadic unit test failure fdcea400 Fix bug when rolling back prov and op status for some API calls e9624015 Imported Translations from Zanata 70257eb6 Add event notifications for load balancers. 0a3d2ef6 Fix alembic migration template 6db36408 Fix stat error in periodic image build job 3115589f Apply openstack-selinux policies in Centos amphorae 6d746430 Change FIPS jobs to centos-9-stream ad3a21aa Fix keepalivedlvs_query regex nested set warning 8d7fb4ec Fix rfc3986 deprecation warning 085cf1c2 Remove netaddr module requirement 9a5273d3 Fix update/delete listener CA/CRL error 5ab6e3d3 Move system scoped secure-RBAC to separate file c79123ba Add release note about new DB model string representation cd8546bd Fixing image builder jobs on Red Hat based distros 197150fd Imported Translations from Zanata 38cb7b6f Drop lower-constraints.txt and its testing f4538864 Add WebTest as an indirect test dependency 96f2ca7c Fix HealthMonitorToErrorOnRevertTask revert method 22feb4f1 Remove redundant examples from parameter description 951c61f9 Document available choices using oslo.config api c1743124 Add missing [cinder] parameters f166bb14 Fix duplicate object error messages c011c61d Restart rsyslog from cloud-init in amphorav1 51eef0d6 Fix driver-agent cleanup 1184b85a Correct format of release note b7f965b4 Fix pyroute2.netns mock in functional tests 66d7b6c7 Fix pyroute2.netns mock in some tests d590d6c7 Fix new pylint issues f444fa7c Update default image versions for CentOS and RHEL 0059f05a Exclude invalid TLS version 3d3e38af Set sensible nf_conntrack_max value in amphora 81105bba Update zuul queue configuration e4c76108 Add explicitly vim-minimal in CentOS-based images 3cf866db Validate L7Rule value and cookie name 737523f3 Move to Python 3.8 829e44ac Make amphora timezone configurable ff6d0c52 Improve string representation of DB models 72bdc0f8 Remove unneeded sudo in lvs-masquerade.sh cff2cfa6 Switch centos-8-stream jobs to centos-9-stream jobs c2d5da0b Improve test coverage for ControllerWorker in v2 6042de75 Fix potential race conditions on update requests in the v2 worker b68b113e Remove unnecessary unicode prefixes f4b32ac3 Fix disabled UDP pools a88e86e7 [doc] Fix client key name in command 384b83d8 Fix AttributeError in exception handler 70e7344c Remove deprecated oslo_db.sqlalchemy.test_base 21d74c37 Save the HAProxy state outside of its systemd unit b0032b7b Passphrase parameters should be secret 251fab17 Reject invalid whitespace in HM url_path value 1ac78181 Fix PING health-monitor with recent haproxy releases d556c622 Documentation updates d340a1de Fix update listener certs doesn't work 911300d6 Improve documentation about log offloading 83ae4a63 Add Python3 zed unit tests fc889f26 Update master for stable/yoga 41e3225c Fix a typo in a prometheus help string f97c826f Add a Grafana dashboard for Octavia load balancers 7afe2fb2 Fix prometheus-proxy systemd service cc18c1e1 Fix centos 8 stream haproxy repository 64f404ac Ensure clean redis state in devstack env 24ce12a1 Remove incorrect info message 1fa0ac0b Fix certificates guide 6d6a8bdf Pass timeout_dict to _get_haproxy_versions 655fdf8c Fix compile_amphora_details when using UDP listeners 64d8d991 Fix template issue with user_data_config_drive 6d8fc69f Fix ignored [nova] service_name d25ed7ab Fix serialization of lists in data_models.to_dict c3481d04 Fix PortNotFound exception when updating a LB after a failover a9ee09a6 Enable taskflow retry feature when waiting for compute 2886fc72 Catch exceptions on I/O in driver-agent f5655b5e Ignore status update on deleted objects in driver-agent 45b0a507 Deny the creation of L7Policies for HTTPS/TCP/UDP listeners e3861585 Workaround for functional tests timeouts in DriverAgentTest 5162eec7 Add support for Debian in the Amphorae class. Diffstat (except docs and test files) ------------------------------------- .gitignore | 1 + .pylintrc | 5 - CONSTITUTION.rst | 7 +- HACKING.rst | 2 + TESTING.rst | 4 +- api-ref/source/conf.py | 8 +- api-ref/source/parameters.yaml | 15 +- .../source/v2/examples/loadbalancer-create-curl | 2 +- .../v2/examples/loadbalancer-create-request.json | 4 + .../v2/examples/loadbalancer-create-response.json | 4 + .../loadbalancer-full-create-response.json | 1 + .../v2/examples/loadbalancer-show-response.json | 1 + .../v2/examples/loadbalancer-update-response.json | 1 + .../v2/examples/loadbalancers-list-response.json | 1 + api-ref/source/v2/loadbalancer.inc | 10 + devstack/plugin.sh | 3 +- diskimage-create/README.rst | 7 +- diskimage-create/diskimage-create.sh | 23 +- .../prometheus-proxy.service | 2 +- elements/amphora-agent/pkg-map | 2 +- .../static/usr/local/bin/lvs-masquerade.sh | 4 +- elements/amphora-selinux/README.rst | 3 + elements/amphora-selinux/element-deps | 2 + elements/amphora-selinux/package-installs.json | 4 + elements/amphora-selinux/pkg-map | 12 + .../post-install.d/50-selinux-policies | 19 + .../post-install.d/20-haproxy-tune-kernel | 6 +- .../haproxy-octavia/pre-install.d/01-repositories | 6 +- etc/grafana/OctaviaAmphoraDashboard.json | 10690 +++++++++++++++++++ etc/octavia.conf | 32 + etc/policy/README.rst | 12 + etc/policy/keystone_default_roles-policy.yaml | 6 +- .../keystone_default_roles_scoped-policy.yaml | 37 + lower-constraints.txt | 178 - .../backends/agent/api_server/amphora_info.py | 8 +- .../backends/agent/api_server/loadbalancer.py | 14 +- .../amphorae/backends/agent/api_server/osutils.py | 40 +- octavia/amphorae/backends/agent/api_server/plug.py | 186 +- .../amphorae/backends/agent/api_server/server.py | 6 +- .../api_server/templates/amphora-netns.systemd.j2 | 3 + .../agent/api_server/templates/systemd.conf.j2 | 1 - octavia/amphorae/backends/utils/haproxy_query.py | 28 +- octavia/amphorae/backends/utils/interface.py | 231 +- octavia/amphorae/backends/utils/interface_file.py | 166 +- .../amphorae/backends/utils/keepalivedlvs_query.py | 105 +- octavia/amphorae/backends/utils/network_utils.py | 3 +- octavia/amphorae/drivers/driver_base.py | 17 +- .../amphorae/drivers/haproxy/rest_api_driver.py | 120 +- .../amphorae/drivers/keepalived/jinja/jinja_cfg.py | 76 +- .../jinja/templates/keepalived_base.template | 84 +- .../drivers/keepalived/vrrp_rest_driver.py | 12 +- octavia/amphorae/drivers/noop_driver/driver.py | 20 +- octavia/api/common/types.py | 6 +- octavia/api/drivers/amphora_driver/v1/driver.py | 27 +- octavia/api/drivers/amphora_driver/v2/driver.py | 46 +- .../api/drivers/driver_agent/driver_listener.py | 99 +- octavia/api/drivers/driver_agent/driver_updater.py | 14 +- octavia/api/drivers/noop_driver/driver.py | 26 +- octavia/api/drivers/utils.py | 51 +- octavia/api/root_controller.py | 5 +- octavia/api/v2/controllers/health_monitor.py | 8 +- octavia/api/v2/controllers/l7policy.py | 8 +- octavia/api/v2/controllers/l7rule.py | 10 +- octavia/api/v2/controllers/listener.py | 14 +- octavia/api/v2/controllers/load_balancer.py | 60 +- octavia/api/v2/controllers/member.py | 48 +- octavia/api/v2/controllers/pool.py | 10 +- octavia/api/v2/types/l7rule.py | 13 +- octavia/api/v2/types/listener.py | 7 +- octavia/api/v2/types/load_balancer.py | 11 + octavia/api/v2/types/pool.py | 14 +- octavia/certificates/common/local.py | 6 +- octavia/cmd/prometheus_proxy.py | 19 +- octavia/common/base_taskflow.py | 53 +- octavia/common/config.py | 36 +- octavia/common/constants.py | 31 +- octavia/common/data_models.py | 111 +- .../jinja/haproxy/combined_listeners/jinja_cfg.py | 17 +- .../haproxy/combined_listeners/templates/base.j2 | 3 + .../combined_listeners/templates/haproxy.cfg.j2 | 3 +- .../haproxy/combined_listeners/templates/macros.j2 | 5 +- .../jinja/haproxy/split_listeners/jinja_cfg.py | 5 + .../split_listeners/templates/haproxy.cfg.j2 | 2 +- .../haproxy/split_listeners/templates/macros.j2 | 5 +- octavia/common/jinja/lvs/jinja_cfg.py | 14 +- .../jinja/lvs/templates/keepalivedlvs.cfg.j2 | 2 +- octavia/common/jinja/lvs/templates/macros.j2 | 32 +- .../templates/user_data_config_drive.template | 2 + octavia/common/jinja/user_data_jinja_cfg.py | 3 +- octavia/common/rpc.py | 27 +- octavia/common/utils.py | 28 +- octavia/common/validate.py | 26 +- octavia/compute/drivers/nova_driver.py | 1 + octavia/controller/healthmanager/health_manager.py | 1 - octavia/controller/worker/v1/controller_worker.py | 7 + .../controller/worker/v1/flows/amphora_flows.py | 7 +- .../worker/v1/flows/load_balancer_flows.py | 4 +- octavia/controller/worker/v1/flows/member_flows.py | 31 +- .../worker/v1/tasks/amphora_driver_tasks.py | 14 +- .../controller/worker/v1/tasks/compute_tasks.py | 9 +- .../controller/worker/v1/tasks/lifecycle_tasks.py | 2 +- .../controller/worker/v1/tasks/network_tasks.py | 261 +- octavia/controller/worker/v2/controller_worker.py | 98 +- .../controller/worker/v2/flows/amphora_flows.py | 39 +- .../worker/v2/flows/load_balancer_flows.py | 34 +- octavia/controller/worker/v2/flows/member_flows.py | 31 +- .../worker/v2/tasks/amphora_driver_tasks.py | 34 +- .../controller/worker/v2/tasks/compute_tasks.py | 43 +- .../controller/worker/v2/tasks/database_tasks.py | 28 + .../controller/worker/v2/tasks/lifecycle_tasks.py | 2 +- .../controller/worker/v2/tasks/network_tasks.py | 284 +- .../worker/v2/tasks/notification_tasks.py | 51 + octavia/db/base_models.py | 10 + .../db/migration/alembic_migrations/script.py.mako | 20 +- ...6fc506_add_failover_stopped_to_provisioning_.py | 41 + ...53ded67_allow_multiple_vips_per_loadbalancer.py | 44 + octavia/db/models.py | 88 + octavia/db/repositories.py | 129 +- octavia/network/base.py | 34 +- octavia/network/data_models.py | 15 +- .../drivers/neutron/allowed_address_pairs.py | 87 +- octavia/network/drivers/neutron/base.py | 80 +- octavia/network/drivers/noop_driver/driver.py | 196 +- octavia/opts.py | 3 +- .../backend/agent/api_server/test_server.py | 542 +- .../api/drivers/driver_agent/test_driver_agent.py | 45 + .../backends/agent/api_server/test_amphora_info.py | 13 +- .../backends/agent/api_server/test_loadbalancer.py | 5 +- .../backends/agent/api_server/test_osutils.py | 76 +- .../backends/agent/api_server/test_plug.py | 280 +- .../amphorae/backends/utils/test_haproxy_query.py | 28 + .../unit/amphorae/backends/utils/test_interface.py | 282 +- .../amphorae/backends/utils/test_interface_file.py | 239 +- .../backends/utils/test_keepalivedlvs_query.py | 138 +- .../drivers/haproxy/test_rest_api_driver_0_5.py | 63 +- .../drivers/haproxy/test_rest_api_driver_1_0.py | 127 +- .../drivers/keepalived/jinja/test_jinja_cfg.py | 367 +- .../drivers/keepalived/test_vrrp_rest_driver.py | 11 +- .../amphorae/drivers/noop_driver/test_driver.py | 4 +- .../api/drivers/amphora_driver/v1/test_driver.py | 40 +- .../api/drivers/amphora_driver/v2/test_driver.py | 36 +- .../drivers/driver_agent/test_driver_listener.py | 173 +- .../unit/api/drivers/noop_driver/test_driver.py | 8 +- .../haproxy/combined_listeners/test_jinja_cfg.py | 153 + .../haproxy/split_listeners/test_jinja_cfg.py | 17 + .../unit/common/jinja/test_user_data_jinja_cfg.py | 7 +- .../sample_configs/sample_configs_combined.py | 48 +- .../common/sample_configs/sample_configs_split.py | 38 +- .../worker/v1/flows/test_amphora_flows.py | 8 +- .../worker/v1/flows/test_load_balancer_flows.py | 20 +- .../worker/v1/flows/test_member_flows.py | 25 +- .../worker/v1/tasks/test_amphora_driver_tasks.py | 18 +- .../worker/v1/tasks/test_compute_tasks.py | 44 +- .../worker/v1/tasks/test_lifecycle_tasks.py | 2 +- .../worker/v1/tasks/test_network_tasks.py | 839 +- .../controller/worker/v1/test_controller_worker.py | 5 + .../worker/v2/flows/test_amphora_flows.py | 8 +- .../worker/v2/flows/test_load_balancer_flows.py | 127 +- .../worker/v2/flows/test_member_flows.py | 21 +- .../worker/v2/tasks/test_amphora_driver_tasks.py | 108 +- .../worker/v2/tasks/test_compute_tasks.py | 8 +- .../worker/v2/tasks/test_database_tasks.py | 41 + .../worker/v2/tasks/test_lifecycle_tasks.py | 2 +- .../worker/v2/tasks/test_network_tasks.py | 840 +- .../worker/v2/tasks/test_notification_tasks.py | 60 + .../controller/worker/v2/test_controller_worker.py | 305 +- .../drivers/neutron/test_allowed_address_pairs.py | 154 +- .../unit/network/drivers/neutron/test_base.py | 149 +- .../network/drivers/noop_driver/test_driver.py | 106 +- playbooks/image-build/run.yaml | 8 + ...emove-netaddr-requirement-0ce7f8605a86172a.yaml | 5 + ...g-option-for-amp-timezone-6496a33a23d7520d.yaml | 6 + .../add-event-notifications-aa9946d771308da5.yaml | 13 + .../notes/catch_validation-27ffe48ca187c46f.yaml | 8 + ...eprecate-amphorav1-driver-eb2dca7da2dd0776.yaml | 5 + ...file-extension-to-default-34eeaa97b788cc67.yaml | 11 + ...syslog-reloaded-amphorav1-a4ec5127a459f3bf.yaml | 7 + .../notes/failover-threshold-f5cdf2bbe8a64d6d.yaml | 12 + ...putewait-with-persistence-d10223bfb48a0ded.yaml | 6 + .../fix-disabled-udp-pool-3e84558f996017d5.yaml | 5 + ...r-agent-graceful-shutdown-daff9ffaccb09a9e.yaml | 7 + ...nforced-selinux-on-centos-27842ca6afbb500c.yaml | 4 + ...itor-to-error-revert-task-feb38ba7641a4892.yaml | 6 + ...on-allowing-pool-protocol-b9e9ef147f6eeaf4.yaml | 5 + ...tener-update-certs-failed-315c66f4806e76c8.yaml | 5 + ...onntrack-max-value-in-amp-0e16eb50b42e7b58.yaml | 15 + .../fix-nova-service_name-6bde4970047817f4.yaml | 6 + ...-ping-hm-with-haproxy-2.2-9b83777172fb8835.yaml | 6 + ...x-plugging-member-subnets-8560cd9403ff79a7.yaml | 8 + ...-qos-apply-after-failover-561abbd153ab88ee.yaml | 6 + ...race-condiction-on-update-b5330c8fcf1800cd.yaml | 7 + ...chedule-of-jobboard-tasks-929c066dea9267fd.yaml | 5 + ...ue-with-lvs-masquerade.sh-ebbb89886148c70f.yaml | 6 + ...ut-dict-in-failover-tasks-537456e0fe1d7cb8.yaml | 9 + ...s-container-serialization-1cb83ad4c9eca3b8.yaml | 6 + ...-update-listener-ca-error-167464debc06cba2.yaml | 5 + ...ix-user_data_config_drive-b4ce8cc66fb21365.yaml | 6 + ...rules-and-session-cookies-cb88f3f1b90171f9.yaml | 9 + ...UPDATE-on-provider-errors-40a03adc8ef82a54.yaml | 5 + ...essage-failed-constraints-6ad10bd22cac523a.yaml | 6 + ...epresentation-of-db-model-1c4fe799186b4dea.yaml | 7 + .../notes/move-to-python-3.8-203249392fd1f1aa.yaml | 6 + .../ping-healthcheck-selinux-e3b7d360c8503527.yaml | 6 + ...ional-vips-on-lb-creation-efe0dfa517c667a0.yaml | 12 + ...eate-rhel-centos-defaults-2be19c634f10506f.yaml | 5 + ...-protocols-for-l7policies-83d678171f13136a.yaml | 7 + ...rl_path-value-in-requests-3eb3adedcd696433.yaml | 7 + releasenotes/source/conf.py | 14 +- releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 225 +- releasenotes/source/yoga.rst | 6 + requirements.txt | 7 +- setup.cfg | 5 +- test-requirements.txt | 1 + tools/create_flow_docs.py | 7 + tox.ini | 22 +- zuul.d/jobs.yaml | 56 +- zuul.d/projects.yaml | 30 +- 252 files changed, 20360 insertions(+), 2177 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index e16be6f8..50c61729 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1,4 @@ +# Requirements lower bounds listed here are our best effort to keep them up to +# date but we do not test them so no guarantee of having them all correct. If +# you find any incorrect lower bounds, let us know or propose a fix. + @@ -45,2 +49 @@ jsonschema>=3.2.0 # MIT -octavia-lib>=2.5.0 # Apache-2.0 -netaddr>=0.7.19 # BSD +octavia-lib>=3.1.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index a4e7a9ba..051ebbdf 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -21,0 +22 @@ bashate>=0.5.1 # Apache-2.0 +WebTest>=2.0.26 # MIT
participants (1)
-
no-reply@openstack.org