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:
charm: ch:mysql-router
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:
charm: ch:mysql-innodb-cluster
@ -61,8 +70,6 @@ applications:
charm: ch:neutron-api
num_units: 1
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1,
neutron-security-groups: true
openstack-origin: *openstack-origin
@ -109,6 +116,8 @@ applications:
neutron-api-plugin-ovn:
charm: ch:neutron-api-plugin-ovn
channel: latest/edge
options:
enable-distributed-floating-ip: True
vault:
charm: ch:vault
@ -116,6 +125,48 @@ applications:
channel: latest/edge
to:
- '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:
- - 'neutron-dynamic-routing:amqp'
@ -140,6 +191,57 @@ relations:
- - 'neutron-api: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
- vault:certificates
@ -156,4 +258,13 @@ relations:
- neutron-api-plugin-ovn:certificates
- - 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:
charm: ch:mysql-router
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:
charm: ch:mysql-innodb-cluster
@ -60,13 +69,15 @@ applications:
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1,
neutron-security-groups: true
flat-network-providers: physnet1
enable-ml2-port-security: True
neutron-security-groups: True
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
enable-dvr: True
to:
- '4'
channel: latest/edge
@ -100,6 +111,52 @@ applications:
to:
- '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:
- - 'neutron-dynamic-routing:amqp'
@ -124,8 +181,68 @@ relations:
- - 'neutron-api: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
- keystone: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:
charm: ch:mysql-router
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:
charm: ch:mysql-innodb-cluster
@ -60,13 +69,15 @@ applications:
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1,
neutron-security-groups: true
flat-network-providers: physnet1
enable-ml2-port-security: True
neutron-security-groups: True
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
enable-dvr: True
to:
- '4'
channel: latest/edge
@ -100,6 +111,52 @@ applications:
to:
- '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:
- - 'neutron-dynamic-routing:amqp'
@ -124,8 +181,68 @@ relations:
- - 'neutron-api: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
- keystone: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:
charm: ch:mysql-router
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:
charm: ch:mysql-innodb-cluster
@ -61,8 +70,6 @@ applications:
charm: ch:neutron-api
num_units: 1
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1,
neutron-security-groups: true
openstack-origin: *openstack-origin
@ -109,6 +116,8 @@ applications:
neutron-api-plugin-ovn:
charm: ch:neutron-api-plugin-ovn
channel: latest/edge
options:
enable-distributed-floating-ip: True
vault:
charm: ch:vault
@ -117,6 +126,47 @@ applications:
to:
- '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:
- - 'neutron-dynamic-routing:amqp'
@ -141,6 +191,57 @@ relations:
- - 'neutron-api: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
- vault:certificates
@ -157,4 +258,13 @@ relations:
- neutron-api-plugin-ovn:certificates
- - 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:
charm: ch:mysql-router
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:
charm: ch:mysql-innodb-cluster
@ -60,13 +69,15 @@ applications:
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1,
neutron-security-groups: true
flat-network-providers: physnet1
enable-ml2-port-security: True
neutron-security-groups: True
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
enable-dvr: True
to:
- '4'
channel: latest/edge
@ -100,6 +111,52 @@ applications:
to:
- '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:
- - 'neutron-dynamic-routing:amqp'
@ -124,8 +181,68 @@ relations:
- - 'neutron-api: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
- keystone: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:
- 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
gate_bundles:
@ -30,6 +33,10 @@ target_deploy_status:
vault:
workload-status: blocked
workload-status-message-prefix: Vault needs to be initialized
ovn-chassis:
workload-status: waiting
workload-status-message-prefix: "'certificates' awaiting server certificate data"
tests:
- zaza.openstack.charm_tests.dragent.tests.DRAgentTest