Add data plane testing for NDR routes

The change includes modifications to bundles to set up components
necessary to spawn instances and provide actual connectivity to them. It
makes the testing more heavy but adds assurances that the data plane
works for the routes advertised by the NDR control plane.

The bundle changes also fix an issue that got in with the original OVN
bundles: manage-neutron-plugin-legacy-mode is set to True and the plugin
is determined to be OVS instead of OVN. The control plane for NDR still
worked but with a non-functioning ML2/ovs config causing OVN DBs to be
empty.

Func-Test-PR: https://github.com/openstack-charmers/zaza-openstack-tests/pull/1076
Change-Id: Ie59b942a0800ce8dd979398f41ed2138472481f1
This commit is contained in:
Dmitrii Shcherbakov 2023-06-15 06:56:49 +04:00
parent b97646f665
commit 32e0a1fbdf
6 changed files with 594 additions and 15 deletions

View File

@ -34,6 +34,15 @@ applications:
neutron-api-mysql-router: neutron-api-mysql-router:
charm: ch:mysql-router charm: ch:mysql-router
channel: latest/edge channel: latest/edge
nova-mysql-router:
charm: ch:mysql-router
channel: latest/edge
glance-mysql-router:
charm: ch:mysql-router
channel: latest/edge
placement-mysql-router:
charm: ch:mysql-router
channel: latest/edge
mysql-innodb-cluster: mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster charm: ch:mysql-innodb-cluster
@ -61,8 +70,6 @@ applications:
charm: ch:neutron-api charm: ch:neutron-api
num_units: 1 num_units: 1
options: options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1, flat-network-providers: physnet1,
neutron-security-groups: true neutron-security-groups: true
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
@ -109,6 +116,8 @@ applications:
neutron-api-plugin-ovn: neutron-api-plugin-ovn:
charm: ch:neutron-api-plugin-ovn charm: ch:neutron-api-plugin-ovn
channel: latest/edge channel: latest/edge
options:
enable-distributed-floating-ip: True
vault: vault:
charm: ch:vault charm: ch:vault
@ -116,6 +125,48 @@ applications:
channel: latest/edge channel: latest/edge
to: to:
- '11' - '11'
nova-compute:
constraints: mem=7168M
charm: ch:nova-compute
num_units: 2
options:
openstack-origin: *openstack-origin
debug: True
channel: latest/edge
nova-cloud-controller:
charm: ch:nova-cloud-controller
num_units: 1
options:
openstack-origin: *openstack-origin
debug: True
network-manager: Neutron
channel: latest/edge
placement:
charm: ch:placement
num_units: 1
constraints: mem=1G
options:
openstack-origin: *openstack-origin
debug: true
channel: latest/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: latest/edge
ovn-chassis:
charm: ch:ovn-chassis
channel: latest/edge
options:
ovn-bridge-mappings: physnet1:br-ex
prefer-chassis-as-gw: true
relations: relations:
- - 'neutron-dynamic-routing:amqp' - - 'neutron-dynamic-routing:amqp'
@ -140,6 +191,57 @@ relations:
- - 'neutron-api:identity-service' - - 'neutron-api:identity-service'
- 'keystone:identity-service' - 'keystone:identity-service'
- - 'nova-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'glance-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'placement-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - keystone:identity-service
- glance:identity-service
- - nova-mysql-router:shared-db
- nova-cloud-controller:shared-db
- - glance:image-service
- nova-cloud-controller:image-service
- - glance:image-service
- nova-compute:image-service
- - glance-mysql-router:shared-db
- glance:shared-db
- - keystone:identity-service
- nova-cloud-controller:identity-service
- - nova-compute:cloud-compute
- nova-cloud-controller:cloud-compute
- - neutron-api:neutron-api
- nova-cloud-controller:neutron-api
- - rabbitmq-server:amqp
- nova-cloud-controller:amqp
- - ovn-chassis:nova-compute
- nova-compute:neutron-plugin
- - ovn-chassis:certificates
- vault:certificates
- - ovn-chassis:ovsdb
- ovn-central:ovsdb
- - rabbitmq-server:amqp
- nova-compute:amqp
- - placement
- placement-mysql-router
- - placement
- keystone
- - placement
- nova-cloud-controller
- - ovn-central:certificates - - ovn-central:certificates
- vault:certificates - vault:certificates
@ -157,3 +259,12 @@ relations:
- - neutron-api-plugin-ovn:neutron-plugin - - neutron-api-plugin-ovn:neutron-plugin
- neutron-api:neutron-plugin-api-subordinate - neutron-api:neutron-plugin-api-subordinate
- - vault:certificates
- glance:certificates
- - vault:certificates
- nova-cloud-controller:certificates
- - vault:certificates
- placement:certificates

