From 5ae985bbf4c2590baa87c674dff3187638ca5e71 Mon Sep 17 00:00:00 2001 From: James Denton Date: Tue, 2 Jun 2020 22:06:39 +0000 Subject: [PATCH] Add integrated test for Ubuntu using ML2/OVN driver This patchset implements an integrated test for a new aio_metal_ovn scenario, which deploys the ML2/OVN driver and associated services. The basic server ops tempest test is also included. Expectations are that the deployed cirros VM will be reachable behind a floating IP internally for testing purposes. add testing for both bionic and focal Depends-On: https://review.opendev.org/#/c/750802 Change-Id: I1ff22f8b42bfb421a7af3ee0d6ffc3c25e7d4d91 --- .../env.d/neutron_ovn.yml.example | 16 +++++++++ .../env.d/nova_ovn.yml.example | 13 +++++++ .../tasks/prepare_aio_config.yml | 17 ++++++++++ .../user_variables_neutron_ovn.yml.j2 | 34 +++++++++++++++++++ zuul.d/jobs.yaml | 21 ++++++++++++ zuul.d/project-templates.yaml | 1 + 6 files changed, 102 insertions(+) create mode 100644 etc/openstack_deploy/env.d/neutron_ovn.yml.example create mode 100644 etc/openstack_deploy/env.d/nova_ovn.yml.example create mode 100644 tests/roles/bootstrap-host/templates/user_variables_neutron_ovn.yml.j2 diff --git a/etc/openstack_deploy/env.d/neutron_ovn.yml.example b/etc/openstack_deploy/env.d/neutron_ovn.yml.example new file mode 100644 index 0000000000..0129d7b9d3 --- /dev/null +++ b/etc/openstack_deploy/env.d/neutron_ovn.yml.example @@ -0,0 +1,16 @@ +component_skel: + neutron_ovn_controller: + belongs_to: + - neutron_all + neutron_ovn_northd: + belongs_to: + - neutron_all + +container_skel: + neutron_agents_container: + contains: {} + neutron_ovn_northd_container: + belongs_to: + - network_containers + contains: + - neutron_ovn_northd diff --git a/etc/openstack_deploy/env.d/nova_ovn.yml.example b/etc/openstack_deploy/env.d/nova_ovn.yml.example new file mode 100644 index 0000000000..95da9a0df5 --- /dev/null +++ b/etc/openstack_deploy/env.d/nova_ovn.yml.example @@ -0,0 +1,13 @@ +container_skel: + nova_compute_container: + belongs_to: + - compute_containers + - kvm-compute_containers + - lxd-compute_containers + - qemu-compute_containers + - powervm-compute_containers + contains: + - neutron_ovn_controller + - nova_compute + properties: + is_metal: true diff --git a/tests/roles/bootstrap-host/tasks/prepare_aio_config.yml b/tests/roles/bootstrap-host/tasks/prepare_aio_config.yml index b4b7b51ca2..bb9246b7f8 100644 --- a/tests/roles/bootstrap-host/tasks/prepare_aio_config.yml +++ b/tests/roles/bootstrap-host/tasks/prepare_aio_config.yml @@ -200,6 +200,9 @@ - src: user_variables_ironic.yml.j2 dest: user_variables_ironic.yml condition: "{{ 'ironic' in bootstrap_host_scenarios_expanded }}" + - src: user_variables_neutron_ovn.yml.j2 + dest: user_variables_neutron_ovn.yml + condition: "{{ 'ovn' in bootstrap_host_scenarios_expanded }}" - name: Copy modified cinder-volume env.d file for ceph scenario @@ -216,6 +219,20 @@ when: - "'calico' in bootstrap_host_scenarios_expanded" +- name: Copy modified neutron env.d for for ovn scenario + copy: + src: "{{ playbook_dir }}/../etc/openstack_deploy/env.d/neutron_ovn.yml.example" + dest: "/etc/openstack_deploy/env.d/neutron.yml" + when: + - "'ovn' in bootstrap_host_scenarios_expanded" + +- name: Copy modified nova env.d for ovn scenario + copy: + src: "{{ playbook_dir }}/../etc/openstack_deploy/env.d/nova_ovn.yml.example" + dest: "/etc/openstack_deploy/env.d/nova.yml" + when: + - "'ovn' in bootstrap_host_scenarios_expanded" + - name: Create vars override folders if we need to test them file: path: "{{ item }}" diff --git a/tests/roles/bootstrap-host/templates/user_variables_neutron_ovn.yml.j2 b/tests/roles/bootstrap-host/templates/user_variables_neutron_ovn.yml.j2 new file mode 100644 index 0000000000..f26c6a847f --- /dev/null +++ b/tests/roles/bootstrap-host/templates/user_variables_neutron_ovn.yml.j2 @@ -0,0 +1,34 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +neutron_plugin_type: ml2.ovn +neutron_local_ip: "{{ ansible_host }}" +neutron_plugin_base: + - neutron.services.ovn_l3.plugin.OVNL3RouterPlugin +neutron_ml2_drivers_type: "geneve,vlan,flat" +neutron_provider_networks: + network_types: "geneve" + network_geneve_ranges: "1:1000" + network_vlan_ranges: "vlan" + network_mappings: "vlan:br-provider,flat:br-flat" + network_interface_mappings: "br-flat:eth12" + +tempest_run_concurrency: 0 +tempest_plugins: + - name: neutron-tempest-plugin + repo: https://opendev.org/openstack/neutron-tempest-plugin + branch: master +tempest_test_whitelist: + - "neutron_tempest_plugin.api.test_networks*" + - "tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops" +tempest_private_net_provider_type: geneve +tempest_network_ping_gateway: True diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index b4b996bb09..ce788ebaad 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -230,6 +230,17 @@ nodeset: ubuntu-focal # ubuntu +- job: + name: openstack-ansible-deploy-aio_ovn_lxc-ubuntu-focal + parent: openstack-ansible-deploy-aio + nodeset: ubuntu-focal + +- job: + name: openstack-ansible-deploy-aio_metal_ovn-ubuntu-focal + parent: openstack-ansible-deploy-aio + nodeset: ubuntu-focal + +# ubuntu bionic - job: name: openstack-ansible-deploy-aio_lxc-ubuntu-bionic parent: openstack-ansible-deploy-aio @@ -245,6 +256,11 @@ parent: openstack-ansible-deploy-aio nodeset: ubuntu-bionic +- job: + name: openstack-ansible-deploy-aio_ovn_lxc-ubuntu-bionic + parent: openstack-ansible-deploy-aio + nodeset: ubuntu-bionic + - job: name: openstack-ansible-deploy-aio_proxy-ubuntu-bionic parent: openstack-ansible-deploy-aio @@ -260,6 +276,11 @@ parent: openstack-ansible-deploy-aio nodeset: ubuntu-bionic +- job: + name: openstack-ansible-deploy-aio_metal_ovn-ubuntu-bionic + parent: openstack-ansible-deploy-aio + nodeset: ubuntu-bionic + - job: name: openstack-ansible-deploy-aio_telemetry_metal-ubuntu-bionic parent: openstack-ansible-deploy-aio diff --git a/zuul.d/project-templates.yaml b/zuul.d/project-templates.yaml index 8dba335c8b..db9576de21 100644 --- a/zuul.d/project-templates.yaml +++ b/zuul.d/project-templates.yaml @@ -41,6 +41,7 @@ - openstack-ansible-deploy-aio_lxc-centos-8 - openstack-ansible-deploy-aio_lxc-debian-buster - openstack-ansible-deploy-aio_lxc-ubuntu-focal + - openstack-ansible-deploy-aio_ovn_lxc-ubuntu-focal gate: jobs: - openstack-ansible-deploy-aio_lxc-centos-8