- job:
    name: neutron-tempest-plugin-base
    parent: devstack-tempest
    abstract: true
    description: |
      Perform setup common to all Neutron tempest tests
    roles:
      - zuul: openstack/devstack
    required-projects:
      - openstack/neutron
      - openstack/neutron-tempest-plugin
      - openstack/tempest
    vars:
      tempest_concurrency: 3  # out of 4
      tox_envlist: all
      # NOTE(slaweq): in case of some tests, which requires advanced image,
      # default test timeout set to 1200 seconds may be not enough if job is
      # run on slow node
      tempest_test_timeout: 2400
      tempest_test_regex: "\
          (^neutron_tempest_plugin.api)|\
          (^neutron_tempest_plugin.scenario)|\
          (^tempest.api.compute.servers.test_attach_interfaces)|\
          (^tempest.api.compute.servers.test_multiple_create)"
      devstack_localrc:
        USE_PYTHON3: true
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}"
        PHYSICAL_NETWORK: public
        IMAGE_URLS: https://cloud-images.ubuntu.com/minimal/releases/focal/release/ubuntu-20.04-minimal-cloudimg-amd64.img
        CIRROS_VERSION: 0.5.1
        DEFAULT_IMAGE_NAME: cirros-0.5.1-x86_64-uec
        DEFAULT_IMAGE_FILE_NAME: cirros-0.5.1-x86_64-uec.tar.gz
        ADVANCED_IMAGE_NAME: ubuntu-20.04-minimal-cloudimg-amd64
        ADVANCED_INSTANCE_TYPE: ntp_image_256M
        ADVANCED_INSTANCE_USER: ubuntu
        CUSTOMIZE_IMAGE: true
        BUILD_TIMEOUT: 784
        # TODO(lucasagomes): Re-enable MOD_WSGI after
        # https://bugs.launchpad.net/neutron/+bug/1912359 is implemented
        NEUTRON_DEPLOY_MOD_WSGI: false
        # TODO(ralonsoh): remove OVN_BUILD_FROM_SOURCE once the OS packages
        # include at least OVN v20.12.0.
        OVN_BUILD_FROM_SOURCE: True
        OVN_BRANCH: "v21.03.0"
        OVS_BRANCH: "8dc1733eaea866dce033b3c44853e1b09bf59fc7"
      devstack_plugins:
        neutron: https://opendev.org/openstack/neutron.git
        neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
      tempest_plugins:
        - neutron-tempest-plugin
      # TODO(slaweq): find a way to put this list of extensions in
      # neutron repository and keep it different per branch,
      # then it could be removed from here
      network_api_extensions_common: &api_extensions
        - address-group
        - address-scope
        - agent
        - allowed-address-pairs
        - auto-allocated-topology
        - availability_zone
        - binding
        - default-subnetpools
        - dhcp_agent_scheduler
        - dns-domain-ports
        - dns-integration
        - dns-integration-domain-keywords
        - empty-string-filtering
        - expose-port-forwarding-in-fip
        - expose-l3-conntrack-helper
        - ext-gw-mode
        - external-net
        - extra_dhcp_opt
        - extraroute
        - extraroute-atomic
        - filter-validation
        - fip-port-details
        - flavors
        - floating-ip-port-forwarding
        - floatingip-pools
        - ip-substring-filtering
        - l3-conntrack-helper
        - l3-flavors
        - l3-ha
        - l3_agent_scheduler
        - metering
        - multi-provider
        - net-mtu
        - net-mtu-writable
        - network-ip-availability
        - network_availability_zone
        - network-segment-range
        - pagination
        - port-device-profile
        - port-resource-request
        - port-resource-request-groups
        - port-mac-address-regenerate
        - port-security
        - port-security-groups-filtering
        - project-id
        - provider
        - qos
        - qos-fip
        - quotas
        - quota_details
        - rbac-address-group
        - rbac-address-scope
        - rbac-policies
        - rbac-security-groups
        - rbac-subnetpool
        - router
        - router_availability_zone
        - security-group
        - security-groups-remote-address-group
        - segment
        - service-type
        - sorting
        - standard-attr-description
        - standard-attr-revisions
        - standard-attr-segment
        - standard-attr-tag
        - standard-attr-timestamp
        - stateful-security-group
        - subnet_allocation
        - subnet-dns-publish-fixed-ip
        - subnet-service-types
        - subnetpool-prefix-ops
        - tag-ports-during-bulk-creation
        - trunk
        - trunk-details
        - uplink-status-propagation
      devstack_services:
        tempest: true
        neutron-dns: true
        neutron-log: true
        neutron-qos: true
        neutron-segments: true
        neutron-trunk: true
        neutron-uplink-status-propagation: true
        neutron-network-segment-range: true
        neutron-port-forwarding: true
        neutron-conntrack-helper: true
        neutron-tag-ports-during-bulk-creation: true
        br-ex-tcpdump: true
        br-int-flows: true
        # Cinder services
        c-api: false
        c-bak: false
        c-sch: false
        c-vol: false
        cinder: false
        # We don't need Swift to be run in the Neutron jobs
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
      devstack_local_conf:
        post-config:
          $NEUTRON_CONF:
            QUOTAS:
              quota_router: 100
              quota_floatingip: 500
              quota_security_group: 150
              quota_security_group_rule: 1000
          # NOTE(slaweq): We can get rid of this hardcoded absolute path when
          # devstack-tempest job will be switched to use lib/neutron instead of
          # lib/neutron-legacy
          /$NEUTRON_CORE_PLUGIN_CONF:
            ml2:
              type_drivers: flat,geneve,vlan,gre,local,vxlan
            ml2_type_vlan:
              network_vlan_ranges: foo:1:10
            ml2_type_vxlan:
              vni_ranges: 1:2000
            ml2_type_gre:
              tunnel_id_ranges: 1:1000
            network_log:
              local_output_log_base: /tmp/test_log.log
          $NEUTRON_L3_CONF:
            agent:
              availability_zone: nova
          $NEUTRON_DHCP_CONF:
            agent:
              availability_zone: nova
        test-config:
          $TEMPEST_CONFIG:
            neutron_plugin_options:
              provider_vlans: foo,
              agent_availability_zone: nova
              image_is_advanced: true
              available_type_drivers: flat,geneve,vlan,gre,local,vxlan
              provider_net_base_segm_id: 1
    irrelevant-files:
      - ^(test-|)requirements.txt$
      - lower-constraints.txt
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^.*\.conf\.sample$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^tools/.*$
      - ^tox.ini$
      - ^neutron/agent/.*$
      - ^neutron/privileged/.*$
      - ^neutron_lib/tests/unit/.*$
      - ^neutron_tempest_plugin/scenario/.*$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml

