We are glad to announce the release of: networking-ovn 6.0.0: OpenStack Neutron integration with OVN This release is part of the stein release series. The source is available from: https://git.openstack.org/cgit/openstack/networking-ovn Download the package from: https://pypi.org/project/networking-ovn Please report issues through: https://bugs.launchpad.net/networking-ovn/+bugs For more details, please see below. Changes in networking-ovn 5.0.0..6.0.0 -------------------------------------- c7a1e81 DevStack: Make ovsdb-server listen on 6640 ced812b tox: Reuse envdirs a1ed9bb Start running bandit security analyser b45bd33 Follow the new PTI for document build 1af53f3 Fix pep8 E117 warnings 4885376 Adopt hacking 1.1.0 a7fe469 Fix all H904 pep8 failures 68e33f5 Unified name of patcher c0b7d7b consume UnorderedList from neutron-lib 812f58a Add implementation of VIP Port Creation in OVN 9298572 Trivial: Fix typo in the zuul template name 6ea0301 Switch default functional tests to Python3 7e5c8a1 Switch released jobs to OVS 2.11 5cbfbe6 Use vhost user client mode, instead of server c373b58 Fix PEP8 CI breakage 09e4fdd Bump appdirs to 1.4.3 in lower-constraints.txt f7a234a Support ports belonging to Neutron DHCP agents (ii) 8721ca9 Run TripleO scenario003 in gate pipeline e89a8a2 Add support for Member Batch Update e263b90 add python 3.7 unit test job 1bc3990 Change TripleO job to run against scenario 3 ef5e9d3 Add 'unknown' to the address list if the port's port security is disabled a61907e Fix unbound "mac" variable 39fe6c7 Improve error handling for ChassisMetadataAgentEvent bb00daf Maintenance: Re-create the metadata port abc68fb Refactor Devstack Plugin for OVN Octavia Provider Driver c9d6820 Migrate from Octavia to Octavia-Lib b6a9d3d Make networking-ovn-migration-mtu output less confusing 9ee16bf Increase nb_cfg when needed only (reducing the # of transactions) 445c6cb Add extra validation and update the migration guide 5d23fba stop using common db mixin 10ff672 Fix instances of events as strings instead of tuples dd53505 Target proper Chassis events for agent liveness d0d06a8 Fix ovn-extras.yaml check on ovn_migration.sh c6c2c5e Fix downtime bug during migration 00d919d Make ovn_migration.sh generate-inventory reference the right next step 2cf88a4 Disable oooq jobs on migration or other irrelevant 8bc54e2 Make sure all mapped bridges are properly cleaned up 20e17d5 Remove only non-alive agents during migration 78dcb18 ovn-metadata-agent: bind haproxy to 169.254.169.254 319ec6f metadata-agent: Remove 'ovs_integration_bridge' option 4057826 Revert "Switch to stestr" ba3f4d3 TrivialFix: Fix wrong config option in docs 523b957 remove noqa use of neutron.db.api 3624a35 Do not waste CI resources on changes to migration/* ed5f25b Add IPv6 default route to OVN Logical Router d22cc2a Add support for VLAN type networks in networking-ovn 5970a9b Add missing ws seperator between words b88b361 Fix missing print format error b2a38c2 Fix Ansible lint errors 5755d24 TrivialFix : Verify Listener Protocol a5573aa use neutron-lib for common exceptions 29d07be Functional: Workaround database failures b713ad3 Switch to stestr 6c4c3c9 Functional: Do not install postgres by default c82a1a6 Documentation for Octavia's OVN Driver eb1d017 Add Sample file for OVN LB Provider Driver 0cdd7ad functional: Use different IP addresses for every fake chassis 649c7d7 functional: Do not inherit from SqlTestCaseLight ebeee37 update project for zuul v3 41fa7e8 Migrate OvnWorker to a separate location 3e5d921 Metadata agent: fetch ovn-bridge from OVSDB and not from config 9b8d157 Add "irrelevant-files" section to the rally job definition fcf776f Change openstack-dev to openstack-discuss 34264c1 Update mailinglist 8c7fe0f Add blueprints link in user documents d28495f Support ports belonging to Neutron DHCP agents 2eed611 Remove tripleo newton and ocata jobs c2a98b3 Pre-cleanup migration resources and fix validation 9fc6b5d Extend ml2 plugin to notify nova of port status 545d098 Add support for global DHCP options with OVN DHCP. 4ea6513 Fix neutron resource cleanup after ml2/ovs migration 8798518 Migration document update. 5181f11 Clean MAC_Binding entries when (dis)associating a FIP 8451f92 Add a periodic job for Fedora 28 605ad27 Fix Tempest and Unit tests e8ec6b5 CI: Remove ovsdbapp-src tempest job definition acad34a Migrate tempest jobs to zuul v3 native c6a5543 Update min tox version to 2.0 b5642d9 Fix revision number race condition with attaching router interfaces 18e566c Fix update_port() SubnetNotFound race conditional 599b6c5 ir plugin: Fix issues related to migration-tool package and OVN image preparation bbba70c fix tox python3 overrides 09bc91f Clean up: Remove unused ovsdb commands ccb663c Bump the OS_TEST_TIMEOUT for functional tests 032872d Add support for UDP protocols in Octavia OVN Driver 6c1ee31 Functional: Allow some time for propagating the healthcheck values d658e44 migration: workaround ovs-vswitchd bug during migration 74a46ad Removing leftovers from subnet Port Groups 6e18b71 Members should not be created without Subnets 10336e4 Add support for Octavia Driver: Cascade Delete 8a819ae Increment versioning with pbr instruction 062a05a Fix: agent_alive() KeyError problem ebd5b06 Fix ovn db sync tool to support Port Groups 91ff4b7 devstack: fix sample config files to correctly setup gq chassis 993ef63 Fix wrong path in doc config 0db70c4 Replace Chinese quotes with English quotes 17b15f2 Attempt the migration to Port Groups from Maintenance worker c167787 Fix Pool creation workflow 7ca14f6 Make TripleO containerized job voting back again 55813ae opt in for neutron-lib consumption patches 53a1c87 Register OVN metadata as an agent 7cf92ee Use neutron's agent_down_time for agent liveness 9126c36 Re-add revision number check at update_router_port() eca6417 Default tempest jobs to Python3 7c03ec1 Fix Python3.5+ issues c284e43 Functional: Do not compile OVS kernel modules c44d075 Set/unset external MAC addresses for NAT entry when port is up/down d5a0de2 Drop subnet Port Groups d7211da Trivial: Migration to neutron-lib 52d22da Fix bug when deleting subnets with revision numbers 1581234 migration: Do some pre-flight checks before migration 3d575d1 Fix gateway's router port marked as DOWN 26551f8 Fix bug migrating ACLs to Port Groups 679f3bd add python 3.6 unit test job d362dbf switch documentation job to new PTI 7a3443d import zuul job settings from project-config 3aa53ce Set the address of the IPv6 router port in logical switch back to 'router' 91d26e6 Fix IPv6 Neigh Adv issue for router IPs 38394bc Fix the migration playbook error 4916206 Infrared plugin: Fix the permission issue with the start-ovn-migration script 66502f1 Support octavia provider driver for OVN 8cad30b Switch released jobs to OVS 2.10 f01169b Support Port Groups in networking-ovn 6e23f75 Fix API extensions names 110083e Fix TripleO guide and ovn.yaml file cb621a0 Refactor migration for a cleaner up/bottom 5eddd19 Imported Translations from Zanata 4702842 Update reno for stable/rocky 378f4ec Consolidate add/remove router interface OVS transactions 80e1872 load neutron objects using neutron-lib Diffstat (except docs and test files) ------------------------------------- .pylintrc | 15 +- README.rst | 2 +- devstack/computenode-local.conf.sample | 2 + devstack/devstackgaterc | 4 +- devstack/files/debs/networking_ovn | 1 + devstack/files/rpms/networking_ovn | 1 + devstack/lib/networking-ovn | 16 +- devstack/local.conf.sample | 21 +- devstack/ovn-octavia-provider.conf.sample | 36 + devstack/upgrade/settings | 2 +- .../contributor/design/acl_optimizations.rst | 25 - lower-constraints.txt | 16 +- migration/infrared/tripleo-ovn-migration/main.yml | 40 +- .../roles/create-resources/tasks/main.yml | 2 + .../roles/prepare-migration/tasks/main.yml | 61 +- migration/migrate-to-ovn.yml | 21 +- migration/tripleo_environment/ovn_migration.sh | 45 +- .../tripleo_environment/playbooks/migrate.yml | 30 - .../playbooks/ovn-migration.yml | 101 +- .../playbooks/post-migration.yml | 52 - .../playbooks/pre-migration.yml | 17 - .../playbooks/roles/activate-ovn/defaults/main.yml | 6 - .../clone-dataplane/templates/clone-br-int.sh.j2 | 77 - .../delete-neutron-resources/defaults/main.yml | 4 +- .../roles/delete-neutron-resources/tasks/main.yml | 14 +- .../templates/delete-neutron-resources.sh.j2 | 4 +- .../roles/{cleanup => migration}/defaults/main.yml | 5 +- .../main.yml => migration/tasks/activate-ovn.yml} | 3 +- .../tasks/cleanup-dataplane.yml} | 6 + .../tasks/clone-dataplane.yml} | 0 .../playbooks/roles/migration/tasks/main.yml | 12 + .../playbooks/roles/migration/tasks/sync-dbs.yml | 20 + .../templates/activate-ovn.sh.j2 | 8 +- .../roles/migration/templates/clone-br-int.sh.j2 | 77 + .../roles/post-migration/defaults/main.yml | 4 + .../playbooks/roles/post-migration/tasks/main.yml | 59 + .../playbooks/roles/pre-migration/tasks/main.yml | 17 + .../roles/resources/cleanup/defaults/main.yml | 4 +- .../roles/resources/cleanup/tasks/main.yml | 14 +- .../roles/resources/create/defaults/main.yml | 6 +- .../roles/resources/create/tasks/main.yml | 2 +- .../create/templates/create-resources.sh.j2 | 2 +- .../roles/resources/validate/defaults/main.yml | 4 +- .../roles/resources/validate/tasks/main.yml | 2 +- .../validate/templates/validate-resources.sh.j2 | 2 + .../playbooks/roles/sync-dbs/tasks/main.yml | 21 - .../roles/tripleo-update/defaults/main.yml | 2 - .../playbooks/roles/tripleo-update/tasks/main.yml | 2 + .../tripleo_environment/playbooks/setup-ovn.yml | 15 - networking_ovn/agent/metadata/agent.py | 77 +- networking_ovn/agent/metadata/driver.py | 21 +- networking_ovn/agent/metadata/ovsdb.py | 3 +- networking_ovn/agent/metadata/server.py | 4 +- networking_ovn/agent/stats.py | 41 + networking_ovn/cmd/eventlet/__init__.py | 4 +- networking_ovn/cmd/migration_mtu.py | 4 +- networking_ovn/common/acl.py | 111 +- networking_ovn/common/config.py | 34 + networking_ovn/common/constants.py | 22 +- networking_ovn/common/exceptions.py | 4 + networking_ovn/common/extensions.py | 7 +- networking_ovn/common/maintenance.py | 140 +- networking_ovn/common/ovn_client.py | 704 ++++++--- networking_ovn/common/utils.py | 55 +- networking_ovn/conf/agent/metadata/config.py | 3 - networking_ovn/db/revision.py | 17 +- networking_ovn/l3/l3_ovn.py | 136 +- networking_ovn/l3/l3_ovn_scheduler.py | 2 - .../locale/en_GB/LC_MESSAGES/networking_ovn.po | 11 +- networking_ovn/ml2/mech_driver.py | 236 ++- networking_ovn/octavia/__init__.py | 0 networking_ovn/octavia/ovn_driver.py | 1501 ++++++++++++++++++++ networking_ovn/ovn_db_sync.py | 353 ++++- networking_ovn/ovsdb/commands.py | 85 +- networking_ovn/ovsdb/impl_idl_ovn.py | 78 +- networking_ovn/ovsdb/ovn_api.py | 38 +- networking_ovn/ovsdb/ovsdb_monitor.py | 158 ++- networking_ovn/ovsdb/worker.py | 36 + ...ridge-from-metadata-agent-2752193adbbdeec9.yaml | 12 + .../post.yaml | 0 .../run.yaml | 7 +- .../legacy/networking-ovn-dsvm-functional/run.yaml | 3 +- .../post.yaml | 4 - .../run.yaml | 83 -- .../post.yaml | 4 - .../run.yaml | 82 -- .../post.yaml | 4 - .../run.yaml | 82 -- .../post.yaml | 4 - .../run.yaml | 82 -- .../notes/add-agent-api-4f15364d04d28941.yaml | 7 + .../ovn-global-dhcp-options-6a23e6a3619bba78.yaml | 10 + ...ovider-driver-for-octavia-d5566ae6b114d6be.yaml | 9 + ...an-tenant-network-support-debccdc48316957d.yaml | 5 + releasenotes/source/index.rst | 1 + .../source/locale/fr/LC_MESSAGES/releasenotes.po | 33 + releasenotes/source/rocky.rst | 6 + requirements.txt | 9 +- setup.cfg | 13 +- test-requirements.txt | 13 +- tools/configure_for_func_testing.sh | 41 +- tox.ini | 85 +- tripleo/ovn.yml | 3 + zuul.d/legacy-networking-ovn-jobs.yaml | 52 +- zuul.d/networkin-ovn-rally-task.yaml | 29 - zuul.d/networking-ovn-jobs.yaml | 184 +++ zuul.d/project.yaml | 52 +- 145 files changed, 7349 insertions(+), 1867 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index cb7c4e9..ff53c6f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8 +8 @@ SQLAlchemy>=1.2.0 # MIT -neutron-lib>=1.18.0 # Apache-2.0 +neutron-lib>=1.25.0 # Apache-2.0 @@ -17,0 +18,7 @@ neutron>=13.0.0.0b2 # Apache-2.0 +octavia-lib>=1.1.1 # Apache-2.0 + +# The comment below indicates this project repo is current with neutron-lib +# and should receive neutron-lib consumption patches as they are released +# in neutron-lib. It also implies the project will stay current with TC +# and infra initiatives ensuring consumption patches can land. +# neutron-lib-current diff --git a/test-requirements.txt b/test-requirements.txt index 9d41d7c..858bccf 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -5 +5 @@ -hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 +hacking>=1.1.0 # Apache-2.0 @@ -6,0 +7 @@ hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 +bandit>=1.1.0 # Apache-2.0 @@ -10,3 +10,0 @@ python-subunit>=1.0.0 # Apache-2.0/BSD -sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD -openstackdocstheme>=1.18.1 # Apache-2.0 -doc8>=0.6.0 # Apache-2.0 @@ -15 +13,5 @@ os-testr>=1.0.0 # Apache-2.0 -pylint==1.4.5 # GPLv2 +astroid==1.6.5;python_version<"3.0" # LGPLv2.1 +astroid==2.1.0;python_version>="3.0" # LGPLv2.1 +pylint==1.9.3;python_version<'3.0' # GPLv2 +pylint==2.3.0;python_version>='3.0' # GPLv2 +octavia-lib>=1.1.1 @@ -20 +21,0 @@ testtools>=2.2.0 # MIT -reno>=2.5.0 # Apache-2.0