View File

@ -31,6 +31,15 @@ applications:
neutron-api-mysql-router: neutron-api-mysql-router:
charm: ch:mysql-router charm: ch:mysql-router
channel: latest/edge channel: latest/edge
nova-mysql-router:
charm: ch:mysql-router
channel: latest/edge
glance-mysql-router:
charm: ch:mysql-router
channel: latest/edge
placement-mysql-router:
charm: ch:mysql-router
channel: latest/edge
mysql-innodb-cluster: mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster charm: ch:mysql-innodb-cluster
@ -60,13 +69,15 @@ applications:
options: options:
manage-neutron-plugin-legacy-mode: true manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs neutron-plugin: ovs
flat-network-providers: physnet1, flat-network-providers: physnet1
neutron-security-groups: true enable-ml2-port-security: True
neutron-security-groups: True
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
haproxy-server-timeout: 90000 haproxy-server-timeout: 90000
haproxy-client-timeout: 90000 haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000 haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000 haproxy-connect-timeout: 9000
enable-dvr: True
to: to:
- '4' - '4'
channel: latest/edge channel: latest/edge
@ -100,6 +111,52 @@ applications:
to: to:
- '8' - '8'
nova-compute:
constraints: mem=7168M
charm: ch:nova-compute
num_units: 2
options:
openstack-origin: *openstack-origin
debug: True
channel: latest/edge
nova-cloud-controller:
charm: ch:nova-cloud-controller
num_units: 1
options:
openstack-origin: *openstack-origin
debug: True
network-manager: Neutron
channel: latest/edge
placement:
charm: ch:placement
num_units: 1
constraints: mem=1G
options:
openstack-origin: *openstack-origin
debug: true
channel: latest/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: latest/edge
neutron-openvswitch:
charm: ch:neutron-openvswitch
num_units: 0
options:
debug: True
enable-local-dhcp-and-metadata: True
use-dvr-snat: True
bridge-mappings: physnet1:br-ex
prevent-arp-spoofing: False
firewall-driver: openvswitch
channel: latest/edge
relations: relations:
- - 'neutron-dynamic-routing:amqp' - - 'neutron-dynamic-routing:amqp'
@ -124,8 +181,68 @@ relations:
- - 'neutron-api:identity-service' - - 'neutron-api:identity-service'
- 'keystone:identity-service' - 'keystone:identity-service'
- - 'nova-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'glance-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'placement-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - keystone:identity-service
- glance:identity-service
- - nova-mysql-router:shared-db
- nova-cloud-controller:shared-db
- - glance:image-service
- nova-cloud-controller:image-service
- - glance:image-service
- nova-compute:image-service
- - glance-mysql-router:shared-db
- glance:shared-db
- - keystone:identity-service
- nova-cloud-controller:identity-service
- - nova-compute:cloud-compute
- nova-cloud-controller:cloud-compute
- - neutron-api:neutron-api
- nova-cloud-controller:neutron-api
- - rabbitmq-server:amqp
- nova-cloud-controller:amqp
- - rabbitmq-server:amqp
- nova-compute:amqp
- - placement
- placement-mysql-router
- - placement
- keystone
- - placement
- nova-cloud-controller
- - vault:certificates - - vault:certificates
- keystone:certificates - keystone:certificates
- - vault:certificates - - vault:certificates
- neutron-api:certificates - neutron-api:certificates
- - vault:certificates
- glance:certificates
- - vault:certificates
- nova-cloud-controller:certificates
- - vault:certificates
- placement:certificates
- - rabbitmq-server:amqp
- neutron-openvswitch:amqp
- - neutron-api:neutron-plugin-api
- neutron-openvswitch:neutron-plugin-api
- - neutron-openvswitch:neutron-plugin
- nova-compute:neutron-plugin