- job:
    name: neutron-tempest-plugin-openvswitch
    parent: neutron-tempest-plugin-base-nested-switch
    timeout: 10000
    vars:
      devstack_services:
        # Disable OVN services
        br-ex-tcpdump: false
        br-int-flows: false
        ovn-controller: false
        ovn-northd: false
        ovs-vswitchd: false
        ovsdb-server: false
        q-ovn-metadata-agent: false
        # Neutron services
        neutron-local-ip-static: true
        q-agt: true
        q-dhcp: true
        q-l3: true
        q-meta: true
        q-metering: true
      network_api_extensions_openvswitch:
        - local_ip
        - qos-bw-minimum-ingress
      network_available_features: &available_features
        - ipv6_metadata
      devstack_localrc:
        Q_AGENT: openvswitch
        Q_ML2_TENANT_NETWORK_TYPE: vxlan
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_openvswitch) | join(',') }}"
      devstack_local_conf:
        post-config:
          $NEUTRON_CONF:
            DEFAULT:
              enable_dvr: false
              l3_ha: true
          # NOTE(slaweq): We can get rid of this hardcoded absolute path when
          # devstack-tempest job will be switched to use lib/neutron instead of
          # lib/neutron-legacy
          /$NEUTRON_CORE_PLUGIN_CONF:
            agent:
              tunnel_types: vxlan,gre
            ovs:
              tunnel_bridge: br-tun
              bridge_mappings: public:br-ex
              openflow_processed_per_port: True
        test-config:
          $TEMPEST_CONFIG:
            network-feature-enabled:
              available_features: "{{ network_available_features | join(',') }}"
            neutron_plugin_options:
              available_type_drivers: flat,vlan,local,vxlan
              firewall_driver: openvswitch
    irrelevant-files: &openvswitch-scenario-irrelevant-files
      - ^(test-|)requirements.txt$
      - lower-constraints.txt
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^.*\.conf\.sample$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^tools/.*$
      - ^tox.ini$
      - ^neutron/agent/ovn/.*$
      - ^neutron/agent/windows/.*$
      - ^neutron/plugins/ml2/drivers/linuxbridge/.*$
      - ^neutron/plugins/ml2/drivers/macvtap/.*$
      - ^neutron/plugins/ml2/drivers/mech_sriov/.*$
      - ^neutron/plugins/ml2/drivers/ovn/.*$
      - ^neutron/services/ovn_l3/.*$
      - ^neutron/services/logapi/drivers/ovn/.*$
      - ^neutron/services/portforwarding/drivers/ovn/.*$
      - ^neutron/services/qos/drivers/linuxbridge/.*$
      - ^neutron/services/qos/drivers/ovn/.*$
      - ^neutron/services/trunk/drivers/linuxbridge/.*$
      - ^neutron/services/trunk/drivers/ovn/.*$
      - ^neutron/cmd/ovn/.*$
      - ^neutron/common/ovn/.*$
      - ^neutron_tempest_plugin/api/test_.*$
      - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
      - ^neutron_tempest_plugin/services/bgp/.*$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml

- job:
    name: neutron-tempest-plugin-openvswitch-iptables_hybrid
    parent: neutron-tempest-plugin-base-nested-switch
    timeout: 10000
    vars:
      devstack_services:
        # Disable OVN services
        br-ex-tcpdump: false
        br-int-flows: false
        ovn-controller: false
        ovn-northd: false
        ovs-vswitchd: false
        ovsdb-server: false
        q-ovn-metadata-agent: false
        # Neutron services
        neutron-local-ip: true
        q-agt: true
        q-dhcp: true
        q-l3: true
        q-meta: true
        q-metering: true
      network_api_extensions_openvswitch:
        - local_ip
        - logging
      network_available_features: *available_features
      # TODO(slaweq): remove trunks subport_connectivity test from blacklist
      # when bug https://bugs.launchpad.net/neutron/+bug/1838760 will be fixed
      # TODO(akatz): remove established tcp session verification test when the
      # bug https://bugzilla.redhat.com/show_bug.cgi?id=1965036 will be fixed
      tempest_exclude_regex: "\
          (^neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_subport_connectivity)|\
          (^neutron_tempest_plugin.scenario.test_security_groups.NetworkSecGroupTest.test_established_tcp_session_after_re_attachinging_sg)"
      devstack_localrc:
        Q_AGENT: openvswitch
        Q_ML2_TENANT_NETWORK_TYPE: vxlan
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_openvswitch) | join(',') }}"
      devstack_local_conf:
        post-config:
          $NEUTRON_CONF:
            DEFAULT:
              enable_dvr: false
              l3_ha: true
          # NOTE(slaweq): We can get rid of this hardcoded absolute path when
          # devstack-tempest job will be switched to use lib/neutron instead of
          # lib/neutron-legacy
          /$NEUTRON_CORE_PLUGIN_CONF:
            agent:
              tunnel_types: vxlan,gre
            ovs:
              tunnel_bridge: br-tun
              bridge_mappings: public:br-ex
            securitygroup:
              firewall_driver: iptables_hybrid
        test-config:
          $TEMPEST_CONFIG:
            network-feature-enabled:
              available_features: "{{ network_available_features | join(',') }}"
            neutron_plugin_options:
              available_type_drivers: flat,vlan,local,vxlan
              firewall_driver: iptables_hybrid
    irrelevant-files:
      - ^(test-|)requirements.txt$
      - lower-constraints.txt
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^.*\.conf\.sample$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^tools/.*$
      - ^tox.ini$
      - ^neutron/agent/linux/openvswitch_firewall/.*$
      - ^neutron/agent/ovn/.*$
      - ^neutron/agent/windows/.*$
      - ^neutron/plugins/ml2/drivers/linuxbridge/.*$
      - ^neutron/plugins/ml2/drivers/macvtap/.*$
      - ^neutron/plugins/ml2/drivers/mech_sriov/.*$
      - ^neutron/plugins/ml2/drivers/ovn/.*$
      - ^neutron/services/ovn_l3/.*$
      - ^neutron/services/logapi/drivers/ovn/.*$
      - ^neutron/services/portforwarding/drivers/ovn/.*$
      - ^neutron/services/qos/drivers/linuxbridge/.*$
      - ^neutron/services/qos/drivers/ovn/.*$
      - ^neutron/services/trunk/drivers/linuxbridge/.*$
      - ^neutron/services/trunk/drivers/ovn/.*$
      - ^neutron/cmd/ovn/.*$
      - ^neutron/common/ovn/.*$
      - ^neutron_tempest_plugin/api/test_.*$
      - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
      - ^neutron_tempest_plugin/services/bgp/.*$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml

# TODO(slaweq): remove that job's definition as soon as new job
# "neutron-tempest-plugin-openvswitch-iptables_hybrid" will be used in the
# neutron repo as a parent for a
# "neutron-ovs-tempest-plugin-scenario-iptables_hybrid-nftables" job
- job:
    name: neutron-tempest-plugin-scenario-openvswitch-iptables_hybrid
    parent: neutron-tempest-plugin-openvswitch-iptables_hybrid

- job:
    name: neutron-tempest-plugin-openvswitch-distributed-dhcp
    parent: neutron-tempest-plugin-openvswitch
    timeout: 10000
    vars:
      # NOTE: DHCP extra options and dns services aren't supported with
      # distributed DHCP L2 agent extension
      tempest_exclude_regex: "\
          (^neutron_tempest_plugin.scenario.test_dhcp.DHCPTest.test_extra_dhcp_opts)|\
          (^neutron_tempest_plugin.scenario.test_internal_dns.InternalDNSTest.test_dns_domain_and_name)"
      devstack_services:
        q-dhcp: false
        q-distributed-dhcp: true

- job:
    name: neutron-tempest-plugin-openvswitch-iptables_hybrid-distributed-dhcp
    parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
    timeout: 10000
    vars:
      # NOTE: DHCP extra options and dns services aren't supported with
      # distributed DHCP L2 agent extension
      tempest_exclude_regex: "\
          (^neutron_tempest_plugin.scenario.test_dhcp.DHCPTest.test_extra_dhcp_opts)|\
          (^neutron_tempest_plugin.scenario.test_internal_dns.InternalDNSTest.test_dns_domain_and_name)"
      devstack_services:
        q-dhcp: false
        q-distributed-dhcp: true

