We are delighted to announce the release of: octavia 4.0.0: OpenStack Octavia Scalable Load Balancer as a Service This release is part of the stein release series. The source is available from: https://git.openstack.org/cgit/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. 4.0.0 ^^^^^ Upgrade Notes ************* * To fix the issue with active/standby load balancers or single topology load balancers with members on the VIP subnet, you need to update the amphora image. Critical Issues *************** * Fixed a bug where active/standby load balancers and single topology load balancers with members on the VIP subnet may fail. An updated image is required to fix this bug. Bug Fixes ********* * Fixed an issue creating members on networks with IPv6 subnets. * Fixed an issue that prevents spare amphorae to be created. * Fixed an error when plugging the VIP on CentOS-based amphorae. * Fixed an issue where trying to set a QoS policy on a VIP while the QoS extension is disabled would bring the load balancer to ERROR. Should the QoS extension be disabled, the API will now return HTTP 400 to the user. * Fixed an issue where setting a QoS policy on the VIP would bring the load balancer to ERROR when the QoS extension is enabled. Changes in octavia 3.0.0.0rc1..4.0.0 ------------------------------------ feb640d9 Fix the amphora base port coming up 86e3eb4c Fix setting of VIP QoS policy aa06d8d1 Fix spare amphora check and creation 4ca1b681 Fix VIP plugging on CentOS-based amphorae c2afddfd Fix initialization of Barbican client dd70fec0 Fix ifup failures on member interfaces with IPv6 80bfa259 Replace openstack.org git:// URLs with https:// 1b83d56a Update UPPER_CONSTRAINTS_FILE for stable/stein 52257903 Update .gitreview for stable/stein f73fe9c0 Fix a lifecycle bug with child objects 6a6e0d24 Refactors LB delete flow and removes listener delete ae26cf9e Add a bionic test image periodic job. a205ab3e Limit spares pool to the spare_amphora_pool_size ad81ad41 Fix typo and remove useless lines in user guide 2850c847 Remove unnecessary \n from create_certificates.sh 4c0fd91d Add a prelude to the Stein release notes 8997def2 Updates Octavia to support octavia-lib 838719a0 Remove outdated/incorrect certificate advice 128d05b4 Fix updates to the provider driver guide. 44833d5d Support Host header inject for healthmonitor HTTP 1.1 health check 309ef2fb Trivial: Remove unused OCTAVIA_AMP_SUBNET_ID f941ca74 Fix health monitor exception 25fb7e4c Support L7policy redirect http code ac8e0c8f Fix an amphora driver bug for TLS client auth acf6c366 Amp driver support sni option to send the hostname to backend e0e9af3b Add boolean tls_enabled option into Pool 7aa115a5 Add 2 new fields into Pool API for support re-encryption aa7ac7ab Pool support sni cert for backend re-encryption 1f709e33 Fix parallel plug vip b6bf4198 Set octavia available in tempest config f77d7d02 L7rule support client certificate cases aa1bca02 Add new ssl header into Listener for client certificate 20509e23 Add crl-file option for certification 72b382b4 Fix the loss of access to barbican secrets ae7c87f5 Encrypt certs and keys 7a8eb3ce Add an option to the Octavia V2 listener API for client cert 0cc546a7 Add client_ca_tls_container_ref to listener API 68b86f85 Enable debug for Octavia services in grenade job 503e3949 Fix LB failover when in ERROR 2a057474 Update json module to jsonutils ca632987 Update requirements for ubuntu be552d99 Fix performance of housekeeping DB clean up ad7e6271 Fix oslo messaging connection leakage 9ce614ad Speed up pylint by using multiple cores 34edb58c Set the default retries down to 120 52ffdd16 Add amphora agent configuration update admin API 06baf6d5 Refactor the pluggin of the VIP 0f0aa021 Resolve amphora agent read timeout issue b5dda3ce Fix functional tests under Python >= 3.6 05e16a34 Fix check redirect pool for creating a fully populated load balancer. 404600e0 Cleaning up logging 5d7f10f6 Fix flavors support when using spares pool 987d1440 Fix the amphora noop driver 674f007d Add missing import octavia/opts.py 8d45d487 Fix VIP address DB storage size to support IPv6 8ec61f4f Fix a topology bug in flavors support 69f17539 Add compute flavor support to the amphora driver aa82d519 Update the amphora driver for flavor support. 5e1cdac4 Add flavor docs and releae notes 1afeeb95 Add provider driver capabilities API 0b1fe6a5 Adds flavor support to the amphora driver 15282ff9 Add flavors/flavor_profile api-ref 637009ec Add flavor, flavor_profile table and their APIs fb0bbb98 Update api-ref for tag filtering 5df9ad49 Support to filter resources by tags 06f2c6d9 Add octavia-v2-dsvm-tls-barbican check job fd3c04ec Clarify the amp_ssh_key_name configuration setting. 3745e1f5 Fix typo in doc ff1e933e Improve local hacking checks test coverage 278aa29c Fix missing print format error fe646c62 Adds a simple golang udp server b2162c39 Fix prefix for vip_ipv6 3dec4caf Fix a typo in the certificates admin guide. cb2c5fc1 Fix grenade job to clone Octavia from base branch 0d5eb67e Workaround for a dnf bug 4669ceeb diskimage-create: Support testing other image types c304b367 fix the spelling mistake word 1ce8b2bd Exit with error if DIB output dir doesn't exist 66298f9a Add amphora statistics to the admin API 0258cd13 Fixing data model to_dict() recursive function 9bb4c5c1 Set same debug log level as per DevStack local.conf ae8d6fb2 Add compute_flavor field for amphora api 49af3380 Change openstack-dev to openstack-discuss a060d540 Adds a certificates configuration guide 190a4de4 Fix v1 scenario tests gates d6218936 Tags support for lb resources 04613ac1 fix typo mistakes e43c4aec Support remote debugging with PyDev 7e8ece94 Stop Logging Amphora Cert a1af4897 demystify the calculate_network_delta unit test 50850692 Enable non-voting two node gates 3c421aa2 Transition to python 3.x primary gates 256a3f9c Prepare for new multi-node jobs b616cd5a Bring up secondary IPs on member networks e60cd189 Add auditing support to the Octavia API 75adf92e Make the CentOS 7 scenario gate non-voting f9fd702b Allow release id to be specified with fedora eea63939 Modify the doc word error fbb93979 Fix IPv6 in Active/Standby topology 1e4940f3 Fix the grenade gate 77d6f08d Correct the base class for v2 l7rules type tests c62031f9 Fix devstack plugin for /var/log/dib-build exists 5bdc67c1 Add missing ws separator between words 41365bf3 Fix a release note to call out a fix instead 0e139397 Treat null admin_state_up as False d7d3e3f5 Delete duplicate word in component-design.rst 079ab45f Update the HTTP links to HTTPS c60931f4 Add framework for octavia-status upgrade check 63b5cfc1 Fix VIP plug failure if netns directory exists fc7bbd75 Log the compute ID when nova fails f552a300 Fix possible state machine hole in failover 43e92831 Update min tox version to 2.0 95db992d Update README by adding Mailing List and Wiki URL 5bec6f70 Redirect disk-image-builder logs, make verbose 4b1c374b Fix diskimage-create README.rst 809a3836 Don't quote {posargs} in tox.ini be377afc Remove unused methods. 8923935d Add posibilities to set default timeouts 759cb759 Update docs conf.py for openstackdocstheme change e644b9fd Remove deprecated API settings feff3b47 Ensure pool object contains the listener_id if passed 79cd8515 Refactor the AAP driver to not depend on nova dd1b1be8 Increment versioning with pbr instruction 862f9f43 Fix logging error in get_current_loadbalancer_from_db df17903a Delete zombie amphorae when detected b8584a46 Add certificate configs to config reference 6d21b33c Remove deprecated parameters 9aea3501 Add API versioning to the api-ref 46adc465 Add a periodic job to build + publish diskimage for fedora 2c88c553 HTTPS HMs need the same validation path as HTTP++ a9b99d2b Fix for utils LB DM transformation function dca620ce Fix auto setup Barbican's ACL in the legacy driver. a5876147 Make disk image buildable for fedora 9b6aa47c Fix an upgrade issue for CentOS 7 amphora 62192dba Support REDIRECT_PREFIX action for L7Policy 951f018e Pass through DIB_LOCAL_ELEMENTS from localrc 7dd6f8b8 HTTPS HMs need the same validation path as HTTP d08578d8 Remove duplicate check gate jobs f15b43dd Fix the API list performance regression 78ba1970 Updates the operator docs with the new lb failover command 8e886959 Simplify keepalived lvsquery parsing for UDP 756a17ce Updates README-Vagrant.md to use OSC commands 326713c5 Gate on octavia-dsvm-base based jobs and housekeeping 92473ce2 Make health checks resilient to DB outages e943b398 Validate member address for batch update members dbad641c Fix batch update members 90ec2ae6 Support DNF package manager in diskimage-create 9d7c1429 Disable KVM at limestone (again) f13a2e65 Fix health manager performance regression 57046cf2 Raise minimum coverage to 90% f513a91d Use openstack-tox-cover template de577994 Update zuul/projects.yaml 809915c4 Validate member address for lb graph creation 06142d11 devstack: Define packages for (open)SUSE 2170cc6c Update amphora-agent to report UDP listener health 53772f53 Set some amphora driver optimizations 96b9450e Re-enable flow diagrams 2a2b308a Fix passphrase None errors aed0867d add python 3.6 unit test job 0a7eb86e switch documentation job to new PTI c8074cd1 Fix the amphora noop driver fff18807 import zuul job settings from project-config ad69363f Separate the thread pool for health and stats update 8ae5715b Temporarily remove octavia-v2-dsvm-scenario-ubuntu.bionic 798ce957 Disable KVM at OVH 97930016 Fix compat with Python >= 3.6 1ad9fd72 Allow blocking IPs from member addresses 91fae05a "Resolve" bandit issue with sha1 hashes 9f9bc963 Fix neutron "tenat_id" compatibility 1f73119b Fix Octavia for host host routes 327027c8 Imported Translations from Zanata b0210e43 Update reno for stable/rocky 100858fa Remove user_group option 4a80af04 Add the missing markup for the hyperlink title Diffstat (except docs and test files) ------------------------------------- .gitreview | 1 + README.rst | 11 +- api-ref/source/conf.py | 4 +- api-ref/source/index.rst | 2 +- api-ref/source/parameters.yaml | 351 ++++++++- api-ref/source/v2/amphora.inc | 113 ++- api-ref/source/v2/examples/amphora-config-curl | 1 + .../source/v2/examples/amphora-list-response.json | 6 +- .../source/v2/examples/amphora-show-response.json | 3 +- api-ref/source/v2/examples/amphora-show-stats-curl | 1 + .../v2/examples/amphora-show-stats-response.json | 24 + api-ref/source/v2/examples/flavor-create-curl | 1 + .../source/v2/examples/flavor-create-request.json | 8 + .../source/v2/examples/flavor-create-response.json | 9 + api-ref/source/v2/examples/flavor-delete-curl | 1 + api-ref/source/v2/examples/flavor-list-curl | 1 + .../source/v2/examples/flavor-profile-list-curl | 1 + api-ref/source/v2/examples/flavor-show-curl | 1 + .../source/v2/examples/flavor-show-response.json | 9 + api-ref/source/v2/examples/flavor-update-curl | 1 + .../source/v2/examples/flavor-update-request.json | 7 + .../source/v2/examples/flavor-update-response.json | 9 + .../source/v2/examples/flavorprofile-create-curl | 1 + .../v2/examples/flavorprofile-create-request.json | 8 + .../v2/examples/flavorprofile-create-response.json | 9 + .../source/v2/examples/flavorprofile-delete-curl | 1 + api-ref/source/v2/examples/flavorprofile-show-curl | 1 + .../v2/examples/flavorprofile-show-response.json | 9 + .../source/v2/examples/flavorprofile-update-curl | 1 + .../v2/examples/flavorprofile-update-request.json | 8 + .../v2/examples/flavorprofile-update-response.json | 9 + .../v2/examples/flavorprofiles-list-response.json | 10 + .../source/v2/examples/flavors-list-response.json | 11 + .../source/v2/examples/healthmonitor-create-curl | 2 +- .../v2/examples/healthmonitor-create-request.json | 5 +- .../v2/examples/healthmonitor-create-response.json | 5 +- .../v2/examples/healthmonitor-show-response.json | 5 +- .../source/v2/examples/healthmonitor-update-curl | 2 +- .../v2/examples/healthmonitor-update-request.json | 4 +- .../v2/examples/healthmonitor-update-response.json | 5 +- .../v2/examples/healthmonitors-list-response.json | 5 +- .../v2/examples/l7policies-list-response.json | 5 +- api-ref/source/v2/examples/l7policy-create-curl | 2 +- .../v2/examples/l7policy-create-request.json | 4 +- .../v2/examples/l7policy-create-response.json | 5 +- .../source/v2/examples/l7policy-show-response.json | 5 +- api-ref/source/v2/examples/l7policy-update-curl | 2 +- .../v2/examples/l7policy-update-request.json | 4 +- .../v2/examples/l7policy-update-response.json | 5 +- api-ref/source/v2/examples/l7rule-create-curl | 2 +- .../source/v2/examples/l7rule-create-request.json | 3 +- .../source/v2/examples/l7rule-create-response.json | 3 +- .../source/v2/examples/l7rule-show-response.json | 3 +- api-ref/source/v2/examples/l7rule-update-curl | 2 +- .../source/v2/examples/l7rule-update-request.json | 3 +- .../source/v2/examples/l7rule-update-response.json | 3 +- .../source/v2/examples/l7rules-list-response.json | 3 +- api-ref/source/v2/examples/listener-create-curl | 2 +- .../v2/examples/listener-create-request.json | 6 +- .../v2/examples/listener-create-response.json | 6 +- .../source/v2/examples/listener-show-response.json | 6 +- api-ref/source/v2/examples/listener-update-curl | 2 +- .../v2/examples/listener-update-request.json | 4 +- .../v2/examples/listener-update-response.json | 6 +- .../v2/examples/listeners-list-response.json | 6 +- .../source/v2/examples/loadbalancer-create-curl | 2 +- .../v2/examples/loadbalancer-create-request.json | 3 +- .../v2/examples/loadbalancer-create-response.json | 3 +- .../examples/loadbalancer-full-create-request.json | 6 +- .../loadbalancer-full-create-response.json | 6 +- .../v2/examples/loadbalancer-show-response.json | 3 +- .../source/v2/examples/loadbalancer-update-curl | 2 +- .../v2/examples/loadbalancer-update-request.json | 3 +- .../v2/examples/loadbalancer-update-response.json | 3 +- .../v2/examples/loadbalancers-list-response.json | 3 +- .../source/v2/examples/member-batch-update-curl | 2 +- .../v2/examples/member-batch-update-request.json | 6 +- api-ref/source/v2/examples/member-create-curl | 2 +- .../source/v2/examples/member-create-request.json | 3 +- .../source/v2/examples/member-create-response.json | 3 +- .../source/v2/examples/member-show-response.json | 3 +- api-ref/source/v2/examples/member-update-curl | 2 +- .../source/v2/examples/member-update-request.json | 3 +- .../source/v2/examples/member-update-response.json | 3 +- .../source/v2/examples/members-list-response.json | 3 +- api-ref/source/v2/examples/pool-create-curl | 2 +- .../source/v2/examples/pool-create-request.json | 7 +- .../source/v2/examples/pool-create-response.json | 7 +- api-ref/source/v2/examples/pool-show-response.json | 7 +- api-ref/source/v2/examples/pool-update-curl | 2 +- .../source/v2/examples/pool-update-request.json | 7 +- .../source/v2/examples/pool-update-response.json | 7 +- .../source/v2/examples/pools-list-response.json | 7 +- .../examples/provider-flavor-capability-show-curl | 1 + .../provider-flavor-capability-show-response.json | 8 + api-ref/source/v2/flavor.inc | 295 ++++++++ api-ref/source/v2/flavorprofile.inc | 297 ++++++++ api-ref/source/v2/general.inc | 56 ++ api-ref/source/v2/healthmonitor.inc | 20 + api-ref/source/v2/index.rst | 10 + api-ref/source/v2/l7policy.inc | 24 +- api-ref/source/v2/l7rule.inc | 6 + api-ref/source/v2/listener.inc | 110 ++- api-ref/source/v2/loadbalancer.inc | 6 + api-ref/source/v2/member.inc | 7 + api-ref/source/v2/pool.inc | 30 + api-ref/source/v2/provider.inc | 54 ++ bin/create_certificates.sh | 2 +- devstack/README.md | 2 +- devstack/contrib/new-octavia-devstack.sh | 2 +- devstack/files/rpms-suse/octavia | 3 + devstack/plugin.sh | 82 ++- devstack/samples/README-Vagrant.md | 2 +- devstack/samples/multinode/local.conf | 1 + devstack/samples/singlenode/local.conf | 1 + devstack/settings | 12 +- devstack/upgrade/settings | 2 +- diskimage-create/README.rst | 41 +- diskimage-create/diskimage-create.sh | 25 +- .../design/version0.5/component-design.rst | 2 +- .../reference/octavia-component-overview.svg | 339 +++------ elements/amphora-agent/pkg-map | 17 +- .../post-install.d/20-haproxy-tune-kernel | 1 + .../post-install.d/11-ip6-tables | 11 + etc/audit/octavia_api_audit_map.conf.sample | 32 + etc/octavia.conf | 81 +- lower-constraints.txt | 3 + octavia/amphorae/backends/agent/agent_jinja_cfg.py | 8 +- .../backends/agent/api_server/keepalived.py | 8 +- .../backends/agent/api_server/keepalivedlvs.py | 2 +- .../amphorae/backends/agent/api_server/listener.py | 1 - .../amphorae/backends/agent/api_server/osutils.py | 116 ++- octavia/amphorae/backends/agent/api_server/plug.py | 10 +- .../amphorae/backends/agent/api_server/server.py | 34 + .../api_server/templates/plug_port_ethX.conf.j2 | 6 + .../api_server/templates/plug_vip_ethX.conf.j2 | 31 +- .../api_server/templates/rh_route_ethX.conf.j2 | 2 + .../agent/templates/amphora_agent_conf.template | 4 +- .../backends/health_daemon/health_daemon.py | 12 +- .../backends/health_daemon/health_sender.py | 33 +- .../backends/health_daemon/status_message.py | 6 +- .../amphorae/backends/utils/keepalivedlvs_query.py | 93 +-- octavia/amphorae/driver_exceptions/exceptions.py | 5 + octavia/amphorae/drivers/driver_base.py | 14 +- .../amphorae/drivers/haproxy/rest_api_driver.py | 178 ++++- octavia/amphorae/drivers/health/heartbeat_udp.py | 12 +- .../amphorae/drivers/keepalived/jinja/jinja_cfg.py | 26 +- .../jinja/templates/keepalived_base.template | 11 +- .../drivers/keepalived/vrrp_rest_driver.py | 10 +- octavia/amphorae/drivers/noop_driver/driver.py | 36 +- octavia/api/app.py | 17 + octavia/api/common/pagination.py | 53 ++ octavia/api/common/types.py | 6 + octavia/api/drivers/amphora_driver/driver.py | 101 ++- .../api/drivers/amphora_driver/flavor_schema.py | 48 ++ octavia/api/drivers/data_models.py | 257 +------ octavia/api/drivers/driver_agent/__init__.py | 11 + .../api/drivers/driver_agent/driver_listener.py | 144 ++++ octavia/api/drivers/driver_agent/driver_updater.py | 174 +++++ octavia/api/drivers/driver_lib.py | 143 +--- octavia/api/drivers/exceptions.py | 143 +--- octavia/api/drivers/noop_driver/driver.py | 10 +- octavia/api/drivers/provider_base.py | 469 +----------- octavia/api/drivers/utils.py | 78 +- .../api/handlers/controller_simulator/handler.py | 2 +- octavia/api/handlers/queue/producer.py | 23 +- octavia/api/root_controller.py | 25 +- octavia/api/v1/types/l7policy.py | 3 + octavia/api/v2/controllers/__init__.py | 4 + octavia/api/v2/controllers/amphora.py | 80 +- octavia/api/v2/controllers/base.py | 91 ++- octavia/api/v2/controllers/flavor_profiles.py | 191 +++++ octavia/api/v2/controllers/flavors.py | 142 ++++ octavia/api/v2/controllers/health_monitor.py | 38 +- octavia/api/v2/controllers/l7policy.py | 18 +- octavia/api/v2/controllers/l7rule.py | 22 +- octavia/api/v2/controllers/listener.py | 269 ++++--- octavia/api/v2/controllers/load_balancer.py | 129 +++- octavia/api/v2/controllers/member.py | 21 +- octavia/api/v2/controllers/pool.py | 99 ++- octavia/api/v2/controllers/provider.py | 48 ++ octavia/api/v2/types/amphora.py | 17 + octavia/api/v2/types/flavor_profile.py | 69 ++ octavia/api/v2/types/flavors.py | 69 ++ octavia/api/v2/types/health_monitor.py | 21 + octavia/api/v2/types/l7policy.py | 15 + octavia/api/v2/types/l7rule.py | 4 + octavia/api/v2/types/listener.py | 49 +- octavia/api/v2/types/load_balancer.py | 12 +- octavia/api/v2/types/member.py | 4 + octavia/api/v2/types/pool.py | 27 +- octavia/api/v2/types/provider.py | 4 + octavia/certificates/common/auth/barbican_acl.py | 5 +- octavia/certificates/common/local.py | 13 +- octavia/certificates/generator/local.py | 3 +- octavia/certificates/manager/barbican.py | 28 + octavia/certificates/manager/barbican_legacy.py | 32 +- octavia/certificates/manager/castellan_mgr.py | 10 + octavia/certificates/manager/cert_mgr.py | 8 + octavia/certificates/manager/local.py | 29 + octavia/cmd/driver_agent.py | 84 +++ octavia/cmd/health_manager.py | 3 +- octavia/cmd/status.py | 53 ++ octavia/common/config.py | 195 +++-- octavia/common/constants.py | 366 ++++++---- octavia/common/data_models.py | 79 +- octavia/common/exceptions.py | 23 +- octavia/common/jinja/haproxy/jinja_cfg.py | 168 +++-- octavia/common/jinja/haproxy/templates/base.j2 | 4 +- .../common/jinja/haproxy/templates/haproxy.cfg.j2 | 1 - octavia/common/jinja/haproxy/templates/macros.j2 | 114 ++- octavia/common/keystone.py | 4 +- octavia/common/rpc.py | 66 ++ octavia/common/service.py | 2 + octavia/common/tls_utils/cert_parser.py | 23 +- octavia/common/utils.py | 24 +- octavia/common/validate.py | 115 ++- octavia/compute/compute_base.py | 36 + octavia/compute/drivers/noop_driver/driver.py | 41 ++ octavia/compute/drivers/nova_driver.py | 69 +- .../healthmanager/health_drivers/update_db.py | 250 ++++--- octavia/controller/healthmanager/health_manager.py | 17 +- octavia/controller/housekeeping/house_keeping.py | 89 ++- octavia/controller/queue/consumer.py | 10 +- octavia/controller/queue/endpoint.py | 12 +- octavia/controller/worker/controller_worker.py | 99 ++- octavia/controller/worker/flows/amphora_flows.py | 82 ++- .../controller/worker/flows/load_balancer_flows.py | 81 +- octavia/controller/worker/task_utils.py | 18 +- .../worker/tasks/amphora_driver_tasks.py | 39 +- octavia/controller/worker/tasks/cert_task.py | 6 +- octavia/controller/worker/tasks/compute_tasks.py | 31 +- octavia/controller/worker/tasks/database_tasks.py | 40 +- octavia/controller/worker/tasks/lifecycle_tasks.py | 2 + octavia/controller/worker/tasks/network_tasks.py | 129 +++- octavia/db/api.py | 21 + octavia/db/base_models.py | 33 +- .../versions/11e4bb2bb8ef_fix_ipv6_vip.py | 30 + .../1afc932f1ca2_l7rule_support_client_cert.py | 44 ++ .../versions/211982b05afc_add_flavor_id_to_lb.py | 32 + ...353f_add_listener_client_ca_tls_certificate_.py | 37 + .../46d914b2a5e5_seed_the_spares_pool_table.py | 47 ++ .../versions/4f65b4f91c39_amphora_add_flavor_id.py | 36 + ...4a4ceed6_add_l7policy_action_redirect_prefix.py | 49 ++ ...6742ca1b27c2_add_l7policy_redirect_http_code.py | 36 + .../versions/6ffc710674ef_spares_pool_table.py | 35 + ..._http_host_head_inject_for_http_health_check.py | 39 + ...ae261694c_extend_pool_for_backend_ca_and_crl.py | 36 + .../versions/80dba23a159f_tags_support.py | 37 + ...extend_pool_for_support_backend_reencryption.py | 35 + ...cd221f_add_tls_boolean_type_for_reencryption.py | 37 + ...03669314_add_flavor_and_flavor_profile_table.py | 53 ++ .../f21ae3f21adc_add_client_auth_option.py | 61 ++ ...d172e98c1_add_certificate_revoke_list_option.py | 36 + octavia/db/models.py | 228 ++++-- octavia/db/prepare.py | 14 +- octavia/db/repositories.py | 475 ++++++++++-- octavia/hacking/checks.py | 15 - octavia/network/base.py | 40 +- .../drivers/neutron/allowed_address_pairs.py | 237 +++--- octavia/network/drivers/neutron/base.py | 5 + octavia/network/drivers/noop_driver/driver.py | 112 ++- octavia/opts.py | 7 +- octavia/policies/__init__.py | 6 + octavia/policies/amphora.py | 15 + octavia/policies/flavor.py | 61 ++ octavia/policies/flavor_profile.py | 62 ++ octavia/policies/provider_flavor.py | 31 + .../backend/agent/api_server/test_keepalivedlvs.py | 8 +- .../backend/agent/api_server/test_server.py | 386 +++++----- .../functional/api/v2/test_flavor_profiles.py | 530 ++++++++++++++ .../agent/api_server/test_haproxy_compatibility.py | 6 +- .../agent/api_server/test_keepalivedlvs.py | 1 + .../backends/agent/api_server/test_osutils.py | 128 ++++ .../backends/agent/api_server/test_plug.py | 100 ++- .../backends/agent/test_agent_jinja_cfg.py | 39 +- .../backends/health_daemon/test_health_daemon.py | 13 +- .../backends/health_daemon/test_health_sender.py | 34 + .../backends/utils/test_keepalivedlvs_query.py | 6 +- .../drivers/haproxy/test_rest_api_driver.py | 235 +++++- .../amphorae/drivers/health/test_heartbeat_udp.py | 16 +- .../drivers/keepalived/jinja/test_jinja_cfg.py | 73 +- .../drivers/keepalived/test_vrrp_rest_driver.py | 10 +- .../test_noop_amphoraloadbalancer_driver.py | 17 +- .../drivers/amphora_driver/test_amphora_driver.py | 78 +- .../unit/api/drivers/driver_agent/__init__.py | 11 + .../drivers/driver_agent/test_driver_listener.py | 171 +++++ .../drivers/driver_agent/test_driver_updater.py | 295 ++++++++ .../unit/api/drivers/test_provider_noop_driver.py | 7 +- .../unit/api/v2/types/test_flavor_profiles.py | 69 ++ .../unit/api/v2/types/test_health_monitors.py | 22 +- .../certificates/common/auth/test_barbican_acl.py | 4 +- .../unit/certificates/generator/test_local.py | 45 ++ .../unit/certificates/manager/test_barbican.py | 45 +- .../certificates/manager/test_barbican_legacy.py | 20 +- .../certificates/manager/test_castellan_mgr.py | 49 ++ .../unit/common/jinja/haproxy/test_jinja_cfg.py | 352 ++++++++- .../unit/common/sample_configs/sample_certs.py | 57 ++ .../unit/common/sample_configs/sample_configs.py | 256 +++++-- .../unit/common/tls_utils/test_cert_parser.py | 19 +- .../compute/drivers/test_compute_noop_driver.py | 19 + .../healthmanager/health_drivers/test_update_db.py | 453 ++++++++---- .../healthmanager/test_health_manager.py | 13 +- .../controller/housekeeping/test_house_keeping.py | 38 +- .../controller/worker/flows/test_amphora_flows.py | 52 +- .../worker/flows/test_load_balancer_flows.py | 41 +- .../worker/tasks/test_amphora_driver_tasks.py | 65 +- .../unit/controller/worker/tasks/test_cert_task.py | 14 +- .../controller/worker/tasks/test_compute_tasks.py | 14 +- .../controller/worker/tasks/test_database_tasks.py | 70 +- .../controller/worker/tasks/test_network_tasks.py | 122 +++- .../controller/worker/test_controller_worker.py | 98 ++- .../drivers/neutron/test_allowed_address_pairs.py | 287 ++++---- .../network/drivers/test_network_noop_driver.py | 27 + .../legacy/grenade-devstack-octavia/post.yaml | 4 + playbooks/legacy/grenade-devstack-octavia/run.yaml | 4 +- .../post.yaml | 15 - .../run.yaml | 69 -- .../legacy/octavia-v1-dsvm-py3x-scenario/post.yaml | 4 + .../legacy/octavia-v1-dsvm-py3x-scenario/run.yaml | 3 +- .../post.yaml | 15 - .../octavia-v1-dsvm-scenario-kvm-centos.7/run.yaml | 83 --- .../legacy/octavia-v1-dsvm-scenario-lxd/post.yaml | 15 - .../legacy/octavia-v1-dsvm-scenario-lxd/run.yaml | 81 -- .../octavia-v1-dsvm-scenario-multinode/post.yaml | 15 - .../octavia-v1-dsvm-scenario-multinode/run.yaml | 67 -- .../legacy/octavia-v1-dsvm-scenario/post.yaml | 4 + playbooks/legacy/octavia-v1-dsvm-scenario/run.yaml | 3 +- .../notes/Add-Stein-Prelude-7d8290b803db8c56.yaml | 23 + ...lient-auth-CA-certificate-6863f64a2fe70a6f.yaml | 5 + .../Add-TLS-client-auth-CRL-d0722fd175bc2f51.yaml | 10 + ...ent-auth-header-insertion-039debc7e6f06474.yaml | 7 + ...dd-TLS-client-auth-option-15d868d1009fc130.yaml | 4 + ...a-agent-config-update-API-298b31e6c0cd715c.yaml | 12 + .../Add-pool-CA-and-CRL-bb467b17188ed022.yaml | 5 + .../Add-pool-tls-client-auth-01d3b8acfb78ab14.yaml | 5 + .../Add-pool-tls_enabled-f189677c0e13c447.yaml | 5 + ...TLS-client-authentication-22e3ae29aaf7fc26.yaml | 6 + ...Fix-ifup-on-member-create-5b405d98eb036718.yaml | 4 + .../notes/Octavia-flavors-2a96424c3d65c224.yaml | 6 + ...b-transition-driver-agent-aeefef114898b8f5.yaml | 18 + ...y-defaults-to-prod-values-f3cc10d16baa716a.yaml | 25 + .../UDP-listener-health-d8fdf64a32e022d4.yaml | 6 + .../add-amphora-flavor-field-54d42da0381ced7f.yaml | 5 + .../add-api-tag-filtering-8bfb3c3b7cfd6afe.yaml | 4 + ...compute-flavor-capability-ab202697a7fbdc3d.yaml | 8 + ...d-upgrade-check-framework-cc440f3f440ba6d2.yaml | 11 + .../notes/add_api_audit-58dc16bff517eae7.yaml | 5 + .../notes/add_tag_support-4735534f4066b9af.yaml | 12 + .../notes/bug-1797130-8c9bfa50d9b6c955.yaml | 11 + .../documentation-migration-f72c6a1703a105b7.yaml | 4 +- .../encrypt-certs-and-keys-5175d7704d8df3ce.yaml | 15 + .../fix-API-list-performance-3b121deffbc3ce4a.yaml | 5 + .../notes/fix-IPv6-vip-079a3285f78686ee.yaml | 10 + ...y-populated-load-balancer-ae57ffae5c017ac3.yaml | 5 + .../notes/fix-eth1-ip-flush-7fadda4bdca387b5.yaml | 11 + ...ix-health-check-db-outage-279b0bc1d0039312.yaml | 6 + ...usekeeping-db-performance-b0d0fcfcce696314.yaml | 6 + .../fix-lb-error-failover-2c17afaa20c0c97f.yaml | 5 + ...saging-connection-leakage-aeb79474105ac116.yaml | 5 + ...mphora-check-and-creation-3adf939b45610155.yaml | 4 + .../fix-vip-plug-centos-74c2fe7099964b08.yaml | 3 + ...-policy-extension-enabled-3e16e1c23a7d7ae5.yaml | 7 + .../fix_active_standby_ipv6-0317d5cd9e5d50e5.yaml | 10 + .../lb-delete-flow-refactor-cfb1bc621bbe92b4.yaml | 5 + .../notes/lb_flow_amp_vip-a83db5d84e17a26a.yaml | 6 + ...er-amphora-statistics-api-5479605c7f3adb12.yaml | 4 + .../remove-bbq-unset-acl-e680020de6a9ad3d.yaml | 6 + ...ve-deprecated-api-configs-3f5652f71610b05e.yaml | 23 + .../remove_user_group_option-56ba749d0064a394.yaml | 5 + .../notes/reserved-ips-7ef3a63ab0b6b28a.yaml | 6 + ...l-for-health-stats-update-c263c844075a7721.yaml | 10 + ...stop-logging-amphora-cert-2e188675699d60d5.yaml | 7 + ...th-check-with-host-header-e2cf1f2a98d4114f.yaml | 5 + ...pport-redirect-http-code-1c2e87ef7fda12e97.yaml | 6 + .../support-redirect-prefix-7f8b289aee04fe99.yaml | 3 + .../support-remote-debugging-fcb52df4a59c1467.yaml | 4 + .../notes/zombie_amp-1b435eb66643dab8.yaml | 12 + releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 302 +++++++- releasenotes/source/rocky.rst | 6 + requirements.txt | 5 + setup.cfg | 5 +- specs/version1.0/flavors.rst | 4 +- test-requirements.txt | 1 - tools/coding-checks.sh | 2 +- tox.ini | 24 +- zuul.d/jobs.yaml | 88 +-- zuul.d/projects.yaml | 97 +-- 454 files changed, 19109 insertions(+), 4925 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index a067bd05..fb25bd33 100644 --- a/requirements.txt +++ b/requirements.txt @@ -27,0 +28,2 @@ oslo.reports>=1.18.0 # Apache-2.0 +oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 +oslo.upgradecheck>=0.1.0 # Apache-2.0 @@ -43,0 +46,3 @@ distro>=1.2.0 # Apache-2.0 +jsonschema>=2.6.0 # MIT +debtcollector>=1.19.0 # Apache-2.0 +octavia-lib>=1.1.1 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index e28d2d92..bc3205fa 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -11 +10,0 @@ oslotest>=3.2.0 # Apache-2.0 -oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org