View File

@ -31,6 +31,15 @@ applications:
neutron-api-mysql-router: neutron-api-mysql-router:
charm: ch:mysql-router charm: ch:mysql-router
channel: latest/edge channel: latest/edge
nova-mysql-router:
charm: ch:mysql-router
channel: latest/edge
glance-mysql-router:
charm: ch:mysql-router
channel: latest/edge
placement-mysql-router:
charm: ch:mysql-router
channel: latest/edge
mysql-innodb-cluster: mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster charm: ch:mysql-innodb-cluster
@ -60,13 +69,15 @@ applications:
options: options:
manage-neutron-plugin-legacy-mode: true manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs neutron-plugin: ovs
flat-network-providers: physnet1, flat-network-providers: physnet1
neutron-security-groups: true enable-ml2-port-security: True
neutron-security-groups: True
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
haproxy-server-timeout: 90000 haproxy-server-timeout: 90000
haproxy-client-timeout: 90000 haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000 haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000 haproxy-connect-timeout: 9000
enable-dvr: True
to: to:
- '4' - '4'
channel: latest/edge channel: latest/edge
@ -100,6 +111,52 @@ applications:
to: to:
- '8' - '8'
nova-compute:
constraints: mem=7168M
charm: ch:nova-compute
num_units: 2
options:
openstack-origin: *openstack-origin
debug: True
channel: latest/edge
nova-cloud-controller:
charm: ch:nova-cloud-controller
num_units: 1
options:
openstack-origin: *openstack-origin
debug: True
network-manager: Neutron
channel: latest/edge
placement:
charm: ch:placement
num_units: 1
constraints: mem=1G
options:
openstack-origin: *openstack-origin
debug: true
channel: latest/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: latest/edge
neutron-openvswitch:
charm: ch:neutron-openvswitch
num_units: 0
options:
debug: True
enable-local-dhcp-and-metadata: True
use-dvr-snat: True
bridge-mappings: physnet1:br-ex
prevent-arp-spoofing: False
firewall-driver: openvswitch
channel: latest/edge
relations: relations:
- - 'neutron-dynamic-routing:amqp' - - 'neutron-dynamic-routing:amqp'
@ -124,8 +181,68 @@ relations:
- - 'neutron-api:identity-service' - - 'neutron-api:identity-service'
- 'keystone:identity-service' - 'keystone:identity-service'
- - 'nova-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'glance-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'placement-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - keystone:identity-service
- glance:identity-service
- - nova-mysql-router:shared-db
- nova-cloud-controller:shared-db
- - glance:image-service
- nova-cloud-controller:image-service
- - glance:image-service
- nova-compute:image-service
- - glance-mysql-router:shared-db
- glance:shared-db
- - keystone:identity-service
- nova-cloud-controller:identity-service
- - nova-compute:cloud-compute
- nova-cloud-controller:cloud-compute
- - neutron-api:neutron-api
- nova-cloud-controller:neutron-api
- - rabbitmq-server:amqp
- nova-cloud-controller:amqp
- - rabbitmq-server:amqp
- nova-compute:amqp
- - placement
- placement-mysql-router
- - placement
- keystone
- - placement
- nova-cloud-controller
- - vault:certificates - - vault:certificates
- keystone:certificates - keystone:certificates
- - vault:certificates - - vault:certificates
- neutron-api:certificates - neutron-api:certificates
- - vault:certificates
- glance:certificates
- - vault:certificates
- nova-cloud-controller:certificates
- - vault:certificates
- placement:certificates
- - rabbitmq-server:amqp
- neutron-openvswitch:amqp
- - neutron-api:neutron-plugin-api
- neutron-openvswitch:neutron-plugin-api
- - neutron-openvswitch:neutron-plugin
- nova-compute:neutron-plugin

View File