- job:
    name: neutron-tempest-plugin-linuxbridge
    parent: neutron-tempest-plugin-base-nested-switch
    timeout: 10000
    roles:
      - zuul: openstack/neutron
    pre-run: playbooks/linuxbridge-scenario-pre-run.yaml
    vars:
      devstack_services:
        # Disable OVN services
        br-ex-tcpdump: false
        br-int-flows: false
        ovn-controller: false
        ovn-northd: false
        ovs-vswitchd: false
        ovsdb-server: false
        q-ovn-metadata-agent: false
        # Neutron services
        q-agt: true
        q-dhcp: true
        q-l3: true
        q-meta: true
        q-metering: true
        # SG logging isn't supported by linuxbridge backend
        neutron-log: false
      network_api_extensions_linuxbridge:
        - vlan-transparent
      network_available_features: *available_features
      # TODO(eolivare): remove VLAN Transparency tests from blacklist
      # when bug https://bugs.launchpad.net/neutron/+bug/1907548 will be fixed
      # TODO(slaweq): remove
      # test_established_tcp_session_after_re_attachinging_sg from the
      # exclude regex when bug https://bugs.launchpad.net/neutron/+bug/1936911
      # will be fixed
      # TODO(slaweq) remove test_floatingip_port_details from the exclude
      # regex when bug https://bugs.launchpad.net/neutron/+bug/1799790 will be
      # fixed
      tempest_exclude_regex: "\
          (^neutron_tempest_plugin.scenario.test_vlan_transparency.VlanTransparencyTest)|\
          (^neutron_tempest_plugin.scenario.test_security_groups.NetworkSecGroupTest.test_established_tcp_session_after_re_attachinging_sg)|\
          (^neutron_tempest_plugin.scenario.test_floatingip.FloatingIPPortDetailsTest.test_floatingip_port_details)"
      devstack_localrc:
        Q_AGENT: linuxbridge
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_linuxbridge) | join(',') }}"
        Q_ML2_TENANT_NETWORK_TYPE: vxlan
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch,linuxbridge
      devstack_local_conf:
        post-config:
          $NEUTRON_CONF:
            DEFAULT:
              enable_dvr: false
              vlan_transparent: true
              l3_ha: true
            AGENT:
              debug_iptables_rules: true
          # NOTE(slaweq): We can get rid of this hardcoded absolute path when
          # devstack-tempest job will be switched to use lib/neutron instead of
          # lib/neutron-legacy
          /$NEUTRON_CORE_PLUGIN_CONF:
            ml2:
              type_drivers: flat,vlan,local,vxlan
              mechanism_drivers: linuxbridge
        test-config:
          $TEMPEST_CONFIG:
            network-feature-enabled:
              available_features: "{{ network_available_features | join(',') }}"
            neutron_plugin_options:
              available_type_drivers: flat,vlan,local,vxlan
              q_agent: linuxbridge
              firewall_driver: iptables
    irrelevant-files:
      - ^(test-|)requirements.txt$
      - lower-constraints.txt
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^.*\.conf\.sample$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^tools/.*$
      - ^tox.ini$
      - ^neutron/agent/linux/openvswitch_firewall/.*$
      - ^neutron/agent/ovn/.*$
      - ^neutron/agent/windows/.*$
      - ^neutron/plugins/ml2/drivers/openvswitch/.*$
      - ^neutron/plugins/ml2/drivers/macvtap/.*$
      - ^neutron/plugins/ml2/drivers/mech_sriov/.*$
      - ^neutron/plugins/ml2/drivers/ovn/.*$
      - ^neutron/services/ovn_l3/.*$
      - ^neutron/services/logapi/drivers/openvswitch/.*$
      - ^neutron/services/logapi/drivers/ovn/.*$
      - ^neutron/services/portforwarding/drivers/ovn/.*$
      - ^neutron/services/qos/drivers/openvswitch/.*$
      - ^neutron/services/qos/drivers/ovn/.*$
      - ^neutron/services/trunk/drivers/openvswitch/.*$
      - ^neutron/services/trunk/drivers/ovn/.*$
      - ^neutron/cmd/ovn/.*$
      - ^neutron/common/ovn/.*$
      - ^neutron_tempest_plugin/api/test_.*$
      - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
      - ^neutron_tempest_plugin/services/bgp/.*$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml

# TODO(slaweq): remove that job's definition as soon as new job
# "neutron-tempest-plugin-linuxbridge" will be used in the neutron repo as
# a parent for a "neutron-linuxbridge-tempest-plugin-scenario-nftables" job
- job:
    name: neutron-tempest-plugin-scenario-linuxbridge
    parent: neutron-tempest-plugin-linuxbridge

- job:
    name: neutron-tempest-plugin-ovn
    parent: neutron-tempest-plugin-base-nested-switch
    timeout: 10800
    vars:
      network_api_extensions_ovn:
        - vlan-transparent
      # TODO(jlibosva): Remove the NetworkWritableMtuTest test from the list
      # once east/west fragmentation is supported in core OVN
      tempest_exclude_regex: "\
          (^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest)"
      devstack_localrc:
        Q_AGENT: ovn
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_ovn) | join(',') }}"
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger
        Q_ML2_PLUGIN_TYPE_DRIVERS: local,flat,vlan,geneve
        Q_ML2_TENANT_NETWORK_TYPE: geneve
        Q_USE_PROVIDERNET_FOR_PUBLIC: true
        # NOTE(slaweq): In the job with OVN backend we can't use Ubuntu minimal
        # image because kernel in that image don't supports MULTICAST traffic
        # thus multicast scenario test with IGMP snooping enabled would fail
        IMAGE_URLS: https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-amd64.img
        ADVANCED_IMAGE_NAME: ubuntu-18.04-server-cloudimg-amd64
        ADVANCED_INSTANCE_TYPE: ntp_image_384M
        ADVANCED_INSTANCE_USER: ubuntu
        CUSTOMIZE_IMAGE: false
        ENABLE_CHASSIS_AS_GW: true
        OVN_L3_CREATE_PUBLIC_NETWORK: true
        OVN_DBS_LOG_LEVEL: dbg
        ENABLE_TLS: True
        OVN_IGMP_SNOOPING_ENABLE: True
        # TODO(eolivare): Remove OVN_BUILD_FROM_SOURCE once vlan-transparency
        # is included in an ovn released version
        OVN_BUILD_FROM_SOURCE: True
        OVN_BRANCH: "v21.06.0"
        OVS_BRANCH: "a4b04276ab5934d087669ff2d191a23931335c87"
        OVS_SYSCONFDIR: "/usr/local/etc/openvswitch"
      devstack_services:
        br-ex-tcpdump: true
        br-int-flows: true
        q-ovn-metadata-agent: true
        ovn-controller: true
        ovn-northd: true
        ovs-vswitchd: true
        ovsdb-server: true
        q-agt: false
        q-dhcp: false
        q-l3: false
        q-meta: false
        q-metering: false
        q-qos: true
        # Cinder services
        c-api: false
        c-bak: false
        c-sch: false
        c-vol: false
        cinder: false
        s-account: false
        s-container-sync: false
        s-container: false
        s-object: false
        s-proxy: false
      devstack_local_conf:
        post-config:
          $NEUTRON_CONF:
            DEFAULT:
              enable_dvr: false
              vlan_transparent: true
          /$NEUTRON_CORE_PLUGIN_CONF:
            ml2:
              type_drivers: local,flat,vlan,geneve
        test-config:
          $TEMPEST_CONFIG:
            network-feature-enabled:
              available_features: ""
            neutron_plugin_options:
              available_type_drivers: local,flat,vlan,geneve
              is_igmp_snooping_enabled: True
              firewall_driver: ovn
      zuul_copy_output:
        '{{ devstack_base_dir }}/data/ovs': 'logs'
        '{{ devstack_base_dir }}/data/ovn': 'logs'
        '{{ devstack_log_dir }}/ovsdb-server-nb.log': 'logs'
        '{{ devstack_log_dir }}/ovsdb-server-sb.log': 'logs'
        '/var/log/ovn': 'logs'
        '/var/log/openvswitch': 'logs'
        '/var/lib/ovn': 'logs'
    irrelevant-files:
      - ^(test-|)requirements.txt$
      - lower-constraints.txt
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^.*\.conf\.sample$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^tools/.*$
      - ^tox.ini$
      - ^neutron/agent/dhcp/.*$
      - ^neutron/agent/l2/.*$
      - ^neutron/agent/l3/.*$
      - ^neutron/agent/metadata/.*$
      - ^neutron/agent/windows/.*$
      - ^neutron/agent/dhcp_agent.py
      - ^neutron/agent/l3_agent.py
      - ^neutron/agent/metadata_agent.py
      - ^neutron/agent/resource_cache.py
      - ^neutron/agent/rpc.py
      - ^neutron/agent/securitygroup_rpc.py
      - ^neutron/plugins/ml2/drivers/linuxbridge/.*$
      - ^neutron/plugins/ml2/drivers/openvswitch/.*$
      - ^neutron/plugins/ml2/drivers/macvtap/.*$
      - ^neutron/plugins/ml2/drivers/mech_sriov/.*$
      - ^neutron/services/qos/drivers/linuxbridge/.*$
      - ^neutron/services/qos/drivers/openvswitch/.*$
      - ^neutron/services/trunk/drivers/linuxbridge/.*$
      - ^neutron/services/trunk/drivers/openvswitch/.*$
      - ^neutron/scheduler/.*$
      - ^neutron_tempest_plugin/api/test_.*$
      - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
      - ^neutron_tempest_plugin/services/bgp/.*$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml

# TODO(slaweq): remove that job's definition as soon as new job
# "neutron-tempest-plugin-ovn" will be used in the neutron-lib repo as
# instead of old "neutron-tempest-plugin-api" job
- job:
    name: neutron-tempest-plugin-api
    parent: neutron-tempest-plugin-ovn

- job:
    name: neutron-tempest-plugin-dvr-multinode-scenario
    parent: tempest-multinode-full
    description: |
        Perform setup for Neutron tempest tests in multinode with DVR scenario
    roles:
      - zuul: openstack/devstack
    required-projects:
      - openstack/neutron
      - openstack/neutron-tempest-plugin
      - openstack/tempest
    pre-run: playbooks/dvr-multinode-scenario-pre-run.yaml
    voting: false
    vars:
      tempest_concurrency: 4
      tox_envlist: all
      tempest_test_regex: ^neutron_tempest_plugin\.scenario
      # NOTE(slaweq): in case of some tests, which requires advanced image,
      # default test timeout set to 1200 seconds may be not enough if job is
      # run on slow node
      tempest_test_timeout: 2400
      network_api_extensions_common: *api_extensions
      network_api_extensions_dvr:
        - dvr
      devstack_localrc:
        USE_PYTHON3: true
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_dvr) | join(',') }}"
        PHYSICAL_NETWORK: default
        CIRROS_VERSION: 0.5.1
        DEFAULT_IMAGE_NAME: cirros-0.5.1-x86_64-uec
        DEFAULT_IMAGE_FILE_NAME: cirros-0.5.1-x86_64-uec.tar.gz
        IMAGE_URLS: https://cloud-images.ubuntu.com/minimal/releases/focal/release/ubuntu-20.04-minimal-cloudimg-amd64.img
        ADVANCED_IMAGE_NAME: ubuntu-20.04-minimal-cloudimg-amd64
        ADVANCED_INSTANCE_TYPE: ntp_image_256M
        ADVANCED_INSTANCE_USER: ubuntu
        CUSTOMIZE_IMAGE: true
        BUILD_TIMEOUT: 784
        Q_AGENT: openvswitch
        Q_ML2_TENANT_NETWORK_TYPE: vxlan
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
      devstack_plugins:
        neutron: https://opendev.org/openstack/neutron.git
        neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
      tempest_plugins:
        - neutron-tempest-plugin
      devstack_services:
        tls-proxy: true
        tempest: true
        # Disable OVN services
        br-ex-tcpdump: false
        br-int-flows: false
        ovn-controller: false
        ovn-northd: false
        ovs-vswitchd: false
        ovsdb-server: false
        q-ovn-metadata-agent: false
        # Neutron services
        q-agt: true
        q-dhcp: true
        q-l3: true
        q-meta: true
        q-metering: true
        neutron-dns: true
        neutron-qos: true
        neutron-segments: true
        neutron-trunk: true
        neutron-log: true
        neutron-port-forwarding: true
        # Cinder services
        c-api: false
        c-bak: false
        c-sch: false
        c-vol: false
        cinder: false
        # We don't need Swift to be run in the Neutron jobs
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
      devstack_local_conf:
        post-config:
          $NEUTRON_CONF:
            quotas:
              quota_router: 100
              quota_floatingip: 500
              quota_security_group: 100
              quota_security_group_rule: 1000
            DEFAULT:
              router_distributed: True
          # NOTE(slaweq): We can get rid of this hardcoded absolute path when
          # devstack-tempest job will be switched to use lib/neutron instead of
          # lib/neutron-legacy
          "/$NEUTRON_CORE_PLUGIN_CONF":
            ml2:
              type_drivers: flat,geneve,vlan,gre,local,vxlan
              mechanism_drivers: openvswitch,l2population
            ml2_type_vlan:
              network_vlan_ranges: foo:1:10
            ml2_type_vxlan:
              vni_ranges: 1:2000
            ml2_type_gre:
              tunnel_id_ranges: 1:1000
            agent:
              enable_distributed_routing: True
              l2_population: True
              tunnel_types: vxlan,gre
            ovs:
              tunnel_bridge: br-tun
              bridge_mappings: public:br-ex
          $NEUTRON_L3_CONF:
            DEFAULT:
              agent_mode: dvr_snat
            agent:
              availability_zone: nova
          $NEUTRON_DHCP_CONF:
            agent:
              availability_zone: nova
          "/etc/neutron/api-paste.ini":
            "composite:neutronapi_v2_0":
              use: "call:neutron.auth:pipeline_factory"
              noauth: "cors request_id catch_errors osprofiler extensions neutronapiapp_v2_0"
              keystone: "cors request_id catch_errors osprofiler authtoken keystonecontext extensions neutronapiapp_v2_0"
        test-config:
          $TEMPEST_CONFIG:
            network-feature-enabled:
              available_features: *available_features
            neutron_plugin_options:
              provider_vlans: foo,
              agent_availability_zone: nova
              image_is_advanced: true
              available_type_drivers: flat,geneve,vlan,gre,local,vxlan
              l3_agent_mode: dvr_snat
              firewall_driver: openvswitch
    group-vars:
      subnode:
        devstack_services:
          tls-proxy: true
          br-ex-tcpdump: false
          br-int-flows: false
          # Disable OVN services
          ovn-controller: false
          ovn-northd: false
          ovs-vswitchd: false
          ovsdb-server: false
          q-ovn-metadata-agent: false
          # Neutron services
          q-agt: true
          q-l3: true
          q-meta: true
          neutron-qos: true
          neutron-trunk: true
          neutron-log: true
          neutron-port-forwarding: true
          # Cinder services
          c-bak: false
          c-vol: false
          # We don't need Swift to be run in the Neutron jobs
          s-account: false
          s-container: false
          s-object: false
          s-proxy: false
        devstack_localrc:
          USE_PYTHON3: true
          Q_AGENT: openvswitch
          Q_ML2_TENANT_NETWORK_TYPE: vxlan
          Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
        devstack_local_conf:
          post-config:
            $NEUTRON_CONF:
              DEFAULT:
                router_distributed: True
            # NOTE(slaweq): We can get rid of this hardcoded absolute path when
            # devstack-tempest job will be switched to use lib/neutron instead of
            # lib/neutron-legacy
            "/$NEUTRON_CORE_PLUGIN_CONF":
              agent:
                enable_distributed_routing: True
                l2_population: True
                tunnel_types: vxlan,gre
              ovs:
                tunnel_bridge: br-tun
                bridge_mappings: public:br-ex
            $NEUTRON_L3_CONF:
              DEFAULT:
                agent_mode: dvr_snat
              agent:
                availability_zone: nova
    irrelevant-files: *openvswitch-scenario-irrelevant-files

