[release-announce] octavia 4.0.0 (stein)

no-reply at openstack.org no-reply at openstack.org
Wed Apr 10 12:30:15 UTC 2019


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






More information about the Release-announce mailing list