[release-announce] octavia 11.0.0 (zed)

no-reply at openstack.org no-reply at openstack.org
Wed Oct 5 12:30:27 UTC 2022


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






More information about the Release-announce mailing list