- job:
    name: neutron-tempest-plugin-designate-scenario
    parent: neutron-tempest-plugin-base-nested-switch
    description: Neutron designate integration scenario
    required-projects:
      - openstack/designate
      - openstack/designate-dashboard
      - openstack/designate-tempest-plugin
    timeout: 3600
    vars:
      network_api_extensions_common: *api_extensions
      devstack_localrc:
        DESIGNATE_BACKEND_DRIVER: bind9
        # In this job advanced image is not needed, so it's name should be
        # empty
        ADVANCED_IMAGE_NAME: ""
        NETWORK_API_EXTENSIONS: "{{ network_api_extensions_common | join(',') }}"
      devstack_plugins:
        designate: https://opendev.org/openstack/designate.git
      devstack_services:
        cinder: false
        designate: true
      tempest_plugins:
        - designate-tempest-plugin
        - neutron-tempest-plugin
      tempest_test_regex: ^neutron_tempest_plugin\.scenario\.test_dns_integration
    irrelevant-files:
      - ^(test-|)requirements.txt$
      - lower-constraints.txt
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^.*\.conf\.sample$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^tools/.*$
      - ^tox.ini$
      - ^neutron/agent/.*$
      - ^neutron/cmd/.*$
      - ^neutron/privileged/.*$
      - ^neutron/plugins/ml2/drivers/.*$
      - ^neutron/scheduler/.*$
      - ^neutron/services/(?!externaldns).*$
      - ^neutron_tempest_plugin/api/test_.*$
      - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
      - ^neutron_tempest_plugin/services/bgp/.*$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml

- job:
    name: neutron-tempest-plugin-sfc
    parent: neutron-tempest-plugin-base
    timeout: 10800
    required-projects:
      - openstack/networking-sfc
      - openstack/neutron
      - openstack/neutron-tempest-plugin
      - openstack/tempest
    vars:
      devstack_services:
        # Disable OVN services
        br-ex-tcpdump: false
        br-int-flows: false
        ovn-controller: false
        ovn-northd: false
        ovs-vswitchd: false
        ovsdb-server: false
        q-ovn-metadata-agent: false
        # Enable Neutron services that are not used by OVN
        q-agt: true
        q-dhcp: true
        q-l3: true
        q-meta: true
        q-metering: true
      tempest_test_regex: ^neutron_tempest_plugin\.sfc
      devstack_plugins:
        networking-sfc: https://opendev.org/openstack/networking-sfc
        neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin
      network_api_extensions_sfc:
        - flow_classifier
        - sfc
      devstack_localrc:
        Q_AGENT: openvswitch
        Q_ML2_TENANT_NETWORK_TYPE: vxlan
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_sfc) | join(',') }}"
      # TODO(bcafarel): tests still fail from time to time in parallel
      # https://bugs.launchpad.net/neutron/+bug/1851500
      # https://bugs.launchpad.net/networking-sfc/+bug/1660366
      tempest_concurrency: 1
    irrelevant-files:
      - ^(test-|)requirements.txt$
      - lower-constraints.txt
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^.*\.conf\.sample$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^neutron_tempest_plugin/api/test_.*$
      - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|tap_as_a_service|vpnaas).*$
      - ^neutron_tempest_plugin/services/bgp/.*$
      - ^tools/.*$
      - ^tox.ini$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml

- job:
    name: neutron-tempest-plugin-bgpvpn-bagpipe
    parent: neutron-tempest-plugin-base
    required-projects:
      - openstack/networking-bagpipe
      - openstack/networking-bgpvpn
    vars:
      devstack_services:
        # Disable OVN services
        br-ex-tcpdump: false
        br-int-flows: false
        ovn-controller: false
        ovn-northd: false
        ovs-vswitchd: false
        ovsdb-server: false
        q-ovn-metadata-agent: false
        # Enable Neutron services that are not used by OVN
        q-agt: true
        q-dhcp: true
        q-l3: true
        q-meta: true
        q-metering: true
      tempest_test_regex: ^neutron_tempest_plugin\.bgpvpn
      network_api_extensions_bgpvpn:
        - bgpvpn
        - bgpvpn-routes-control
      devstack_localrc:
        Q_AGENT: openvswitch
        Q_ML2_TENANT_NETWORK_TYPE: vxlan
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
        NETWORKING_BGPVPN_DRIVER: "BGPVPN:BaGPipe:networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe_v2.BaGPipeBGPVPNDriver:default"
        BAGPIPE_DATAPLANE_DRIVER_IPVPN: "ovs"
        BAGPIPE_BGP_PEERS: "-"
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_bgpvpn) | join(',') }}"
      devstack_plugins:
        networking-bgpvpn: https://git.openstack.org/openstack/networking-bgpvpn
        networking-bagpipe: https://git.openstack.org/openstack/networking-bagpipe
    irrelevant-files:
      - ^(test-|)requirements.txt$
      - lower-constraints.txt
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^.*\.conf\.sample$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^neutron_tempest_plugin/api/test_.*$
      - ^neutron_tempest_plugin/(fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
      - ^neutron_tempest_plugin/services/bgp/.*$
      - ^tools/.*$
      - ^tox.ini$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml

- job:
    name: neutron-tempest-plugin-dynamic-routing
    parent: neutron-tempest-plugin-base
    description: |
      Perform setup common to all Neutron dynamic routing tempest tests
    required-projects:
      - openstack/neutron
      - openstack/neutron-dynamic-routing
      - openstack/os-ken
      - openstack/tempest
    pre-run: playbooks/dynamic-routing-pre-run.yaml
    vars:
      devstack_plugins:
        neutron-dynamic-routing: https://opendev.org/openstack/neutron-dynamic-routing
        neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin
      network_api_extensions_bgp:
        - bgp
        - bgp_dragent_scheduler
        - bgp_4byte_asn
      devstack_localrc:
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_bgp) | join(',') }}"
        Q_AGENT: openvswitch
        Q_ML2_TENANT_NETWORK_TYPE: vxlan
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
      devstack_services:
        # Disable OVN services
        br-ex-tcpdump: false
        br-int-flows: false
        ovn-controller: false
        ovn-northd: false
        ovs-vswitchd: false
        ovsdb-server: false
        q-ovn-metadata-agent: false
        # Neutron services
        q-agt: true
        q-dhcp: true
        q-meta: true
        q-metering: true
        q-l3: true
        neutron-dr: true
        neutron-dr-agent: true
      tempest_concurrency: 1
      tempest_test_regex: ^neutron_tempest_plugin\.neutron_dynamic_routing
    irrelevant-files:
      - ^(test-|)requirements.txt$
      - lower-constraints.txt
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^.*\.conf\.sample$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^neutron_tempest_plugin/api/test_.*$
      - ^neutron_tempest_plugin/(bgpvpn|fwaas|sfc|tap_as_a_service|vpnaas).*$
      - ^tools/.*$
      - ^tox.ini$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml

- job:
    name: neutron-tempest-plugin-fwaas
    parent: neutron-tempest-plugin-base
    timeout: 10800
    required-projects:
      - openstack/devstack-gate
      - openstack/neutron-fwaas
      - openstack/neutron
      - openstack/neutron-tempest-plugin
      - openstack/tempest
    vars:
      tempest_concurrency: 4
      tempest_test_regex: ^neutron_tempest_plugin\.fwaas
      devstack_plugins:
        neutron-fwaas: https://opendev.org/openstack/neutron-fwaas.git
        neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
      network_api_extensions_fwaas:
        - fwaas_v2
      devstack_localrc:
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_fwaas) | join(',') }}"
        Q_AGENT: openvswitch
        Q_ML2_TENANT_NETWORK_TYPE: vxlan
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
      devstack_services:
        # Disable OVN services
        br-ex-tcpdump: false
        br-int-flows: false
        ovn-controller: false
        ovn-northd: false
        q-ovn-metadata-agent: false
        # Neutron services
        q-agt: true
        q-dhcp: true
        q-meta: true
        q-metering: true
        q-l3: true
        neutron-log: false
    irrelevant-files:
      - ^(test-|)requirements.txt$
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^.*\.conf\.sample$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^neutron_tempest_plugin/api/test_.*$
      - ^neutron_tempest_plugin/(bgpvpn|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
      - ^neutron_tempest_plugin/services/bgp/.*$
      - ^tools/.*$
      - ^tox.ini$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml

- job:
    name: neutron-tempest-plugin-vpnaas
    parent: neutron-tempest-plugin-base
    timeout: 3900
    required-projects:
      - openstack/neutron
      - openstack/neutron-vpnaas
      - openstack/neutron-tempest-plugin
      - openstack/tempest
    vars:
      tempest_test_regex: ^neutron_tempest_plugin\.vpnaas
      devstack_plugins:
        neutron-vpnaas: https://opendev.org/openstack/neutron-vpnaas.git
        neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
      network_api_extensions_common: *api_extensions
      network_api_extensions_vpnaas:
        - vpnaas
      devstack_localrc:
        IPSEC_PACKAGE: strongswan
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_vpnaas) | join(',') }}"
        Q_AGENT: openvswitch
        Q_ML2_TENANT_NETWORK_TYPE: vxlan
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
      devstack_services:
        # Disable OVN services
        br-ex-tcpdump: false
        br-int-flows: false
        ovn-controller: false
        ovn-northd: false
        ovs-vswitchd: false
        ovsdb-server: false
        q-ovn-metadata-agent: false
        # Neutron services
        q-agt: true
        q-dhcp: true
        q-meta: true
        q-metering: true
        q-l3: true
    irrelevant-files:
      - ^(test-|)requirements.txt$
      - lower-constraints.txt
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^.*\.conf\.sample$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^neutron_tempest_plugin/api/test_.*$
      - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service).*$
      - ^neutron_tempest_plugin/services/bgp/.*$
      - ^tools/.*$
      - ^tox.ini$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml

- job:
    name: neutron-tempest-plugin-tap-as-a-service
    parent: neutron-tempest-plugin-base
    description: |
      Perform setup common to all tap-as-a-service tempest tests
    roles:
      - zuul: openstack/devstack
    required-projects:
      - openstack/devstack-gate
      - openstack/neutron
      - openstack/neutron-tempest-plugin
      - openstack/tap-as-a-service
      - openstack/tempest
    vars:
      tempest_test_regex: ^neutron_tempest_plugin\.tap_as_a_service
      tox_envlist: all
      network_api_extensions_tempest:
        - taas
        - taas-vlan-filter
      devstack_localrc:
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}"
        IMAGE_URLS: https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-amd64.img
        ADVANCED_IMAGE_NAME: ubuntu-18.04-server-cloudimg-amd64
        ADVANCED_INSTANCE_TYPE: ntp_image_384M
        ADVANCED_INSTANCE_USER: ubuntu
        CUSTOMIZE_IMAGE: false
        BUILD_TIMEOUT: 784
        Q_AGENT: openvswitch
        Q_ML2_TENANT_NETWORK_TYPE: vxlan,vlan
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
      devstack_local_conf:
        post-config:
          /$NEUTRON_CORE_PLUGIN_CONF:
            AGENT:
              tunnel_types: vxlan
            ml2_type_vlan:
              network_vlan_ranges: public
        test-config:
          $TEMPEST_CONFIG:
            neutron_plugin_options:
              image_is_advanced: true
              advanced_image_flavor_ref: d1
            taas:
              provider_physical_network: public
              provider_segmentation_id: 100
            image_feature_enabled:
              api_v2: true
      devstack_plugins:
        neutron: git://opendev.org/openstack/neutron.git
        neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
        tap-as-a-service: git://opendev.org/openstack/tap-as-a-service.git
      devstack_services:
        # Disable OVN services
        ovn-controller: false
        ovn-northd: false
        ovs-vswitchd: false
        ovsdb-server: false
        q-ovn-metadata-agent: false
        # Enable Neutron services that are not used by OVN
        q-agt: true
        q-dhcp: true
        q-l3: true
        q-meta: true
        q-metering: true
        br-ex-tcpdump: true
        br-int-flows: true
        base: false
        key: true
        mysql: true
        rabbit: true
        g-api: true
        g-reg: true
        n-api: true
        n-cond: true
        n-cpu: true
        n-crt: true
        n-sch: true
        placement-api: true
        n-api-meta: true
        q-svc: true
        quantum: true
        taas: true
        taas_openvswitch_agent: true
        tempest: true
        dstat: true
    irrelevant-files:
      - ^(test-|)requirements.txt$
      - lower-constraints.txt
      - ^releasenotes/.*$
      - ^doc/.*$
      - ^.*\.conf\.sample$
      - ^setup.cfg$
      - ^.*\.rst$
      - ^neutron/locale/.*$
      - ^neutron/tests/unit/.*$
      - ^neutron/tests/fullstack/.*
      - ^neutron/tests/functional/.*
      - ^neutron_tempest_plugin/api/test_.*$
      - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|vpnaas).*$
      - ^neutron_tempest_plugin/services/bgp/.*$
      - ^tools/.*$
      - ^tox.ini$
      - ^rally-jobs/.*$
      - ^vagrant/.*$
      - ^zuul.d/(?!(project)).*\.yaml
