Neutron HA nodeset of 3 controllers and 2 computes

The neutron tempest migrated plugin has tests that soft/hard shutdown
services/nodes and expect HA setup to handle it.

Therefore this change adds a devstack OVS HA gate job to notice such
tests work properly, and any HA checks related code isn't broken.

Change-Id: Ifa574542d6d4b59c63335e95052922b494cad5e2
This commit is contained in:
Maor Blaustein 2023-12-27 19:34:41 +02:00
parent 0869dc69df
commit 3f4f3e584f
3 changed files with 128 additions and 1 deletions

View File

@ -0,0 +1,7 @@
- hosts: all
vars:
install_ovs: false
roles:
# For ovs from source jobs we need to reconfigure bridges after devstack setup
- multi-node-bridge
- multi-node-setup

View File

@ -1,4 +1,52 @@
# Base nested switch job for 2023.1 and later # Base nested switch job for 2023.1 and later
- nodeset:
name: whitebox-neutron-five-node-centos-9-stream
nodes:
- name: controller
label: nested-virt-centos-9-stream
- name: controller2
label: nested-virt-centos-9-stream
- name: controller3
label: nested-virt-centos-9-stream
- name: compute1
label: nested-virt-centos-9-stream
- name: compute2
label: nested-virt-centos-9-stream
groups:
# Node where tests are executed and test results collected
- name: tempest
nodes:
- controller
# Nodes running the controller service
- name: controller
nodes:
- controller
- controller2
- controller3
# Nodes running the compute service
- name: compute
nodes:
- compute1
- compute2
# Nodes that are not controller
- name: subnode
nodes:
- compute1
- compute2
- controller2
- controller3
# Switch node for multinode networking setup
- name: switch
nodes:
- controller
# Peer nodes for multinode networking setup
- name: peers
nodes:
- controller2
- controller3
- compute1
- compute2
- job: - job:
name: whitebox-neutron-tempest-plugin-base-nested-switch name: whitebox-neutron-tempest-plugin-base-nested-switch
parent: whitebox-neutron-tempest-plugin-base parent: whitebox-neutron-tempest-plugin-base
@ -7,7 +55,7 @@
regex: ^(unmaintained|stable/(victoria|wallaby|xena|yoga|zed)).*$ regex: ^(unmaintained|stable/(victoria|wallaby|xena|yoga|zed)).*$
negate: true negate: true
# Comment nodeset and vars to switch back to non nested nodes # Comment nodeset and vars to switch back to non nested nodes
nodeset: devstack-single-node-centos-9-stream nodeset: whitebox-neutron-five-node-centos-9-stream
vars: &nested_virt_vars vars: &nested_virt_vars
devstack_localrc: devstack_localrc:
LIBVIRT_TYPE: kvm LIBVIRT_TYPE: kvm

View File

@ -6,6 +6,7 @@
Perform setup common to all Neutron tempest tests Perform setup common to all Neutron tempest tests
roles: roles:
- zuul: openstack/devstack - zuul: openstack/devstack
- zuul: openstack/neutron-tempest-plugin
required-projects: required-projects:
- openstack/neutron - openstack/neutron
- openstack/neutron-tempest-plugin - openstack/neutron-tempest-plugin
@ -195,6 +196,22 @@
image_is_advanced: true image_is_advanced: true
available_type_drivers: flat,geneve,vlan,gre,local,vxlan available_type_drivers: flat,geneve,vlan,gre,local,vxlan
provider_net_base_segm_id: 1 provider_net_base_segm_id: 1
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: irrelevant-files:
- ^\.pylintrc$ - ^\.pylintrc$
- ^(test-|)requirements.txt$ - ^(test-|)requirements.txt$
@ -225,6 +242,8 @@
name: whitebox-neutron-tempest-plugin-ovn name: whitebox-neutron-tempest-plugin-ovn
parent: whitebox-neutron-tempest-plugin-base-nested-switch parent: whitebox-neutron-tempest-plugin-base-nested-switch
timeout: 10800 timeout: 10800
# TODO(mblue): Remove line when changing ovn job to be HA job as well.
nodeset: devstack-single-node-centos-9-stream
vars: vars:
network_api_extensions_ovn: network_api_extensions_ovn:
- vlan-transparent - vlan-transparent
@ -298,6 +317,34 @@
'/var/log/ovn': 'logs' '/var/log/ovn': 'logs'
'/var/log/openvswitch': 'logs' '/var/log/openvswitch': 'logs'
'/var/lib/ovn': '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: irrelevant-files:
- ^\.pylintrc$ - ^\.pylintrc$
- ^(test-|)requirements.txt$ - ^(test-|)requirements.txt$
@ -348,6 +395,7 @@
- job: - job:
name: whitebox-neutron-tempest-plugin-openvswitch name: whitebox-neutron-tempest-plugin-openvswitch
parent: whitebox-neutron-tempest-plugin-base-nested-switch parent: whitebox-neutron-tempest-plugin-base-nested-switch
pre-run: playbooks/multinode-devstack-ovs-tempest.yaml
timeout: 10000 timeout: 10000
vars: vars:
configure_swap_size: 2048 configure_swap_size: 2048
@ -367,6 +415,17 @@
q-l3: true q-l3: true
q-meta: true q-meta: true
q-metering: 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: network_api_extensions_openvswitch:
- dhcp_agent_scheduler - dhcp_agent_scheduler
- local_ip - local_ip
@ -398,6 +457,19 @@
neutron_plugin_options: neutron_plugin_options:
available_type_drivers: flat,vlan,local,vxlan available_type_drivers: flat,vlan,local,vxlan
firewall_driver: openvswitch 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: irrelevant-files:
- ^\.pylintrc$ - ^\.pylintrc$
- ^(test-|)requirements.txt$ - ^(test-|)requirements.txt$