octavia 15.0.0 (dalmatian)
We are chuffed to announce the release of: octavia 15.0.0 This release is part of the dalmatian 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 14.0.0..15.0.0 --------------------------------- 835d5bfb Imported Translations from Zanata 8b8d969d Fix SR-IOV when VIP interface is used for members ec9a5059 Fix loadbalancer stuck in cascade delete 659500bc Remove use of sphinxcontrib-*diag packages e103dd58 Imported Translations from Zanata fa004b66 Cleanup py27 support a4317a80 Fix failover when using SRIOV VIP 0aaec145 Fix test_update_load_balancer_status 0aef474c Add spec for rate limiting 1b09ba8f Add spec for custom SGs on VIP ports 240347fc Fix tests for oslo.policy new defaults enable by default c9b15db3 Fix IPv6 tempest job f5b73d8e Stop using DHCP for o-hm0 interface in devstack 1c027c84 Do not install qemu in the Octavia devstack plugin 06fccc6d Update the Grafana dashboard for HAProxy 2.4+ 29855ddc Add specs to resize a load balancer 7376a4ad Fix functional-py31{1,2} tests 991e0da0 Remove sysvinit/upstart support 83013480 Update cryptography requirement 85c12eb7 Remove deprecated [haproxy_amphora] use_upstart fc7c6199 Remove deprecated [amphora_agent] agent_server_network_file e8fd3b78 Don't install firewalld in the amphora 310cf313 Replace use of deprecated cert.not_valid_after 5c0b011e curl-minimal conflicts with already installed curl 0cea8d67 Drop usage of subtransactions=True b1650fcd String conversion to f-strings 42bfac51 Use built-in json module 70f15c54 Fix listener update when using SRIOV VIP bc259c0b Fix new pylint errors 800b4518 Remove SQLAlchemy tips jobs 29df1786 Ignore temp file created by coverage 874ec069 Remove deprecated [health_manager] health_update_driver cdbcc3fd Fix incorrect filtering when using bool attrs 08fca664 Fix test_prometheus_proxy.test_main cee4514e reno: Update master for unmaintained/zed f5349aca Check haproxy status on reload 176fc1c4 Updates for new Python runtimes in 2024.2 4e6121d9 Fix migration scripts with SQLAlchemy 2.0 d0c29009 SQLAlchemy 2.0: Drop use of removed autoload 85cfb6c2 Fix negative or 0 limit parameter in pagination 824b51a1 Handle empty delay on update healthmonitor c19c69e6 Add pyupgrade hook to pre-commit config 6bbdd488 pyupgrade changes for Python3.8+ (7) ba3bbfa8 pyupgrade changes for Python3.8+ (6) a0360f97 pyupgrade changes for Python3.8+ (5) 0009c7cd pyupgrade changes for Python3.8+ (4) 3d336095 pyupgrade changes for Python3.8+ (3) 9b1b8a3b pyupgrade changes for Python3.8+ (2) 69552a20 pyupgrade changes for Python3.8+ (1) e4d71867 Update master for stable/2024.1 5d9b23c6 Fix fully-populated API with allowed_cidrs 37b944d8 jobboard: Support authentication and SSL for Redis Sentinel 0bfccba1 Fix port abandonment on failover flow revert 1d0e514c Drop redundant envdir 1740e335 devstack: Drop removed services 911faf26 Fixed VRRP nopreempt option d7b09070 Add check for duplicate members in batch update 845a30db Remove executable flag from some files Diffstat (except docs and test files) ------------------------------------- .gitignore | 1 + .pre-commit-config.yaml | 5 + devstack/contrib/new-octavia-devstack.sh | 4 +- devstack/plugin.sh | 62 +- devstack/samples/multinode/Vagrantfile | 0 devstack/samples/multinode/local.conf | 1 - devstack/samples/singlenode/Vagrantfile | 0 devstack/samples/singlenode/local.conf | 1 - devstack/settings | 4 - .../75-amphora-agent-install | 8 - elements/amphora-agent/package-installs.yaml | 4 + elements/amphora-agent/pkg-map | 1 - .../static/usr/local/bin/lvs-masquerade.sh | 62 +- elements/certs-ramfs/init-scripts/sysv/certs-ramfs | 39 - .../init-scripts/upstart/certs-ramfs.conf | 14 - .../post-install.d/30-enable-certs-ramfs-service | 4 - etc/dhcp/dhclient.conf | 2 - etc/grafana/OctaviaAmphoraDashboard.json | 15821 ++++++++++--------- octavia/amphorae/backends/agent/agent_jinja_cfg.py | 5 +- .../backends/agent/api_server/amphora_info.py | 10 +- .../backends/agent/api_server/keepalived.py | 79 +- .../backends/agent/api_server/keepalivedlvs.py | 127 +- .../backends/agent/api_server/loadbalancer.py | 206 +- .../backends/agent/api_server/lvs_listener_base.py | 2 +- .../amphorae/backends/agent/api_server/osutils.py | 19 +- octavia/amphorae/backends/agent/api_server/plug.py | 25 +- .../amphorae/backends/agent/api_server/server.py | 7 +- .../api_server/templates/keepalived.sysvinit.j2 | 87 - .../api_server/templates/keepalived.upstart.j2 | 29 - .../templates/keepalived_lvs_check_script.sh.j2 | 4 - .../agent/api_server/templates/sysvinit.conf.j2 | 232 - .../agent/api_server/templates/upstart.conf.j2 | 71 - octavia/amphorae/backends/agent/api_server/util.py | 91 +- .../agent/templates/amphora_agent_conf.template | 3 - .../backends/health_daemon/health_daemon.py | 13 +- .../backends/health_daemon/health_sender.py | 4 +- octavia/amphorae/backends/utils/haproxy_query.py | 9 +- octavia/amphorae/backends/utils/interface.py | 61 +- octavia/amphorae/backends/utils/interface_file.py | 45 +- .../amphorae/backends/utils/ip_advertisement.py | 2 +- .../amphorae/backends/utils/keepalivedlvs_query.py | 15 +- .../amphorae/backends/utils/network_namespace.py | 6 +- octavia/amphorae/backends/utils/nftable_utils.py | 44 +- octavia/amphorae/drivers/driver_base.py | 4 +- .../amphorae/drivers/haproxy/rest_api_driver.py | 64 +- octavia/amphorae/drivers/health/heartbeat_udp.py | 2 +- .../amphorae/drivers/keepalived/jinja/jinja_cfg.py | 3 +- .../jinja/templates/keepalived_base.template | 1 - octavia/amphorae/drivers/noop_driver/driver.py | 2 +- octavia/api/app.py | 3 +- octavia/api/common/pagination.py | 38 +- octavia/api/common/types.py | 2 +- octavia/api/drivers/amphora_driver/v2/driver.py | 12 +- .../api/drivers/driver_agent/driver_listener.py | 6 +- octavia/api/drivers/driver_agent/driver_updater.py | 2 +- octavia/api/drivers/noop_driver/driver.py | 2 +- octavia/api/root_controller.py | 4 +- octavia/api/v2/controllers/base.py | 6 +- octavia/api/v2/controllers/health_monitor.py | 8 +- octavia/api/v2/controllers/listener.py | 4 +- octavia/api/v2/controllers/load_balancer.py | 7 + octavia/api/v2/controllers/member.py | 14 +- octavia/api/v2/types/amphora.py | 2 +- octavia/api/v2/types/availability_zone_profile.py | 3 +- octavia/api/v2/types/availability_zones.py | 3 +- octavia/api/v2/types/flavor_profile.py | 2 +- octavia/api/v2/types/flavors.py | 2 +- octavia/api/v2/types/health_monitor.py | 2 +- octavia/api/v2/types/l7policy.py | 2 +- octavia/api/v2/types/l7rule.py | 2 +- octavia/api/v2/types/listener.py | 6 +- octavia/api/v2/types/load_balancer.py | 6 +- octavia/api/v2/types/member.py | 4 +- octavia/api/v2/types/pool.py | 4 +- octavia/api/v2/types/quotas.py | 4 +- octavia/certificates/common/barbican.py | 2 +- octavia/certificates/common/cert.py | 2 +- octavia/certificates/generator/cert_gen.py | 2 +- octavia/certificates/generator/local.py | 10 +- octavia/certificates/manager/cert_mgr.py | 2 +- octavia/certificates/manager/local.py | 40 +- octavia/cmd/agent.py | 6 +- octavia/cmd/driver_agent.py | 5 +- octavia/cmd/health_checker.py | 8 +- octavia/cmd/interface.py | 8 +- octavia/cmd/prometheus_proxy.py | 24 +- octavia/common/base_taskflow.py | 6 +- octavia/common/clients.py | 8 +- octavia/common/config.py | 42 +- octavia/common/constants.py | 63 +- octavia/common/data_models.py | 4 +- .../jinja/haproxy/combined_listeners/jinja_cfg.py | 10 +- octavia/common/jinja/logging/logging_jinja_cfg.py | 2 +- octavia/common/jinja/lvs/jinja_cfg.py | 2 +- octavia/common/jinja/user_data_jinja_cfg.py | 2 +- octavia/common/keystone.py | 2 +- octavia/common/policy.py | 5 +- octavia/common/stats.py | 2 +- octavia/common/tls_utils/cert_parser.py | 3 +- octavia/common/utils.py | 6 +- octavia/common/validate.py | 22 +- octavia/compute/compute_base.py | 2 +- octavia/compute/drivers/noop_driver/driver.py | 2 +- octavia/compute/drivers/nova_driver.py | 2 +- octavia/controller/healthmanager/health_manager.py | 2 +- octavia/controller/housekeeping/house_keeping.py | 4 +- octavia/controller/queue/v2/consumer.py | 3 +- octavia/controller/queue/v2/endpoints.py | 2 +- octavia/controller/worker/amphora_rate_limit.py | 12 +- octavia/controller/worker/task_utils.py | 2 +- octavia/controller/worker/v2/controller_worker.py | 6 +- .../controller/worker/v2/flows/amphora_flows.py | 19 +- octavia/controller/worker/v2/flows/flow_utils.py | 11 +- .../worker/v2/flows/health_monitor_flows.py | 2 +- .../controller/worker/v2/flows/l7policy_flows.py | 2 +- octavia/controller/worker/v2/flows/l7rule_flows.py | 2 +- .../controller/worker/v2/flows/listener_flows.py | 24 +- .../worker/v2/flows/load_balancer_flows.py | 2 +- octavia/controller/worker/v2/flows/member_flows.py | 31 +- octavia/controller/worker/v2/flows/pool_flows.py | 2 +- .../worker/v2/taskflow_jobboard_driver.py | 20 +- .../controller/worker/v2/tasks/compute_tasks.py | 4 +- .../controller/worker/v2/tasks/network_tasks.py | 7 +- octavia/db/base_models.py | 30 +- .../versions/034756a182a2_amphora_add_image_id.py | 4 +- .../034b2dc2f3e0_modernize_l7policy_fields.py | 62 +- .../versions/0f242cf02c74_add_provider_column.py | 4 +- .../10d38216ad34_add_timestamps_to_amphora.py | 8 +- .../versions/11e4bb2bb8ef_fix_ipv6_vip.py | 2 +- .../13500e2e978d_update_url_and_name_size.py | 12 +- .../versions/14892634e228_update_vip.py | 10 +- ...09101b9b_add_server_group_id_to_loadbalancer.py | 4 +- .../1afc932f1ca2_l7rule_support_client_cert.py | 6 +- ...c1d83044c_keepalived_configuration_datamodel.py | 52 +- ...16465_adding_terminate_https_tls_ref_support.py | 8 +- .../256852d5ff7c_add_lb_network_ip_to_amphora.py | 4 +- ...0c3cd_add_monitor_address_and_port_to_member.py | 8 +- ...40a7_add_amphora_vrrp_port_id_and_ha_port_id.py | 8 +- .../versions/29ff921a6eb_shared_pools.py | 6 +- ...353f_add_listener_client_ca_tls_certificate_.py | 4 +- ...53ded67_allow_multiple_vips_per_loadbalancer.py | 20 +- .../32e5c35b26a8_add_l7policy_and_l7rule_quota.py | 8 +- ...a6d5ac_update_lb_and_amphora_data_model_for_.py | 40 +- .../versions/35dee79d5865_initial_create.py | 370 +- .../versions/36b94648fef8_add_timestamp.py | 4 +- .../392fb85b4419_add_primary_key_to_spares_pool.py | 2 +- .../3a1e1cdb7b27_rename_amphora_host_id.py | 2 +- ...c848b96_create_no_monitor_operational_status.py | 2 +- ...e5b37a0bdb9_add_vrrp_ip_and_ha_ip_to_amphora.py | 8 +- .../versions/3f8ff3be828e_create_quotas_table.py | 24 +- .../43287cd10fef_make_pool_lb_algorithm_larger.py | 12 +- .../versions/443fe6676637_add_network_id_to_vip.py | 4 +- ...683_adding_name_column_to_member_and_health_.py | 2 +- .../versions/458c9ee2a011_l7_policies_and_rules.py | 114 +- .../46d914b2a5e5_seed_the_spares_pool_table.py | 4 +- .../48660b6643f0_add_new_states_for_amphora.py | 6 +- .../4aeb9e23ad43_add_draining_operating_status.py | 2 +- .../4c094013699a_update_load_balancer_amphora.py | 18 +- .../versions/4f65b4f91c39_amphora_add_flavor_id.py | 4 +- .../4faaa983e7a9_update_member_address_column.py | 2 +- .../4fe8240425b4_update_vip_add_subnet_id.py | 4 +- ...52377704420e_add_timestamps_to_healthmonitor.py | 18 +- .../5309960964f8_add_proxy_protocol_for_pool.py | 6 +- ...56_add_a_column_busy_in_table_amphora_health.py | 4 +- ...4a4ceed6_add_l7policy_action_redirect_prefix.py | 10 +- ..._add_cert_expiration__infor_in_amphora_table.py | 8 +- .../62816c232310_fix_migration_for_mysql_5_7.py | 2 +- ...6742ca1b27c2_add_l7policy_redirect_http_code.py | 4 +- ...ac558d7fc21_add_prometheus_listener_protocol.py | 6 +- .../versions/6ffc710674ef_spares_pool_table.py | 4 +- ..._http_host_head_inject_for_http_health_check.py | 8 +- ...ae261694c_extend_pool_for_backend_ca_and_crl.py | 8 +- .../76aacf2e176c_extend_support_udp_protocol.py | 6 +- .../versions/80dba23a159f_tags_support.py | 6 +- .../82b9402e71fd_update_vip_address_size.py | 2 +- .../8ac4ed24df3a_add_availability_zone_to_lb.py | 8 +- .../versions/8b47b2546312_sctp_support.py | 4 +- ...df6c3_change_tls_container_id_length_in_sni_.py | 2 +- .../92fe9857279_create_healthmanager_table.py | 6 +- ...473976d6d_add_provisioning_status_to_objects.py | 20 +- ...extend_pool_for_support_backend_reencryption.py | 4 +- ...cd221f_add_tls_boolean_type_for_reencryption.py | 4 +- ...03669314_add_flavor_and_flavor_profile_table.py | 36 +- .../ba35e0fb88e1_add_backup_field_to_member.py | 4 +- .../bf171d0d91c3_amphora_add_cached_zone.py | 4 +- .../c761c8a71579_add_availability_zone_table.py | 30 +- .../versions/d85ca7258d21_modernize_l7rule.py | 26 +- .../da371b422669_allowed_cidr_for_listeners.py | 14 +- ...dcf88e59aae4_add_lb_algorithm_source_ip_port.py | 6 +- .../e37941b010db_add_lb_flavor_constraint.py | 22 +- ...2bda93bf_add_ping_and_tlshello_monitor_types.py | 6 +- .../e6ee84f0abf3_add_proxy_v2_pool_protocol.py | 6 +- ...72b4e5e_add_octavia_owned_vip_column_to_vip_.py | 4 +- .../f21ae3f21adc_add_client_auth_option.py | 12 +- ...a7d8a_create_amphora_build_rate_limit_tables.py | 22 +- ...d172e98c1_add_certificate_revoke_list_option.py | 4 +- octavia/db/models.py | 2 +- octavia/db/repositories.py | 6 +- octavia/distributor/drivers/driver_base.py | 2 +- octavia/distributor/drivers/noop_driver/driver.py | 2 +- octavia/hacking/checks.py | 8 +- octavia/image/drivers/noop_driver/driver.py | 2 +- octavia/image/image_base.py | 2 +- octavia/network/base.py | 2 +- .../drivers/neutron/allowed_address_pairs.py | 20 +- octavia/network/drivers/neutron/base.py | 6 +- octavia/network/drivers/noop_driver/driver.py | 2 +- octavia/policies/amphora.py | 18 +- octavia/policies/availability_zone.py | 15 +- octavia/policies/availability_zone_profile.py | 20 +- octavia/policies/base.py | 21 +- octavia/policies/flavor.py | 15 +- octavia/policies/flavor_profile.py | 15 +- octavia/policies/healthmonitor.py | 18 +- octavia/policies/l7policy.py | 18 +- octavia/policies/l7rule.py | 15 +- octavia/policies/listener.py | 21 +- octavia/policies/loadbalancer.py | 27 +- octavia/policies/member.py | 15 +- octavia/policies/pool.py | 18 +- octavia/policies/provider.py | 3 +- octavia/policies/provider_availability_zone.py | 4 +- octavia/policies/provider_flavor.py | 3 +- octavia/policies/quota.py | 18 +- octavia/statistics/stats_base.py | 2 +- .../backend/agent/api_server/test_keepalivedlvs.py | 98 +- .../backend/agent/api_server/test_server.py | 431 +- .../api/drivers/driver_agent/test_driver_agent.py | 21 +- .../api/v2/test_availability_zone_profiles.py | 27 +- .../functional/api/v2/test_availability_zones.py | 38 +- .../functional/api/v2/test_flavor_profiles.py | 39 +- .../backends/agent/api_server/test_amphora_info.py | 121 +- .../backends/agent/api_server/test_keepalived.py | 6 +- .../agent/api_server/test_keepalivedlvs.py | 20 +- .../backends/agent/api_server/test_loadbalancer.py | 128 +- .../backends/agent/api_server/test_osutils.py | 40 +- .../backends/agent/api_server/test_plug.py | 20 +- .../backends/agent/api_server/test_util.py | 36 +- .../backends/agent/test_agent_jinja_cfg.py | 13 - .../backends/health_daemon/test_health_daemon.py | 20 +- .../amphorae/backends/utils/test_haproxy_query.py | 2 +- .../unit/amphorae/backends/utils/test_interface.py | 127 +- .../amphorae/backends/utils/test_interface_file.py | 64 +- .../backends/utils/test_network_namespace.py | 10 +- .../amphorae/backends/utils/test_nftable_utils.py | 50 +- .../drivers/haproxy/test_rest_api_driver_1_0.py | 195 +- .../amphorae/drivers/health/test_heartbeat_udp.py | 16 +- .../drivers/keepalived/jinja/test_jinja_cfg.py | 4 - .../api/v2/types/test_availability_zone_profile.py | 2 +- .../unit/api/v2/types/test_availability_zones.py | 2 +- .../unit/certificates/generator/test_local.py | 10 +- .../unit/certificates/manager/test_barbican.py | 5 +- .../certificates/manager/test_barbican_legacy.py | 2 +- .../haproxy/combined_listeners/test_jinja_cfg.py | 387 +- .../common/jinja/logging/test_logging_jinja_cfg.py | 2 +- .../sample_configs/sample_configs_combined.py | 3 +- .../unit/common/tls_utils/test_cert_parser.py | 5 +- .../worker/v2/flows/test_listener_flows.py | 25 +- .../worker/v2/flows/test_load_balancer_flows.py | 10 +- .../worker/v2/tasks/test_network_tasks.py | 8 +- .../controller/worker/v2/tasks/test_retry_tasks.py | 2 +- .../controller/worker/v2/test_controller_worker.py | 57 +- .../worker/v2/test_taskflow_jobboard_driver.py | 348 + .../unit/image/drivers/noop_driver/test_driver.py | 2 +- .../unit/network/drivers/neutron/test_base.py | 2 +- .../unit/statistics/drivers/test_update_db.py | 2 +- octavia/volume/drivers/noop_driver/driver.py | 2 +- octavia/volume/volume_base.py | 2 +- ...ner-Update-for-SRIOV-VIPs-8348b7fe0c02b9c4.yaml | 4 + ...rface-is-used-for-members-adb150ece454ecff.yaml | 5 + ...itor-update-without-delay-c56240e59e15483f.yaml | 4 + ...x-failover-for-SRIOV-VIPs-e2ab193c0de5eb1d.yaml | 4 + ...failover-revert-port-leak-d9879523506c6ff3.yaml | 7 + ...nation-less-or-equal-zero-93a33f1318ea34e5.yaml | 6 + ...e-members-in-batch-update-610ffbbf949927d0.yaml | 10 + ...g-with-boolean-attributes-15df51820753a900.yaml | 5 + ...ulated-with-allowed-cidrs-ad04ccf02bf9cbbc.yaml | 7 + ...dbalancer-stuck-on-delete-da5950cf87fc8507.yaml | 5 + ...dis-sentinel-auth-and-ssl-be1888903d68922d.yaml | 13 + ...agent_server_network_file-1c9ab712d6b05016.yaml | 5 + ...ault-role-from-keepalived-c879bad3a42a6b4a.yaml | 8 + ...move-health_update_driver-56c99ec977bca245.yaml | 9 + ...move-sysvinit-and-upstart-f1655e9d0c53e5cc.yaml | 13 + .../notes/remove-use_upstart-448eaf86a7a46c54.yaml | 4 + ...r-haproxy-crash-on-reload-813859171a6ac023.yaml | 7 + releasenotes/source/2024.1.rst | 6 + releasenotes/source/conf.py | 1 - releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 121 +- releasenotes/source/zed.rst | 2 +- requirements.txt | 3 +- setup.cfg | 3 +- setup.py | 1 - specs/template.rst | 71 - specs/version0.5/amphora-driver-interface.rst | 2 - specs/version0.5/amphora-manager-interface.rst | 0 .../version0.5/housekeeping-manager-interface.rst | 0 .../custom-security-groups-for-VIP-ports.rst | 203 + specs/version15.0/rate_limiting.rst | 244 + specs/version15.0/resize.rst | 149 + tools/create_flow_docs.py | 2 +- tools/pkcs7_to_pem.py | 2 +- tox.ini | 7 +- zuul.d/jobs.yaml | 41 +- zuul.d/projects.yaml | 28 +- 346 files changed, 12312 insertions(+), 11210 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index d3acbd82..05a07261 100644 --- a/requirements.txt +++ b/requirements.txt @@ -49 +48,0 @@ octavia-lib>=3.3.0 # Apache-2.0 -simplejson>=3.13.2 # MIT @@ -55 +54 @@ Flask!=0.11,>=0.10 # BSD -cryptography>=3.0 # BSD/Apache-2.0 +cryptography>=42.0.0 # BSD/Apache-2.0
participants (1)
-
no-reply@openstack.org