Skip to content

Commit f894bde

Browse files
committed
Enable OVN-native BGP in bgp_dt01
Replace ovn-bgp-agent with neutron-ovn (OVN agent) for BGP support: - Add ovn-bgp neutron service plugin to control plane configuration - Add neutron-ovn-extra-config ConfigMap with OVN agent BGP extension - Replace neutron-metadata and ovn-bgp-agent EDPM services with neutron-ovn - Remove edpm_ovn_bgp_agent_* ansible variables (no longer needed) - Modify edpm_network_config_template br-bgp-0 and br-bgp-1 OVS bridges on top of nic3 and nic4 for each EDPM node - Update README.md services table OSPRH-25973 Assisted-By: Claude Opus 4.6 Signed-off-by: Eduardo Olivares <eolivare@redhat.com>
1 parent f04820d commit f894bde

10 files changed

Lines changed: 157 additions & 73 deletions

File tree

examples/dt/bgp_dt01/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ network).
8383
| Octavia | (default) | Must have |
8484
| Heat | (default) | Must have |
8585
| frr | dataplane | Must have |
86-
| ovn-bgp-agent | dataplane | Must have |
86+
| neutron-ovn | dataplane | Must have |
8787

8888
## Considerations/Constraints
8989

examples/dt/bgp_dt01/control-plane/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ components:
88
resources:
99
- networking/nncp/values.yaml
1010
- service-values.yaml
11+
- neutron-ovn-extra-config.yaml
1112

1213
transformers:
1314
# Set namespace to OpenStack on all namespaced objects without a namespace
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: neutron-ovn-extra-config
6+
namespace: openstack
7+
data:
8+
99-neutron-ovn.conf: |
9+
[agent]
10+
extensions = metadata,ovn-bgp

examples/dt/bgp_dt01/control-plane/service-values.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ data:
6767
neutron:
6868
customServiceConfig: |
6969
[DEFAULT]
70+
service_plugins = qos,ovn-router,trunk,segments,port_forwarding,log,placement,ovn-bgp
7071
vlan_transparent = true
7172
debug = true
7273
dns_domain = example.org.

examples/dt/bgp_dt01/edpm/computes/r0/values.yaml

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ data:
2424
edpm_ovn_bridge_mappings:
2525
- "datacentre:br-ex"
2626
- "octavia:br-octavia"
27-
edpm_ovn_bgp_agent_expose_tenant_networks: true
2827
edpm_frr_bgp_ipv4_src_network: bgpmainnet
2928
edpm_frr_bgp_ipv6_src_network: bgpmainnetv6
3029
edpm_frr_bgp_neighbor_password: f00barZ
30+
edpm_frr_ovn_vrf_learn: ovnvrf10
31+
edpm_frr_ovn_vrf_expose: ovnvrf42
32+
edpm_neutron_ovn_agent_bgp_peer_bridges: br-bgp-0,br-bgp-1
3133
timesync_ntp_servers:
3234
- hostname: pool.ntp.org
3335
# conntrack is necessary for some tobiko tests
@@ -65,16 +67,30 @@ data:
6567
domain: {{ dns_search_domains }}
6668
addresses:
6769
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
68-
- type: interface
69-
name: nic3
70+
- type: ovs_bridge
71+
name: br-bgp-0
7072
use_dhcp: false
73+
use_dhcpv6: true # needed to enable IPv6 on bridges
7174
addresses:
72-
- ip_netmask: {{ bgpnet0_ip }}/30
73-
- type: interface
74-
name: nic4
75+
- ip_netmask: {{ bgpnet0_ip }}/30
76+
defroute: false
77+
members:
78+
- type: interface
79+
name: nic3
80+
# force the MAC address of the bridge to this interface
81+
primary: true
82+
- type: ovs_bridge
83+
name: br-bgp-1
7584
use_dhcp: false
85+
use_dhcpv6: true # needed to enable IPv6 on bridges
7686
addresses:
77-
- ip_netmask: {{ bgpnet1_ip }}/30
87+
- ip_netmask: {{ bgpnet1_ip }}/30
88+
defroute: false
89+
members:
90+
- type: interface
91+
name: nic4
92+
# force the MAC address of the bridge to this interface
93+
primary: true
7894
- type: interface
7995
name: lo
8096
addresses:
@@ -122,9 +138,6 @@ data:
122138
ansible:
123139
ansibleHost: 192.168.122.100
124140
ansibleVars:
125-
edpm_ovn_bgp_agent_local_ovn_peer_ips:
126-
- 100.64.0.1
127-
- 100.65.0.1
128141
edpm_frr_bgp_peers:
129142
- 100.64.0.1
130143
- 100.65.0.1
@@ -159,8 +172,7 @@ data:
159172
- reboot-os
160173
- install-certs
161174
- ovn
162-
- neutron-metadata
163-
- ovn-bgp-agent
175+
- neutron-ovn
164176
- libvirt
165177
- nova
166178
nova:

examples/dt/bgp_dt01/edpm/computes/r1/values.yaml

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ data:
2424
edpm_ovn_bridge_mappings:
2525
- "datacentre:br-ex"
2626
- "octavia:br-octavia"
27-
edpm_ovn_bgp_agent_expose_tenant_networks: true
2827
edpm_frr_bgp_ipv4_src_network: bgpmainnet
2928
edpm_frr_bgp_ipv6_src_network: bgpmainnetv6
3029
edpm_frr_bgp_neighbor_password: f00barZ
30+
edpm_frr_ovn_vrf_learn: ovnvrf10
31+
edpm_frr_ovn_vrf_expose: ovnvrf42
32+
edpm_neutron_ovn_agent_bgp_peer_bridges: br-bgp-0,br-bgp-1
3133
timesync_ntp_servers:
3234
- hostname: pool.ntp.org
3335
# conntrack is necessary for some tobiko tests
@@ -65,16 +67,30 @@ data:
6567
domain: {{ dns_search_domains }}
6668
addresses:
6769
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
68-
- type: interface
69-
name: nic3
70+
- type: ovs_bridge
71+
name: br-bgp-0
7072
use_dhcp: false
73+
use_dhcpv6: true # needed to enable IPv6 on bridges
7174
addresses:
72-
- ip_netmask: {{ bgpnet0_ip }}/30
73-
- type: interface
74-
name: nic4
75+
- ip_netmask: {{ bgpnet0_ip }}/30
76+
defroute: false
77+
members:
78+
- type: interface
79+
name: nic3
80+
# force the MAC address of the bridge to this interface
81+
primary: true
82+
- type: ovs_bridge
83+
name: br-bgp-1
7584
use_dhcp: false
85+
use_dhcpv6: true # needed to enable IPv6 on bridges
7686
addresses:
77-
- ip_netmask: {{ bgpnet1_ip }}/30
87+
- ip_netmask: {{ bgpnet1_ip }}/30
88+
defroute: false
89+
members:
90+
- type: interface
91+
name: nic4
92+
# force the MAC address of the bridge to this interface
93+
primary: true
7894
- type: interface
7995
name: lo
8096
addresses:
@@ -122,9 +138,6 @@ data:
122138
ansible:
123139
ansibleHost: 192.168.123.100
124140
ansibleVars:
125-
edpm_ovn_bgp_agent_local_ovn_peer_ips:
126-
- 100.64.1.1
127-
- 100.65.1.1
128141
edpm_frr_bgp_peers:
129142
- 100.64.1.1
130143
- 100.65.1.1
@@ -159,8 +172,7 @@ data:
159172
- reboot-os
160173
- install-certs
161174
- ovn
162-
- neutron-metadata
163-
- ovn-bgp-agent
175+
- neutron-ovn
164176
- libvirt
165177
- nova
166178
nova:

examples/dt/bgp_dt01/edpm/computes/r2/values.yaml

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ data:
2424
edpm_ovn_bridge_mappings:
2525
- "datacentre:br-ex"
2626
- "octavia:br-octavia"
27-
edpm_ovn_bgp_agent_expose_tenant_networks: true
2827
edpm_frr_bgp_ipv4_src_network: bgpmainnet
2928
edpm_frr_bgp_ipv6_src_network: bgpmainnetv6
3029
edpm_frr_bgp_neighbor_password: f00barZ
30+
edpm_frr_ovn_vrf_learn: ovnvrf10
31+
edpm_frr_ovn_vrf_expose: ovnvrf42
32+
edpm_neutron_ovn_agent_bgp_peer_bridges: br-bgp-0,br-bgp-1
3133
timesync_ntp_servers:
3234
- hostname: pool.ntp.org
3335
# conntrack is necessary for some tobiko tests
@@ -65,16 +67,30 @@ data:
6567
domain: {{ dns_search_domains }}
6668
addresses:
6769
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
68-
- type: interface
69-
name: nic3
70+
- type: ovs_bridge
71+
name: br-bgp-0
7072
use_dhcp: false
73+
use_dhcpv6: true # needed to enable IPv6 on bridges
7174
addresses:
72-
- ip_netmask: {{ bgpnet0_ip }}/30
73-
- type: interface
74-
name: nic4
75+
- ip_netmask: {{ bgpnet0_ip }}/30
76+
defroute: false
77+
members:
78+
- type: interface
79+
name: nic3
80+
# force the MAC address of the bridge to this interface
81+
primary: true
82+
- type: ovs_bridge
83+
name: br-bgp-1
7584
use_dhcp: false
85+
use_dhcpv6: true # needed to enable IPv6 on bridges
7686
addresses:
77-
- ip_netmask: {{ bgpnet1_ip }}/30
87+
- ip_netmask: {{ bgpnet1_ip }}/30
88+
defroute: false
89+
members:
90+
- type: interface
91+
name: nic4
92+
# force the MAC address of the bridge to this interface
93+
primary: true
7894
- type: interface
7995
name: lo
8096
addresses:
@@ -122,9 +138,6 @@ data:
122138
ansible:
123139
ansibleHost: 192.168.124.100
124140
ansibleVars:
125-
edpm_ovn_bgp_agent_local_ovn_peer_ips:
126-
- 100.64.2.1
127-
- 100.65.2.1
128141
edpm_frr_bgp_peers:
129142
- 100.64.2.1
130143
- 100.65.2.1
@@ -159,8 +172,7 @@ data:
159172
- reboot-os
160173
- install-certs
161174
- ovn
162-
- neutron-metadata
163-
- ovn-bgp-agent
175+
- neutron-ovn
164176
- libvirt
165177
- nova
166178
nova:

examples/dt/bgp_dt01/edpm/networkers/r0/values.yaml

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ data:
2424
edpm_ovn_bridge_mappings:
2525
- "datacentre:br-ex"
2626
- "octavia:br-octavia"
27-
edpm_ovn_bgp_agent_expose_tenant_networks: true
2827
edpm_frr_bgp_ipv4_src_network: bgpmainnet
2928
edpm_frr_bgp_ipv6_src_network: bgpmainnetv6
3029
edpm_frr_bgp_neighbor_password: f00barZ
30+
edpm_frr_ovn_vrf_learn: ovnvrf10
31+
edpm_frr_ovn_vrf_expose: ovnvrf42
32+
edpm_neutron_ovn_agent_bgp_peer_bridges: br-bgp-0,br-bgp-1
3133
timesync_ntp_servers:
3234
- hostname: pool.ntp.org
3335
# conntrack is necessary for some tobiko tests
@@ -65,16 +67,30 @@ data:
6567
domain: {{ dns_search_domains }}
6668
addresses:
6769
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
68-
- type: interface
69-
name: nic3
70+
- type: ovs_bridge
71+
name: br-bgp-0
7072
use_dhcp: false
73+
use_dhcpv6: true # needed to enable IPv6 on bridges
7174
addresses:
72-
- ip_netmask: {{ bgpnet0_ip }}/30
73-
- type: interface
74-
name: nic4
75+
- ip_netmask: {{ bgpnet0_ip }}/30
76+
defroute: false
77+
members:
78+
- type: interface
79+
name: nic3
80+
# force the MAC address of the bridge to this interface
81+
primary: true
82+
- type: ovs_bridge
83+
name: br-bgp-1
7584
use_dhcp: false
85+
use_dhcpv6: true # needed to enable IPv6 on bridges
7686
addresses:
77-
- ip_netmask: {{ bgpnet1_ip }}/30
87+
- ip_netmask: {{ bgpnet1_ip }}/30
88+
defroute: false
89+
members:
90+
- type: interface
91+
name: nic4
92+
# force the MAC address of the bridge to this interface
93+
primary: true
7894
- type: interface
7995
name: lo
8096
addresses:
@@ -123,9 +139,6 @@ data:
123139
ansible:
124140
ansibleHost: 192.168.122.200
125141
ansibleVars:
126-
edpm_ovn_bgp_agent_local_ovn_peer_ips:
127-
- 100.64.0.5
128-
- 100.65.0.5
129142
edpm_frr_bgp_peers:
130143
- 100.64.0.5
131144
- 100.65.0.5
@@ -161,8 +174,7 @@ data:
161174
- reboot-os
162175
- install-certs
163176
- ovn
164-
- neutron-metadata
165-
- ovn-bgp-agent
177+
- neutron-ovn
166178
nova:
167179
migration:
168180
ssh_keys:

