- job: name: neutron-tempest-plugin parent: devstack-tempest abstract: true description: | Perform setup common to all Neutron tempest tests roles: - zuul: openstack-dev/devstack required-projects: - openstack-infra/devstack-gate - openstack/neutron - openstack/neutron-tempest-plugin - openstack/tempest vars: tempest_concurrency: 4 tox_envlist: all network_api_extensions_common: &api_extensions_master - address-scope - agent - allowed-address-pairs - auto-allocated-topology - availability_zone - binding - default-subnetpools - dhcp_agent_scheduler - dns-domain-ports - dns-integration - empty-string-filtering - ext-gw-mode - external-net - extra_dhcp_opt - extraroute - filter-validation - fip-port-details - flavors - floatingip-pools - ip-substring-filtering - l3-flavors - l3-ha - l3_agent_scheduler - logging - metering - multi-provider - net-mtu - net-mtu-writable - network-ip-availability - network_availability_zone - network-segment-range - pagination - port-resource-request - port-mac-address-regenerate - port-security - port-security-groups-filtering - project-id - provider - qos - qos-bw-minimum-ingress - qos-fip - quotas - quota_details - rbac-policies - rbac-security-groups - router - router_availability_zone - security-group - segment - service-type - sorting - standard-attr-description - standard-attr-revisions - standard-attr-segment - standard-attr-tag - standard-attr-timestamp - subnet_allocation - trunk - trunk-details - uplink-status-propagation network_api_extensions_tempest: - dvr devstack_localrc: USE_PYTHON3: true TEMPEST_PLUGINS: /opt/stack/neutron-tempest-plugin NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}" devstack_plugins: neutron: git://git.openstack.org/openstack/neutron.git neutron-tempest-plugin: git://git.openstack.org/openstack/neutron-tempest-plugin.git devstack_services: tls-proxy: false tempest: true neutron-dns: true neutron-qos: true neutron-segments: true neutron-trunk: true neutron-uplink-status-propagation: true neutron-network-segment-range: true devstack_local_conf: post-config: $NEUTRON_CONF: QUOTAS: quota_router: 100 quota_floatingip: 500 quota_security_group: 100 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 $NEUTRON_L3_CONF: 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: 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: &tempest-irrelevant-files - ^(test-|)requirements.txt$ - ^releasenotes/.*$ - ^doc/.*$ - ^setup.cfg$ - ^.*\.rst$ - ^neutron/locale/.*$ - ^neutron/tests/unit/.*$ - ^tools/.*$ - ^tox.ini$ - job: name: neutron-tempest-plugin-api parent: neutron-tempest-plugin vars: tempest_test_regex: ^neutron_tempest_plugin\.api devstack_services: neutron-log: true devstack_local_conf: post-config: # 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: gre,vxlan network_log: local_output_log_base: /tmp/test_log.log - job: name: neutron-tempest-plugin-api-queens nodeset: openstack-single-node-xenial parent: neutron-tempest-plugin-api override-checkout: stable/queens vars: branch_override: stable/queens # 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_queens - address-scope - agent - allowed-address-pairs - auto-allocated-topology - availability_zone - binding - default-subnetpools - dhcp_agent_scheduler - dns-domain-ports - dns-integration - ext-gw-mode - external-net - extra_dhcp_opt - extraroute - flavors - ip-substring-filtering - l3-flavors - l3-ha - l3_agent_scheduler - logging - metering - multi-provider - net-mtu - net-mtu-writable - network-ip-availability - network_availability_zone - pagination - port-security - project-id - provider - qos - qos-fip - quotas - quota_details - rbac-policies - router - router_availability_zone - security-group - segment - service-type - sorting - standard-attr-description - standard-attr-revisions - standard-attr-timestamp - standard-attr-tag - subnet_allocation - trunk - trunk-details network_api_extensions_tempest: - dvr devstack_localrc: USE_PYTHON3: false NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}" - job: name: neutron-tempest-plugin-api-rocky nodeset: openstack-single-node-xenial parent: neutron-tempest-plugin-api override-checkout: stable/rocky vars: branch_override: stable/rocky # 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_rocky - address-scope - agent - allowed-address-pairs - auto-allocated-topology - availability_zone - binding - default-subnetpools - dhcp_agent_scheduler - dns-domain-ports - dns-integration - empty-string-filtering - ext-gw-mode - external-net - extra_dhcp_opt - extraroute - fip-port-details - flavors - ip-substring-filtering - l3-flavors - l3-ha - l3_agent_scheduler - logging - metering - multi-provider - net-mtu - net-mtu-writable - network-ip-availability - network_availability_zone - pagination - port-mac-address-regenerate - port-security - port-security-groups-filtering - project-id - provider - qos - qos-fip - quotas - quota_details - rbac-policies - router - router_availability_zone - security-group - segment - service-type - sorting - standard-attr-description - standard-attr-revisions - standard-attr-segment - standard-attr-timestamp - standard-attr-tag - subnet_allocation - trunk - trunk-details network_api_extensions_tempest: - dvr devstack_localrc: USE_PYTHON3: false NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}" - job: name: neutron-tempest-plugin-scenario parent: neutron-tempest-plugin abstract: true description: | Perform setup common to all tempest scenario test jobs. vars: tempest_test_regex: ^neutron_tempest_plugin\.scenario devstack_localrc: PHYSICAL_NETWORK: default DOWNLOAD_DEFAULT_IMAGES: false IMAGE_URLS: "http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-i386-disk.img,http://cloud-images.ubuntu.com/releases/16.04/release-20180622/ubuntu-16.04-server-cloudimg-amd64-disk1.img" DEFAULT_IMAGE_NAME: cirros-0.3.4-i386-disk ADVANCED_IMAGE_NAME: ubuntu-16.04-server-cloudimg-amd64-disk1 ADVANCED_INSTANCE_TYPE: ds512M ADVANCED_INSTANCE_USER: ubuntu BUILD_TIMEOUT: 784 devstack_services: cinder: true - job: name: neutron-tempest-plugin-scenario-linuxbridge parent: neutron-tempest-plugin-scenario timeout: 10000 vars: network_api_extensions: *api_extensions_master devstack_localrc: Q_AGENT: linuxbridge NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: post-config: $NEUTRON_CONF: DEFAULT: enable_dvr: false 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 test-config: $TEMPEST_CONFIG: neutron_plugin_options: available_type_drivers: flat,vlan,local,vxlan q_agent: linuxbridge - job: name: neutron-tempest-plugin-scenario-linuxbridge-queens parent: neutron-tempest-plugin-scenario-linuxbridge nodeset: openstack-single-node-xenial override-checkout: stable/queens vars: branch_override: stable/queens network_api_extensions: *api_extensions_queens devstack_localrc: USE_PYTHON3: false NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: # NOTE: ignores linux bridge's trunk delete on bound port test # for queens branch (as https://review.openstack.org/#/c/605589/ # fix will not apply for queens branch) $TEMPEST_CONFIG: neutron_plugin_options: q_agent: None - job: name: neutron-tempest-plugin-scenario-linuxbridge-rocky parent: neutron-tempest-plugin-scenario-linuxbridge nodeset: openstack-single-node-xenial override-checkout: stable/rocky vars: branch_override: stable/rocky network_api_extensions: *api_extensions_rocky devstack_localrc: USE_PYTHON3: false NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}" devstack_local_conf: test-config: # NOTE: ignores linux bridge's trunk delete on bound port test # for rocky branch (as https://review.openstack.org/#/c/605589/ # fix will not apply for rocky branch) $TEMPEST_CONFIG: neutron_plugin_options: q_agent: None - 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-dev/devstack required-projects: - openstack-infra/devstack-gate - 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 network_api_extensions_common: *api_extensions_master network_api_extensions_dvr: - dvr devstack_localrc: USE_PYTHON3: true TEMPEST_PLUGINS: /opt/stack/neutron-tempest-plugin NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_dvr) | join(',') }}" PHYSICAL_NETWORK: default DOWNLOAD_DEFAULT_IMAGES: false IMAGE_URLS: "http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-i386-disk.img,http://cloud-images.ubuntu.com/releases/16.04/release-20180622/ubuntu-16.04-server-cloudimg-amd64-disk1.img" DEFAULT_IMAGE_NAME: cirros-0.3.4-i386-disk ADVANCED_IMAGE_NAME: ubuntu-16.04-server-cloudimg-amd64-disk1 ADVANCED_INSTANCE_TYPE: ds512M ADVANCED_INSTANCE_USER: ubuntu BUILD_TIMEOUT: 784 devstack_plugins: neutron: git://git.openstack.org/openstack/neutron.git neutron-tempest-plugin: git://git.openstack.org/openstack/neutron-tempest-plugin.git devstack_services: tls-proxy: false tempest: true neutron-dns: true neutron-qos: true neutron-segments: true neutron-trunk: true neutron-log: true cinder: true 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: 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 group-vars: subnode: devstack_services: tls-proxy: false q-agt: true q-l3: true q-meta: true neutron-qos: true neutron-trunk: true neutron-log: true 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: *tempest-irrelevant-files - job: name: neutron-tempest-plugin-dvr-multinode-scenario-queens parent: neutron-tempest-plugin-dvr-multinode-scenario nodeset: openstack-two-node-xenial override-checkout: stable/queens vars: branch_override: stable/queens devstack_localrc: USE_PYTHON3: false - job: name: neutron-tempest-plugin-dvr-multinode-scenario-rocky parent: neutron-tempest-plugin-dvr-multinode-scenario nodeset: openstack-two-node-xenial override-checkout: stable/rocky vars: branch_override: stable/rocky devstack_localrc: USE_PYTHON3: false - job: name: neutron-tempest-plugin-designate-scenario parent: neutron-tempest-plugin-scenario description: Neutron designate integration scenario required-projects: - openstack/designate - openstack/designate-dashboard - openstack/designate-tempest-plugin timeout: 3600 vars: devstack_localrc: TEMPEST_PLUGINS: '"/opt/stack/designate-tempest-plugin /opt/stack/neutron-tempest-plugin"' DESIGNATE_BACKEND_DRIVER: bind9 DOWNLOAD_DEFAULT_IMAGES: false IMAGE_URLS: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-i386-disk.img, # In this job advanced image is not needed, so it's name should be # empty ADVANCED_IMAGE_NAME: "" devstack_plugins: designate: git://git.openstack.org/openstack/designate.git devstack_services: cinder: false designate: true tempest_test_regex: ^neutron_tempest_plugin\.scenario\.test_dns_integration irrelevant-files: *tempest-irrelevant-files - job: name: neutron-tempest-plugin-designate-scenario-queens parent: neutron-tempest-plugin-designate-scenario nodeset: openstack-single-node-xenial override-checkout: stable/queens vars: branch_override: stable/queens devstack_localrc: USE_PYTHON3: false - job: name: neutron-tempest-plugin-designate-scenario-rocky parent: neutron-tempest-plugin-designate-scenario nodeset: openstack-single-node-xenial override-checkout: stable/rocky vars: branch_override: stable/rocky devstack_localrc: USE_PYTHON3: false - project-template: name: neutron-tempest-plugin-jobs check: jobs: - neutron-tempest-plugin-api - neutron-tempest-plugin-designate-scenario - neutron-tempest-plugin-dvr-multinode-scenario - neutron-tempest-plugin-scenario-linuxbridge - build-openstack-sphinx-docs gate: jobs: - neutron-tempest-plugin-api - neutron-tempest-plugin-scenario-linuxbridge - build-openstack-sphinx-docs - project-template: name: neutron-tempest-plugin-jobs-queens check: jobs: - neutron-tempest-plugin-api-queens - neutron-tempest-plugin-designate-scenario-queens - neutron-tempest-plugin-dvr-multinode-scenario-queens - neutron-tempest-plugin-scenario-linuxbridge-queens gate: jobs: - neutron-tempest-plugin-api-queens - project-template: name: neutron-tempest-plugin-jobs-rocky check: jobs: - neutron-tempest-plugin-api-rocky - neutron-tempest-plugin-designate-scenario-rocky - neutron-tempest-plugin-dvr-multinode-scenario-rocky - neutron-tempest-plugin-scenario-linuxbridge-rocky gate: jobs: - neutron-tempest-plugin-api-rocky - project: templates: - neutron-tempest-plugin-jobs - neutron-tempest-plugin-jobs-queens - neutron-tempest-plugin-jobs-rocky - check-requirements - tempest-plugin-jobs - release-notes-jobs-python3