Replacing TripleO with Devstack jobs

TripleO jobs needed for testing whitebox neutron tempest plugin
are deprecated and most reasonable option is to use Devstack jobs
instead.

Change-Id: I397562b1c8a6752474a7c5b8a22ae98c9662f8b5
This commit is contained in:
Maor Blaustein 2023-11-28 11:29:21 +02:00
parent c2eb890259
commit b53e623b63
4 changed files with 478 additions and 36 deletions

View File

@ -1,36 +0,0 @@
- job:
name: whitebox-neutron-tempest-plugin-ovn-tripleo-ci-centos-9-containers-multinode
parent: tripleo-ci-centos-9-containers-multinode
vars:
nodes: 1ctlr
release: wallaby
branch_override: 'stable/wallaby'
featureset: '010'
featureset_override:
tempest_run_concurrency: 2
tempest_tempest_conf_overrides:
auth.use_dynamic_credentials: true
tempest_services:
- neutron
- whitebox_neutron
tempest_test_whitelist:
- 'whitebox_neutron_tempest_plugin.tests'
use_os_tempest: true
irrelevant-files:
- ^test-requirements.txt$
- ^releasenotes/.*$
- ^doc/.*$
- ^setup.cfg$
- ^.*\.conf\.sample$
- ^.*\.rst$
- ^tox.ini$
- project:
templates:
- tempest-plugin-jobs
check:
jobs:
- whitebox-neutron-tempest-plugin-ovn-tripleo-ci-centos-9-containers-multinode
gate:
jobs:
- whitebox-neutron-tempest-plugin-ovn-tripleo-ci-centos-9-containers-multinode

View File

@ -0,0 +1,19 @@
# Base nested switch job for 2023.1 and later
- job:
name: whitebox-neutron-tempest-plugin-base-nested-switch
parent: whitebox-neutron-tempest-plugin-base
abstract: true
branches:
regex: ^(stable/(train|ussuri|victoria|wallaby|xena|yoga|zed)).*$
negate: true
# Comment nodeset and vars to switch back to non nested nodes
nodeset: devstack-single-node-centos-9-stream
vars: &nested_virt_vars
devstack_localrc:
LIBVIRT_TYPE: kvm
# NOTE(ykarel): seeing issues with host-passthrough mode
# https://bugs.launchpad.net/neutron/+bug/2036603
# LIBVIRT_CPU_MODE: host-passthrough
CIRROS_VERSION: 0.6.2
DEFAULT_IMAGE_NAME: cirros-0.6.2-x86_64-disk
DEFAULT_IMAGE_FILE_NAME: cirros-0.6.2-x86_64-disk.img

437
zuul.d/master_jobs.yaml Normal file
View File

@ -0,0 +1,437 @@
- 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
required-projects:
- openstack/neutron
- openstack/neutron-tempest-plugin
- x/whitebox-neutron-tempest-plugin
- openstack/tempest
vars:
tempest_concurrency: 4 # 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)"
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.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: 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(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
- 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
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:
- ^\.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/.*$
- ^zuul.d/(?!(project)).*\.yaml
- job:
name: whitebox-neutron-tempest-plugin-ovn
parent: whitebox-neutron-tempest-plugin-base-nested-switch
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
# TODO(ihrachys): switch back to a tagged version when it's released
# OVN_BRANCH: "v22.03.3"
OVN_BRANCH: "36e3ab9b47e93af0599a818e9d6b2930e49473f0"
OVS_BRANCH: "2410b95597fcec5f733caf77febdb46f4ffacd27"
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:
- ^\.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/.*$
- ^zuul.d/(?!(project)).*\.yaml
- job:
name: whitebox-neutron-tempest-plugin-openvswitch
parent: whitebox-neutron-tempest-plugin-base-nested-switch
timeout: 10000
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
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
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/.*$
- ^zuul.d/(?!(project)).*\.yaml

22
zuul.d/project.yaml Normal file
View File

@ -0,0 +1,22 @@
- project-template:
name: whitebox-neutron-tempest-plugin-jobs
check:
jobs:
- whitebox-neutron-tempest-plugin-openvswitch
- whitebox-neutron-tempest-plugin-ovn
gate:
jobs:
- whitebox-neutron-tempest-plugin-openvswitch
- whitebox-neutron-tempest-plugin-ovn
- project:
templates:
- whitebox-neutron-tempest-plugin-jobs
check:
jobs:
- whitebox-neutron-tempest-plugin-openvswitch
- whitebox-neutron-tempest-plugin-ovn
gate:
jobs:
- whitebox-neutron-tempest-plugin-openvswitch
- whitebox-neutron-tempest-plugin-ovn