examples/dt/bgp_dt01/edpm/networkers/r1/values.yaml

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ data:
2424
edpm_ovn_bridge_mappings:
2525
- "datacentre:br-ex"
2626
- "octavia:br-octavia"
27-
edpm_ovn_bgp_agent_expose_tenant_networks: true
2827
edpm_frr_bgp_ipv4_src_network: bgpmainnet
2928
edpm_frr_bgp_ipv6_src_network: bgpmainnetv6
3029
edpm_frr_bgp_neighbor_password: f00barZ
30+
edpm_frr_ovn_vrf_learn: ovnvrf10
31+
edpm_frr_ovn_vrf_expose: ovnvrf42
32+
edpm_neutron_ovn_agent_bgp_peer_bridges: br-bgp-0,br-bgp-1
3133
timesync_ntp_servers:
3234
- hostname: pool.ntp.org
3335
# conntrack is necessary for some tobiko tests
@@ -65,16 +67,30 @@ data:
6567
domain: {{ dns_search_domains }}
6668
addresses:
6769
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
68-
- type: interface
69-
name: nic3
70+
- type: ovs_bridge
71+
name: br-bgp-0
7072
use_dhcp: false
73+
use_dhcpv6: true # needed to enable IPv6 on bridges
7174
addresses:
72-
- ip_netmask: {{ bgpnet0_ip }}/30
73-
- type: interface
74-
name: nic4
75+
- ip_netmask: {{ bgpnet0_ip }}/30
76+
defroute: false
77+
members:
78+
- type: interface
79+
name: nic3
80+
# force the MAC address of the bridge to this interface
81+
primary: true
82+
- type: ovs_bridge
83+
name: br-bgp-1
7584
use_dhcp: false
85+
use_dhcpv6: true # needed to enable IPv6 on bridges
7686
addresses:
77-
- ip_netmask: {{ bgpnet1_ip }}/30
87+
- ip_netmask: {{ bgpnet1_ip }}/30
88+
defroute: false
89+
members:
90+
- type: interface
91+
name: nic4
92+
# force the MAC address of the bridge to this interface
93+
primary: true
7894
- type: interface
7995
name: lo
8096
addresses:
@@ -123,9 +139,6 @@ data:
123139
ansible:
124140
ansibleHost: 192.168.123.200
125141
ansibleVars:
126-
edpm_ovn_bgp_agent_local_ovn_peer_ips:
127-
- 100.64.1.5
128-
- 100.65.1.5
129142
edpm_frr_bgp_peers:
130143
- 100.64.1.5
131144
- 100.65.1.5
@@ -161,8 +174,7 @@ data:
161174
- reboot-os
162175
- install-certs
163176
- ovn
164-
- neutron-metadata
165-
- ovn-bgp-agent
177+
- neutron-ovn
166178
nova:
167179
migration:
168180
ssh_keys:

0 commit comments

Comments
 (0)