@ -34,6 +34,15 @@ applications:
neutron-api-mysql-router: neutron-api-mysql-router:
charm: ch:mysql-router charm: ch:mysql-router
channel: latest/edge channel: latest/edge
nova-mysql-router:
charm: ch:mysql-router
channel: latest/edge
glance-mysql-router:
charm: ch:mysql-router
channel: latest/edge
placement-mysql-router:
charm: ch:mysql-router
channel: latest/edge
mysql-innodb-cluster: mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster charm: ch:mysql-innodb-cluster
@ -61,8 +70,6 @@ applications:
charm: ch:neutron-api charm: ch:neutron-api
num_units: 1 num_units: 1
options: options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1, flat-network-providers: physnet1,
neutron-security-groups: true neutron-security-groups: true
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
@ -109,6 +116,8 @@ applications:
neutron-api-plugin-ovn: neutron-api-plugin-ovn:
charm: ch:neutron-api-plugin-ovn charm: ch:neutron-api-plugin-ovn
channel: latest/edge channel: latest/edge
options:
enable-distributed-floating-ip: True
vault: vault:
charm: ch:vault charm: ch:vault
@ -117,6 +126,47 @@ applications:
to: to:
- '11' - '11'
nova-compute:
constraints: mem=7168M
charm: ch:nova-compute
num_units: 2
options:
openstack-origin: *openstack-origin
debug: True
channel: latest/edge
nova-cloud-controller:
charm: ch:nova-cloud-controller
num_units: 1
options:
openstack-origin: *openstack-origin
debug: True
network-manager: Neutron
channel: latest/edge
placement:
charm: ch:placement
num_units: 1
constraints: mem=1G
options:
openstack-origin: *openstack-origin
debug: true
channel: latest/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: latest/edge
ovn-chassis:
charm: ch:ovn-chassis
channel: latest/edge
options:
ovn-bridge-mappings: physnet1:br-ex
prefer-chassis-as-gw: true
relations: relations:
- - 'neutron-dynamic-routing:amqp' - - 'neutron-dynamic-routing:amqp'
@ -141,6 +191,57 @@ relations:
- - 'neutron-api:identity-service' - - 'neutron-api:identity-service'
- 'keystone:identity-service' - 'keystone:identity-service'
- - 'nova-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'glance-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'placement-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - keystone:identity-service
- glance:identity-service
- - nova-mysql-router:shared-db
- nova-cloud-controller:shared-db
- - glance:image-service
- nova-cloud-controller:image-service
- - glance:image-service
- nova-compute:image-service
- - glance-mysql-router:shared-db
- glance:shared-db
- - keystone:identity-service
- nova-cloud-controller:identity-service
- - nova-compute:cloud-compute
- nova-cloud-controller:cloud-compute
- - neutron-api:neutron-api
- nova-cloud-controller:neutron-api
- - rabbitmq-server:amqp
- nova-cloud-controller:amqp
- - ovn-chassis:nova-compute
- nova-compute:neutron-plugin
- - ovn-chassis:certificates
- vault:certificates
- - ovn-chassis:ovsdb
- ovn-central:ovsdb
- - rabbitmq-server:amqp
- nova-compute:amqp
- - placement
- placement-mysql-router
- - placement
- keystone
- - placement
- nova-cloud-controller
- - ovn-central:certificates - - ovn-central:certificates
- vault:certificates - vault:certificates
@ -158,3 +259,12 @@ relations:
- - neutron-api-plugin-ovn:neutron-plugin - - neutron-api-plugin-ovn:neutron-plugin
- neutron-api:neutron-plugin-api-subordinate - neutron-api:neutron-plugin-api-subordinate
- - vault:certificates
- glance:certificates
- - vault:certificates
- nova-cloud-controller:certificates
- - vault:certificates
- placement:certificates

View File

