Add OVN + neutron-dynamic-routing bundles
* OVN + NDR testing is possible as of Neutron 22.0.0 (2023.1 or Antelope), see [1][2]. * Vault is added to non-OVN bundles as the tests.yaml file is shared and uses a configure step for Vault Important note: at the time of writing the OVN integration code in Neutron does not have any use for `distributed` and `ha` router extra attributes and whether distributed or centralized FIPs are used in OVN is governed by the ovn/enable_distributed_floating_ip option which does not operate at the per-router granularity and is global. The docs have not been updated and still say [3] that OVN routers do not expose `ha` or `distributed` attributes which are now there as of [1]. At the same time, the NDR implementation uses the `distributed` attribute to determine whether to use the gateway port IP and treat FIPs as centralized [4] and add a next-hop to the gateway port IP or not in the advertised /32 routes. For routers with `distributed == True`, NDR only attempts [5] to find ports with device owner `'floatingip_agent_gateway'`. Therefore, when distributed FIPs are enabled via ovn/enable_distributed_floating_ip, the `distributed` extra attribute on a router is set to `False` and /32 routes are advertised as centralized. The distributed FIP case is currently not exercised by the current bundles neither for ML2/ovs nor ML2/ovn. The current bundles only test the control plane and route advertisement, not packet forwarding via advertised next-hops. [1] https://review.opendev.org/c/openstack/neutron/+/864051 [2]4d1a7bd0bc
[3]cd66232c2b/doc/source/ovn/faq/index.rst (L16-L29)
[4]513ea649be/neutron_dynamic_routing/db/bgp_db.py (L564)
[5]513ea649be/neutron_dynamic_routing/db/bgp_db.py (L567-L580)
Change-Id: I21ba5d79ff100b839874a65e4ddd32f20dfb1311
This commit is contained in:
parent
5963ea4fc3
commit
b97646f665
22
osci.yaml
22
osci.yaml
|
@ -1,9 +1,29 @@
|
||||||
- project:
|
- project:
|
||||||
templates:
|
templates:
|
||||||
- charm-unit-jobs-py310
|
- charm-unit-jobs-py310
|
||||||
- charm-functional-jobs
|
check:
|
||||||
|
jobs:
|
||||||
|
- jammy-zed
|
||||||
|
- jammy-antelope
|
||||||
|
- jammy-antelope-ovn
|
||||||
|
- lunar-antelope:
|
||||||
|
voting: false
|
||||||
|
- lunar-antelope-ovn:
|
||||||
|
voting: false
|
||||||
vars:
|
vars:
|
||||||
needs_charm_build: true
|
needs_charm_build: true
|
||||||
charm_build_name: neutron-dynamic-routing
|
charm_build_name: neutron-dynamic-routing
|
||||||
build_type: charmcraft
|
build_type: charmcraft
|
||||||
charmcraft_channel: 2.1/stable
|
charmcraft_channel: 2.1/stable
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: jammy-antelope-ovn
|
||||||
|
parent: func-target
|
||||||
|
vars:
|
||||||
|
tox_extra_args: '-- jammy-antelope-ovn'
|
||||||
|
- job:
|
||||||
|
name: lunar-antelope-ovn
|
||||||
|
parent: func-target
|
||||||
|
vars:
|
||||||
|
juju_snap_channel: "3.2/stable"
|
||||||
|
tox_extra_args: '-- lunar-antelope-ovn'
|
||||||
|
|
|
@ -0,0 +1,159 @@
|
||||||
|
local_overlay_enabled: False
|
||||||
|
|
||||||
|
variables:
|
||||||
|
openstack-origin: &openstack-origin cloud:jammy-antelope
|
||||||
|
|
||||||
|
series: jammy
|
||||||
|
|
||||||
|
comment:
|
||||||
|
- 'machines section to decide order of deployment. database sooner = faster'
|
||||||
|
machines:
|
||||||
|
'0':
|
||||||
|
constraints: mem=3072M
|
||||||
|
'1':
|
||||||
|
constraints: mem=3072M
|
||||||
|
'2':
|
||||||
|
constraints: mem=3072M
|
||||||
|
'3':
|
||||||
|
'4':
|
||||||
|
'5':
|
||||||
|
'6':
|
||||||
|
'7':
|
||||||
|
# osci-frr has a limited set of supported series.
|
||||||
|
series: jammy
|
||||||
|
'8':
|
||||||
|
'9':
|
||||||
|
'10':
|
||||||
|
'11':
|
||||||
|
|
||||||
|
applications:
|
||||||
|
|
||||||
|
keystone-mysql-router:
|
||||||
|
charm: ch:mysql-router
|
||||||
|
channel: latest/edge
|
||||||
|
neutron-api-mysql-router:
|
||||||
|
charm: ch:mysql-router
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
mysql-innodb-cluster:
|
||||||
|
charm: ch:mysql-innodb-cluster
|
||||||
|
num_units: 3
|
||||||
|
to:
|
||||||
|
- '0'
|
||||||
|
- '1'
|
||||||
|
- '2'
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
keystone:
|
||||||
|
charm: ch:keystone
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
haproxy-server-timeout: 90000
|
||||||
|
haproxy-client-timeout: 90000
|
||||||
|
haproxy-queue-timeout: 9000
|
||||||
|
haproxy-connect-timeout: 9000
|
||||||
|
to:
|
||||||
|
- '3'
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
neutron-api:
|
||||||
|
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
|
||||||
|
haproxy-server-timeout: 90000
|
||||||
|
haproxy-client-timeout: 90000
|
||||||
|
haproxy-queue-timeout: 9000
|
||||||
|
haproxy-connect-timeout: 9000
|
||||||
|
to:
|
||||||
|
- '4'
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
neutron-dynamic-routing:
|
||||||
|
charm: ../../../neutron-dynamic-routing_ubuntu-22.04-amd64_ubuntu-22.10-amd64_ubuntu-23.04-amd64.charm
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '5'
|
||||||
|
|
||||||
|
rabbitmq-server:
|
||||||
|
charm: ch:rabbitmq-server
|
||||||
|
num_units: 1
|
||||||
|
to:
|
||||||
|
- '6'
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
osci-frr:
|
||||||
|
charm: ch:osci-frr
|
||||||
|
series: jammy
|
||||||
|
num_units: 1
|
||||||
|
to:
|
||||||
|
- '7'
|
||||||
|
|
||||||
|
ovn-central:
|
||||||
|
charm: ch:ovn-central
|
||||||
|
num_units: 3
|
||||||
|
options:
|
||||||
|
source: *openstack-origin
|
||||||
|
channel: latest/edge
|
||||||
|
to:
|
||||||
|
- '8'
|
||||||
|
- '9'
|
||||||
|
- '10'
|
||||||
|
neutron-api-plugin-ovn:
|
||||||
|
charm: ch:neutron-api-plugin-ovn
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
vault:
|
||||||
|
charm: ch:vault
|
||||||
|
num_units: 1
|
||||||
|
channel: latest/edge
|
||||||
|
to:
|
||||||
|
- '11'
|
||||||
|
relations:
|
||||||
|
|
||||||
|
- - 'neutron-dynamic-routing:amqp'
|
||||||
|
- 'rabbitmq-server:amqp'
|
||||||
|
|
||||||
|
- - 'neutron-dynamic-routing:bgp-speaker'
|
||||||
|
- 'osci-frr:bgpclient'
|
||||||
|
|
||||||
|
- - 'keystone:shared-db'
|
||||||
|
- 'keystone-mysql-router:shared-db'
|
||||||
|
- - 'keystone-mysql-router:db-router'
|
||||||
|
- 'mysql-innodb-cluster:db-router'
|
||||||
|
|
||||||
|
- - 'neutron-api:shared-db'
|
||||||
|
- 'neutron-api-mysql-router:shared-db'
|
||||||
|
- - 'neutron-api-mysql-router:db-router'
|
||||||
|
- 'mysql-innodb-cluster:db-router'
|
||||||
|
|
||||||
|
- - 'neutron-api:amqp'
|
||||||
|
- 'rabbitmq-server:amqp'
|
||||||
|
|
||||||
|
- - 'neutron-api:identity-service'
|
||||||
|
- 'keystone:identity-service'
|
||||||
|
|
||||||
|
- - ovn-central:certificates
|
||||||
|
- vault:certificates
|
||||||
|
|
||||||
|
- - ovn-central:ovsdb-cms
|
||||||
|
- neutron-api-plugin-ovn:ovsdb-cms
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- keystone:certificates
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api:certificates
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api-plugin-ovn:certificates
|
||||||
|
|
||||||
|
- - neutron-api-plugin-ovn:neutron-plugin
|
||||||
|
- neutron-api:neutron-plugin-api-subordinate
|
|
@ -21,6 +21,7 @@ machines:
|
||||||
'7':
|
'7':
|
||||||
# osci-frr has a limited set of supported series.
|
# osci-frr has a limited set of supported series.
|
||||||
series: jammy
|
series: jammy
|
||||||
|
'8':
|
||||||
|
|
||||||
applications:
|
applications:
|
||||||
|
|
||||||
|
@ -92,6 +93,13 @@ applications:
|
||||||
to:
|
to:
|
||||||
- '7'
|
- '7'
|
||||||
|
|
||||||
|
vault:
|
||||||
|
charm: ch:vault
|
||||||
|
num_units: 1
|
||||||
|
channel: latest/edge
|
||||||
|
to:
|
||||||
|
- '8'
|
||||||
|
|
||||||
relations:
|
relations:
|
||||||
|
|
||||||
- - 'neutron-dynamic-routing:amqp'
|
- - 'neutron-dynamic-routing:amqp'
|
||||||
|
@ -115,3 +123,9 @@ relations:
|
||||||
|
|
||||||
- - 'neutron-api:identity-service'
|
- - 'neutron-api:identity-service'
|
||||||
- 'keystone:identity-service'
|
- 'keystone:identity-service'
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- keystone:certificates
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api:certificates
|
|
@ -21,6 +21,7 @@ machines:
|
||||||
'7':
|
'7':
|
||||||
# osci-frr has a limited set of supported series.
|
# osci-frr has a limited set of supported series.
|
||||||
series: jammy
|
series: jammy
|
||||||
|
'8':
|
||||||
|
|
||||||
applications:
|
applications:
|
||||||
|
|
||||||
|
@ -92,6 +93,13 @@ applications:
|
||||||
to:
|
to:
|
||||||
- '7'
|
- '7'
|
||||||
|
|
||||||
|
vault:
|
||||||
|
charm: ch:vault
|
||||||
|
num_units: 1
|
||||||
|
channel: latest/edge
|
||||||
|
to:
|
||||||
|
- '8'
|
||||||
|
|
||||||
relations:
|
relations:
|
||||||
|
|
||||||
- - 'neutron-dynamic-routing:amqp'
|
- - 'neutron-dynamic-routing:amqp'
|
||||||
|
@ -115,3 +123,9 @@ relations:
|
||||||
|
|
||||||
- - 'neutron-api:identity-service'
|
- - 'neutron-api:identity-service'
|
||||||
- 'keystone:identity-service'
|
- 'keystone:identity-service'
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- keystone:certificates
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api:certificates
|
|
@ -0,0 +1,160 @@
|
||||||
|
local_overlay_enabled: False
|
||||||
|
|
||||||
|
variables:
|
||||||
|
openstack-origin: &openstack-origin distro
|
||||||
|
|
||||||
|
series: lunar
|
||||||
|
|
||||||
|
comment:
|
||||||
|
- 'machines section to decide order of deployment. database sooner = faster'
|
||||||
|
machines:
|
||||||
|
'0':
|
||||||
|
constraints: mem=3072M
|
||||||
|
'1':
|
||||||
|
constraints: mem=3072M
|
||||||
|
'2':
|
||||||
|
constraints: mem=3072M
|
||||||
|
'3':
|
||||||
|
'4':
|
||||||
|
'5':
|
||||||
|
'6':
|
||||||
|
'7':
|
||||||
|
# osci-frr has a limited set of supported series.
|
||||||
|
series: jammy
|
||||||
|
'8':
|
||||||
|
'9':
|
||||||
|
'10':
|
||||||
|
'11':
|
||||||
|
|
||||||
|
applications:
|
||||||
|
|
||||||
|
keystone-mysql-router:
|
||||||
|
charm: ch:mysql-router
|
||||||
|
channel: latest/edge
|
||||||
|
neutron-api-mysql-router:
|
||||||
|
charm: ch:mysql-router
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
mysql-innodb-cluster:
|
||||||
|
charm: ch:mysql-innodb-cluster
|
||||||
|
num_units: 3
|
||||||
|
to:
|
||||||
|
- '0'
|
||||||
|
- '1'
|
||||||
|
- '2'
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
keystone:
|
||||||
|
charm: ch:keystone
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
haproxy-server-timeout: 90000
|
||||||
|
haproxy-client-timeout: 90000
|
||||||
|
haproxy-queue-timeout: 9000
|
||||||
|
haproxy-connect-timeout: 9000
|
||||||
|
to:
|
||||||
|
- '3'
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
neutron-api:
|
||||||
|
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
|
||||||
|
haproxy-server-timeout: 90000
|
||||||
|
haproxy-client-timeout: 90000
|
||||||
|
haproxy-queue-timeout: 9000
|
||||||
|
haproxy-connect-timeout: 9000
|
||||||
|
to:
|
||||||
|
- '4'
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
neutron-dynamic-routing:
|
||||||
|
charm: ../../../neutron-dynamic-routing_ubuntu-22.04-amd64_ubuntu-22.10-amd64_ubuntu-23.04-amd64.charm
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '5'
|
||||||
|
|
||||||
|
rabbitmq-server:
|
||||||
|
charm: ch:rabbitmq-server
|
||||||
|
num_units: 1
|
||||||
|
to:
|
||||||
|
- '6'
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
osci-frr:
|
||||||
|
charm: ch:osci-frr
|
||||||
|
series: jammy
|
||||||
|
num_units: 1
|
||||||
|
to:
|
||||||
|
- '7'
|
||||||
|
|
||||||
|
ovn-central:
|
||||||
|
charm: ch:ovn-central
|
||||||
|
num_units: 3
|
||||||
|
options:
|
||||||
|
source: *openstack-origin
|
||||||
|
channel: latest/edge
|
||||||
|
to:
|
||||||
|
- '8'
|
||||||
|
- '9'
|
||||||
|
- '10'
|
||||||
|
neutron-api-plugin-ovn:
|
||||||
|
charm: ch:neutron-api-plugin-ovn
|
||||||
|
channel: latest/edge
|
||||||
|
|
||||||
|
vault:
|
||||||
|
charm: ch:vault
|
||||||
|
num_units: 1
|
||||||
|
channel: latest/edge
|
||||||
|
to:
|
||||||
|
- '11'
|
||||||
|
|
||||||
|
relations:
|
||||||
|
|
||||||
|
- - 'neutron-dynamic-routing:amqp'
|
||||||
|
- 'rabbitmq-server:amqp'
|
||||||
|
|
||||||
|
- - 'neutron-dynamic-routing:bgp-speaker'
|
||||||
|
- 'osci-frr:bgpclient'
|
||||||
|
|
||||||
|
- - 'keystone:shared-db'
|
||||||
|
- 'keystone-mysql-router:shared-db'
|
||||||
|
- - 'keystone-mysql-router:db-router'
|
||||||
|
- 'mysql-innodb-cluster:db-router'
|
||||||
|
|
||||||
|
- - 'neutron-api:shared-db'
|
||||||
|
- 'neutron-api-mysql-router:shared-db'
|
||||||
|
- - 'neutron-api-mysql-router:db-router'
|
||||||
|
- 'mysql-innodb-cluster:db-router'
|
||||||
|
|
||||||
|
- - 'neutron-api:amqp'
|
||||||
|
- 'rabbitmq-server:amqp'
|
||||||
|
|
||||||
|
- - 'neutron-api:identity-service'
|
||||||
|
- 'keystone:identity-service'
|
||||||
|
|
||||||
|
- - ovn-central:certificates
|
||||||
|
- vault:certificates
|
||||||
|
|
||||||
|
- - ovn-central:ovsdb-cms
|
||||||
|
- neutron-api-plugin-ovn:ovsdb-cms
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- keystone:certificates
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api:certificates
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api-plugin-ovn:certificates
|
||||||
|
|
||||||
|
- - neutron-api-plugin-ovn:neutron-plugin
|
||||||
|
- neutron-api:neutron-plugin-api-subordinate
|
|
@ -21,6 +21,7 @@ machines:
|
||||||
'7':
|
'7':
|
||||||
# osci-frr has a limited set of supported series.
|
# osci-frr has a limited set of supported series.
|
||||||
series: jammy
|
series: jammy
|
||||||
|
'8':
|
||||||
|
|
||||||
applications:
|
applications:
|
||||||
|
|
||||||
|
@ -92,6 +93,13 @@ applications:
|
||||||
to:
|
to:
|
||||||
- '7'
|
- '7'
|
||||||
|
|
||||||
|
vault:
|
||||||
|
charm: ch:vault
|
||||||
|
num_units: 1
|
||||||
|
channel: latest/edge
|
||||||
|
to:
|
||||||
|
- '8'
|
||||||
|
|
||||||
relations:
|
relations:
|
||||||
|
|
||||||
- - 'neutron-dynamic-routing:amqp'
|
- - 'neutron-dynamic-routing:amqp'
|
||||||
|
@ -115,3 +123,9 @@ relations:
|
||||||
|
|
||||||
- - 'neutron-api:identity-service'
|
- - 'neutron-api:identity-service'
|
||||||
- 'keystone:identity-service'
|
- 'keystone:identity-service'
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- keystone:certificates
|
||||||
|
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api:certificates
|
|
@ -1,6 +1,7 @@
|
||||||
charm_name: neutron-dynamic-routing
|
charm_name: neutron-dynamic-routing
|
||||||
|
|
||||||
configure:
|
configure:
|
||||||
|
- zaza.openstack.charm_tests.vault.setup.auto_initialize
|
||||||
- zaza.openstack.charm_tests.dragent.configure.setup
|
- zaza.openstack.charm_tests.dragent.configure.setup
|
||||||
|
|
||||||
gate_bundles:
|
gate_bundles:
|
||||||
|
@ -10,9 +11,25 @@ smoke_bundles:
|
||||||
- jammy-zed
|
- jammy-zed
|
||||||
|
|
||||||
dev_bundles:
|
dev_bundles:
|
||||||
|
# There is no jammy-zed-ovn bundle as neutron-dynamic-routing
|
||||||
|
# compatibility with ML2/ovn has only been declared in Neutron
|
||||||
|
# 22.0.0 which is used in 2023.1 (Antelope)
|
||||||
- jammy-zed
|
- jammy-zed
|
||||||
- jammy-antelope
|
- jammy-antelope
|
||||||
|
- jammy-antelope-ovn
|
||||||
- lunar-antelope
|
- lunar-antelope
|
||||||
|
- lunar-antelope-ovn
|
||||||
|
|
||||||
|
target_deploy_status:
|
||||||
|
neutron-api-plugin-ovn:
|
||||||
|
workload-status: waiting
|
||||||
|
workload-status-message-prefix: "'certificates' awaiting server certificate data, 'ovsdb-cms' incomplete"
|
||||||
|
ovn-central:
|
||||||
|
workload-status: waiting
|
||||||
|
workload-status-message-prefix: "'ovsdb-peer' incomplete, 'certificates' awaiting server certificate data"
|
||||||
|
vault:
|
||||||
|
workload-status: blocked
|
||||||
|
workload-status-message-prefix: Vault needs to be initialized
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
- zaza.openstack.charm_tests.dragent.tests.DRAgentTest
|
- zaza.openstack.charm_tests.dragent.tests.DRAgentTest
|
||||||
|
|
Loading…
Reference in New Issue