whitebox-neutron-tempest-pl.../zuul.d/master_jobs.yaml
Rodolfo Alonso Hernandez 284370494c Add OVN FDB aging scenario tests
The new test class checks the OVN FDB aging functionality implemented
in [1][2]

[1]https://review.opendev.org/c/openstack/neutron/+/877675
[2]https://review.opendev.org/c/openstack/neutron/+/893333

Related-Bug: #OSPRH-893
Change-Id: Id449a33365c5b3579f7bbf36a5becd5ca20f3e76
2024-09-12 12:33:48 +00:00

577 lines
20 KiB
YAML

- job:
name: whitebox-neutron-tempest-plugin-base
parent: devstack-tempest
abstract: true
description: |
Perform setup common to all Neutron tempest tests
roles:
- zuul: openstack/devstack
- zuul: openstack/neutron-tempest-plugin
required-projects:
- openstack/neutron
- openstack/neutron-tempest-plugin
- x/whitebox-neutron-tempest-plugin
- openstack/tempest
vars:
tempest_concurrency: 2 # 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: "\
(^whitebox_neutron_tempest_plugin.tests.scenario)"
tempest_exclude_regex: "\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_metadata_rate_limiting)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_router_flavors)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_security_group_logging)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_l3ha_ovn)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_mtu)|\
(test_multicast.*restart)|\
(test_multicast.*ext*)|\
(^whitebox_neutron_tempest_plugin.*test_qos_user_policies)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_qos.QosTestExternalNetwork.*)|\
(^whitebox_neutron_tempest_plugin.*many_vms)|\
(^whitebox_neutron_tempest_plugin.*test_previously_used_ip)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_ovn_dbs.OvnDbsMonitoringTest.*)|\
(^whitebox_neutron_tempest_plugin.*ovn_controller_restart)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_ovn_fdb.*)"
devstack_localrc:
USE_PYTHON3: true
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}"
PHYSICAL_NETWORK: public
IMAGE_URLS: https://dl.rockylinux.org/vault/rocky/9.3/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2
CIRROS_VERSION: 0.6.2
DEFAULT_IMAGE_NAME: cirros-0.6.2-x86_64-uec
DEFAULT_IMAGE_FILE_NAME: cirros-0.6.2-x86_64-uec.tar.gz
ADVANCED_IMAGE_NAME: Rocky-9-GenericCloud.latest.x86_64
ADVANCED_INSTANCE_TYPE: ds1G
ADVANCED_INSTANCE_USER: rocky
GLANCE_LIMIT_IMAGE_SIZE_TOTAL: 2000
CUSTOMIZE_IMAGE: false
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(ihrachys): remove OVN_BUILD_FROM_SOURCE once the OS packages
# include at least OVN v22.03.3.
OVN_BUILD_FROM_SOURCE: True
# TODO(ihrachys): switch back to a tagged version when it's released
# OVN_BRANCH: "v22.03.3"
OVN_BRANCH: "36e3ab9b47e93af0599a818e9d6b2930e49473f0"
OVS_BRANCH: "2410b95597fcec5f733caf77febdb46f4ffacd27"
devstack_plugins:
neutron: https://opendev.org/openstack/neutron.git
neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
whitebox-neutron-tempest-plugin: https://opendev.org/x/whitebox-neutron-tempest-plugin.git
tempest_plugins:
- neutron-tempest-plugin
- whitebox-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
- 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
- floating-ip-port-forwarding-detail
- floatingip-pools
- ip-substring-filtering
- l3-conntrack-helper
- l3-ext-ndp-proxy
- l3-flavors
- l3-ha
- l3-ndp-proxy
- l3_agent_scheduler
- logging
- 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
neutron-ndp-proxy: 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
/$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
$NOVA_CONF:
api:
dhcp_domain: ''
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
whitebox_neutron_plugin_options:
openstack_type: devstack
broadcast_receivers_count: 1
compute-feature-enabled:
console_output: false
group-vars:
subnode:
devstack_plugins:
neutron: https://opendev.org/openstack/neutron.git
devstack_services:
# Cinder services
c-api: false
c-bak: false
c-sch: false
c-vol: false
cinder: false
# Swift services
s-account: false
s-container: false
s-object: false
s-proxy: false
irrelevant-files:
- ^\.pylintrc$
- ^(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$
- ^plugin.spec$
- ^neutron/agent/.*$
- ^neutron/privileged/.*$
- ^neutron_lib/tests/unit/.*$
- ^neutron_tempest_plugin/scenario/.*$
- ^rally-jobs/.*$
- ^roles/.*functional.*$
- ^playbooks/.*functional.*$
- ^vagrant/.*$
# Ignore everything except for zuul.d/project.yaml
- ^zuul.d/base-nested-switch.yaml
- ^zuul.d/master_jobs.yaml
- job:
name: whitebox-neutron-tempest-plugin-ovn
parent: whitebox-neutron-tempest-plugin-base-nested-switch
pre-run: playbooks/preparations.yaml
timeout: 10800
vars:
network_api_extensions_ovn:
- vlan-transparent
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
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(ihrachys): remove OVN_BUILD_FROM_SOURCE once the OS packages
# include at least OVN v22.03.3.
OVN_BUILD_FROM_SOURCE: True
OVN_BRANCH: "v23.09.0"
OVS_BRANCH: "v3.2.0-20-g1d78a3f31"
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
ovn:
ovn_emit_need_to_frag: true
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'
group-vars:
subnode:
devstack_services:
br-ex-tcpdump: true
br-int-flows: true
ovn-controller: true
ovn-northd: false
ovs-vswitchd: true
ovsdb-server: true
q-fake: true
q-svc: false
q-agt: false
q-dhcp: false
q-l3: false
q-meta: false
q-metering: false
q-ovn-metadata-agent: true
tls-proxy: true
dstat: true
devstack_localrc:
Q_AGENT: ovn
Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger
Q_ML2_TENANT_NETWORK_TYPE: geneve
Q_USE_PROVIDERNET_FOR_PUBLIC: true
PHYSICAL_NETWORK: public
ENABLE_CHASSIS_AS_GW: false
OVN_DBS_LOG_LEVEL: dbg
ENABLE_TLS: True
irrelevant-files:
- ^\.pylintrc$
- ^(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$
- ^plugin.spec$
- ^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/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^rally-jobs/.*$
- ^roles/.*functional.*$
- ^playbooks/.*dvr-multinode.*$
- ^playbooks/.*dynamic-routing.*$
- ^playbooks/.*functional.*$
- ^playbooks/.*linuxbridge.*$
- ^vagrant/.*$
# Ignore everything except for zuul.d/project.yaml
- ^zuul.d/base-nested-switch.yaml
- ^zuul.d/master_jobs.yaml
- job:
name: whitebox-neutron-tempest-plugin-ovn-single-thread
parent: whitebox-neutron-tempest-plugin-ovn
vars:
network_api_extensions_ovn:
- vlan-transparent
- ovn-router-flavors
devstack_localrc:
NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_ovn) | join(',') }}"
devstack_local_conf:
post-config:
$NEUTRON_CONF:
service_providers:
service_provider: "L3_ROUTER_NAT:user-defined:neutron.services.ovn_l3.service_providers.user_defined.UserDefined"
tempest_concurrency: 1
# (rsafrono) whitebox_neutron_tempest_plugin.tests.scenario.test_mtu are not enabled on devstack
# due to https://bugs.launchpad.net/neutron/+bug/2060828
tempest_test_regex: "\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_metadata_rate_limiting)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_router_flavors)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_security_group_logging)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_l3ha_ovn)|\
(test_multicast.*restart)|\
(test_multicast.*ext*)|\
(^whitebox_neutron_tempest_plugin.*test_qos_user_policies)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_qos.QosTestExternalNetwork.*)|\
(^whitebox_neutron_tempest_plugin.*many_vms)|\
(^whitebox_neutron_tempest_plugin.*test_previously_used_ip)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_ovn_dbs.OvnDbsMonitoringTest.*)|\
(^whitebox_neutron_tempest_plugin.*ovn_controller_restart)|\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_ovn_fdb.*)"
# NOTE(mblue): Enable metadata rate limiting tests
# when OSPRH-9569 is resolved (feature code available in RHOSO).
tempest_exclude_regex: "\
(^whitebox_neutron_tempest_plugin.tests.scenario.test_metadata_rate_limiting)"
- job:
name: whitebox-neutron-tempest-plugin-openvswitch
parent: whitebox-neutron-tempest-plugin-base-nested-switch
pre-run: playbooks/preparations.yaml
voting: false
timeout: 10800
vars:
configure_swap_size: 2048
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
# Cinder services
c-api: false
c-bak: false
c-sch: false
c-vol: false
cinder: false
# Swift services
s-account: false
s-container: false
s-object: false
s-proxy: false
network_api_extensions_openvswitch:
- dhcp_agent_scheduler
- 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
/$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
group-vars:
subnode:
devstack_localrc:
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch,linuxbridge
Q_AGENT: openvswitch
devstack_services:
q-agt: true
# OVN services
ovn-controller: false
ovs-vswitchd: false
ovsdb-server: false
q-ovn-metadata-agent: false
irrelevant-files:
- ^\.pylintrc$
- ^(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$
- ^plugin.spec$
- ^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/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
- ^neutron_tempest_plugin/services/bgp/.*$
- ^rally-jobs/.*$
- ^roles/.*functional.*$
- ^playbooks/.*dvr-multinode.*$
- ^playbooks/.*dynamic-routing.*$
- ^playbooks/.*functional.*$
- ^playbooks/.*linuxbridge.*$
- ^vagrant/.*$
# Ignore everything except for zuul.d/project.yaml
- ^zuul.d/base-nested-switch.yaml
- ^zuul.d/master_jobs.yaml