@ -31,6 +31,15 @@ applications:
neutron-api-mysql-router: neutron-api-mysql-router:
charm: ch:mysql-router charm: ch:mysql-router
channel: latest/edge channel: latest/edge
nova-mysql-router:
charm: ch:mysql-router
channel: latest/edge
glance-mysql-router:
charm: ch:mysql-router
channel: latest/edge
placement-mysql-router:
charm: ch:mysql-router
channel: latest/edge
mysql-innodb-cluster: mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster charm: ch:mysql-innodb-cluster
@ -60,13 +69,15 @@ applications:
options: options:
manage-neutron-plugin-legacy-mode: true manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs neutron-plugin: ovs
flat-network-providers: physnet1, flat-network-providers: physnet1
neutron-security-groups: true enable-ml2-port-security: True
neutron-security-groups: True
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
haproxy-server-timeout: 90000 haproxy-server-timeout: 90000
haproxy-client-timeout: 90000 haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000 haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000 haproxy-connect-timeout: 9000
enable-dvr: True
to: to:
- '4' - '4'
channel: latest/edge channel: latest/edge
@ -100,6 +111,52 @@ applications:
to: to:
- '8' - '8'
nova-compute:
constraints: mem=7168M
charm: ch:nova-compute
num_units: 2
options:
openstack-origin: *openstack-origin
debug: True
channel: latest/edge
nova-cloud-controller:
charm: ch:nova-cloud-controller
num_units: 1
options:
openstack-origin: *openstack-origin
debug: True
network-manager: Neutron
channel: latest/edge
placement:
charm: ch:placement
num_units: 1
constraints: mem=1G
options:
openstack-origin: *openstack-origin
debug: true
channel: latest/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: latest/edge
neutron-openvswitch:
charm: ch:neutron-openvswitch
num_units: 0
options:
debug: True
enable-local-dhcp-and-metadata: True
use-dvr-snat: True
bridge-mappings: physnet1:br-ex
prevent-arp-spoofing: False
firewall-driver: openvswitch
channel: latest/edge
relations: relations:
- - 'neutron-dynamic-routing:amqp' - - 'neutron-dynamic-routing:amqp'
@ -124,8 +181,68 @@ relations:
- - 'neutron-api:identity-service' - - 'neutron-api:identity-service'
- 'keystone:identity-service' - 'keystone:identity-service'
- - 'nova-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'glance-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'placement-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - keystone:identity-service
- glance:identity-service
- - nova-mysql-router:shared-db
- nova-cloud-controller:shared-db
- - glance:image-service
- nova-cloud-controller:image-service
- - glance:image-service
- nova-compute:image-service
- - glance-mysql-router:shared-db
- glance:shared-db
- - keystone:identity-service
- nova-cloud-controller:identity-service
- - nova-compute:cloud-compute
- nova-cloud-controller:cloud-compute
- - neutron-api:neutron-api
- nova-cloud-controller:neutron-api
- - rabbitmq-server:amqp
- nova-cloud-controller:amqp
- - rabbitmq-server:amqp
- nova-compute:amqp
- - placement
- placement-mysql-router
- - placement
- keystone
- - placement
- nova-cloud-controller
- - vault:certificates - - vault:certificates
- keystone:certificates - keystone:certificates
- - vault:certificates - - vault:certificates
- neutron-api:certificates - neutron-api:certificates
- - vault:certificates
- glance:certificates
- - vault:certificates
- nova-cloud-controller:certificates
- - vault:certificates
- placement:certificates
- - rabbitmq-server:amqp
- neutron-openvswitch:amqp
- - neutron-api:neutron-plugin-api
- neutron-openvswitch:neutron-plugin-api
- - neutron-openvswitch:neutron-plugin
- nova-compute:neutron-plugin

View File

@ -2,6 +2,9 @@ charm_name: neutron-dynamic-routing
configure: configure:
- zaza.openstack.charm_tests.vault.setup.auto_initialize - zaza.openstack.charm_tests.vault.setup.auto_initialize
- zaza.openstack.charm_tests.glance.setup.add_lts_image
- zaza.openstack.charm_tests.nova.setup.create_flavors
- zaza.openstack.charm_tests.nova.setup.manage_ssh_key
- zaza.openstack.charm_tests.dragent.configure.setup - zaza.openstack.charm_tests.dragent.configure.setup
gate_bundles: gate_bundles:
@ -30,6 +33,10 @@ target_deploy_status:
vault: vault:
workload-status: blocked workload-status: blocked
workload-status-message-prefix: Vault needs to be initialized workload-status-message-prefix: Vault needs to be initialized
ovn-chassis:
workload-status: waiting
workload-status-message-prefix: "'certificates' awaiting server certificate data"
tests: tests:
- zaza.openstack.charm_tests.dragent.tests.DRAgentTest - zaza.openstack.charm_tests.dragent.tests.DRAgentTest