Skip to content

Commit 0011a39

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 - Disable octavia, which cannot be used with OVN-native BGP due to limitations - Disabled designate due to OSPRH-26878 - Replace neutron-metadata and ovn-bgp-agent EDPM services with neutron-ovn - Remove edpm_ovn_bgp_agent_* ansible variables (no longer needed) - Configure edpm_neutron_ovn_agent_agent_extensions and edpm_neutron_ovn_agent_bgp_peer_bridges - 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 309e169 commit 0011a39

8 files changed

Lines changed: 191 additions & 96 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/service-values.yaml

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ data:
3434
enabled: true
3535

3636
octavia:
37-
enabled: true
37+
# octavia is disabled due to limitation with Native OVN BGP:
38+
# with this feature, only one provider network can be configured, while
39+
# octavia needs its own provider network.
40+
enabled: false
3841
amphoraImageContainerImage: quay.io/gthiemonge/octavia-amphora-image
3942
apacheContainerImage: registry.redhat.io/ubi9/httpd-24:latest
4043
octaviaAPI:
@@ -64,35 +67,37 @@ data:
6467
nodeSelector:
6568
node-role.kubernetes.io/worker: ""
6669

70+
# designate disabled and designate parameters commented out due to OSPRH-26878
6771
neutron:
6872
customServiceConfig: |
6973
[DEFAULT]
74+
service_plugins = qos,ovn-router,trunk,segments,port_forwarding,log,placement,ovn-bgp
7075
vlan_transparent = true
7176
debug = true
7277
dns_domain = example.org.
73-
external_dns_driver = designate
78+
# external_dns_driver = designate
7479
[ovs]
7580
igmp_snooping_enable = true
76-
[designate]
77-
url = https://designate-internal.openstack.svc:9001/v2
78-
auth_type = password
79-
auth_url = {{ .KeystoneInternalURL }}
80-
username = {{ .ServiceUser }}
81-
password = {{ .ServicePassword }}
82-
project_name = service
83-
project_domain_name = Default
84-
user_domain_name = Default
85-
allow_reverse_dns_lookup = True
86-
ipv4_ptr_zone_prefix_size = 24
87-
ipv6_ptr_zone_prefix_size = 116
88-
ptr_zone_email = admin@example.org
81+
# [designate]
82+
# url = https://designate-internal.openstack.svc:9001/v2
83+
# auth_type = password
84+
# auth_url = {{ .KeystoneInternalURL }}
85+
# username = {{ .ServiceUser }}
86+
# password = {{ .ServicePassword }}
87+
# project_name = service
88+
# project_domain_name = Default
89+
# user_domain_name = Default
90+
# allow_reverse_dns_lookup = True
91+
# ipv4_ptr_zone_prefix_size = 24
92+
# ipv6_ptr_zone_prefix_size = 116
93+
# ptr_zone_email = admin@example.org
8994
9095
designate-redis:
91-
enabled: true
96+
enabled: false
9297
replicas: 1
9398

9499
designate:
95-
enabled: true
100+
enabled: false
96101
nsRecords:
97102
- hostname: ns1.example.org.
98103
priority: 1

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

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,16 @@ 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_advertise: ovnvrf42
32+
bgp_bridges:
33+
- br-bgp-0
34+
- br-bgp-1
35+
edpm_neutron_ovn_agent_bgp_peer_bridges: "{{ bgp_bridges | join(',') }}"
36+
edpm_neutron_ovn_agent_agent_extensions: "metadata,ovn-bgp"
3137
timesync_ntp_servers:
3238
- hostname: pool.ntp.org
3339
# conntrack is necessary for some tobiko tests
@@ -65,16 +71,30 @@ data:
6571
domain: {{ dns_search_domains }}
6672
addresses:
6773
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
68-
- type: interface
69-
name: nic3
74+
- type: ovs_bridge
75+
name: {{ bgp_bridges[0] }}
7076
use_dhcp: false
77+
use_dhcpv6: true # needed to enable IPv6 on bridges
7178
addresses:
72-
- ip_netmask: {{ bgpnet0_ip }}/30
73-
- type: interface
74-
name: nic4
79+
- ip_netmask: {{ bgpnet0_ip }}/30
80+
defroute: false
81+
members:
82+
- type: interface
83+
name: nic3
84+
# force the MAC address of the bridge to this interface
85+
primary: true
86+
- type: ovs_bridge
87+
name: {{ bgp_bridges[1] }}
7588
use_dhcp: false
89+
use_dhcpv6: true # needed to enable IPv6 on bridges
7690
addresses:
77-
- ip_netmask: {{ bgpnet1_ip }}/30
91+
- ip_netmask: {{ bgpnet1_ip }}/30
92+
defroute: false
93+
members:
94+
- type: interface
95+
name: nic4
96+
# force the MAC address of the bridge to this interface
97+
primary: true
7898
- type: interface
7999
name: lo
80100
addresses:
@@ -85,7 +105,6 @@ data:
85105
edpm_sshd_configure_firewall: true
86106
gather_facts: false
87107
neutron_physical_bridge_name: br-ex
88-
neutron_public_interface_name: eth1
89108
networks:
90109
- defaultRoute: true
91110
name: CtlPlane
@@ -120,9 +139,6 @@ data:
120139
ansible:
121140
ansibleHost: 192.168.122.100
122141
ansibleVars:
123-
edpm_ovn_bgp_agent_local_ovn_peer_ips:
124-
- 100.64.0.1
125-
- 100.65.0.1
126142
edpm_frr_bgp_peers:
127143
- 100.64.0.1
128144
- 100.65.0.1
@@ -155,8 +171,7 @@ data:
155171
- reboot-os
156172
- install-certs
157173
- ovn
158-
- neutron-metadata
159-
- ovn-bgp-agent
174+
- neutron-ovn
160175
- libvirt
161176
- nova
162177
nova:

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

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,16 @@ 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_advertise: ovnvrf42
32+
bgp_bridges:
33+
- br-bgp-0
34+
- br-bgp-1
35+
edpm_neutron_ovn_agent_bgp_peer_bridges: "{{ bgp_bridges | join(',') }}"
36+
edpm_neutron_ovn_agent_agent_extensions: "metadata,ovn-bgp"
3137
timesync_ntp_servers:
3238
- hostname: pool.ntp.org
3339
# conntrack is necessary for some tobiko tests
@@ -65,16 +71,30 @@ data:
6571
domain: {{ dns_search_domains }}
6672
addresses:
6773
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
68-
- type: interface
69-
name: nic3
74+
- type: ovs_bridge
75+
name: {{ bgp_bridges[0] }}
7076
use_dhcp: false
77+
use_dhcpv6: true # needed to enable IPv6 on bridges
7178
addresses:
72-
- ip_netmask: {{ bgpnet0_ip }}/30
73-
- type: interface
74-
name: nic4
79+
- ip_netmask: {{ bgpnet0_ip }}/30
80+
defroute: false
81+
members:
82+
- type: interface
83+
name: nic3
84+
# force the MAC address of the bridge to this interface
85+
primary: true
86+
- type: ovs_bridge
87+
name: {{ bgp_bridges[1] }}
7588
use_dhcp: false
89+
use_dhcpv6: true # needed to enable IPv6 on bridges
7690
addresses:
77-
- ip_netmask: {{ bgpnet1_ip }}/30
91+
- ip_netmask: {{ bgpnet1_ip }}/30
92+
defroute: false
93+
members:
94+
- type: interface
95+
name: nic4
96+
# force the MAC address of the bridge to this interface
97+
primary: true
7898
- type: interface
7999
name: lo
80100
addresses:
@@ -85,7 +105,6 @@ data:
85105
edpm_sshd_configure_firewall: true
86106
gather_facts: false
87107
neutron_physical_bridge_name: br-ex
88-
neutron_public_interface_name: eth1
89108
networks:
90109
- defaultRoute: true
91110
name: CtlPlane
@@ -120,9 +139,6 @@ data:
120139
ansible:
121140
ansibleHost: 192.168.123.100
122141
ansibleVars:
123-
edpm_ovn_bgp_agent_local_ovn_peer_ips:
124-
- 100.64.1.1
125-
- 100.65.1.1
126142
edpm_frr_bgp_peers:
127143
- 100.64.1.1
128144
- 100.65.1.1
@@ -155,8 +171,7 @@ data:
155171
- reboot-os
156172
- install-certs
157173
- ovn
158-
- neutron-metadata
159-
- ovn-bgp-agent
174+
- neutron-ovn
160175
- libvirt
161176
- nova
162177
nova:

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

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,16 @@ 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_advertise: ovnvrf42
32+
bgp_bridges:
33+
- br-bgp-0
34+
- br-bgp-1
35+
edpm_neutron_ovn_agent_bgp_peer_bridges: "{{ bgp_bridges | join(',') }}"
36+
edpm_neutron_ovn_agent_agent_extensions: "metadata,ovn-bgp"
3137
timesync_ntp_servers:
3238
- hostname: pool.ntp.org
3339
# conntrack is necessary for some tobiko tests
@@ -65,16 +71,30 @@ data:
6571
domain: {{ dns_search_domains }}
6672
addresses:
6773
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
68-
- type: interface
69-
name: nic3
74+
- type: ovs_bridge
75+
name: {{ bgp_bridges[0] }}
7076
use_dhcp: false
77+
use_dhcpv6: true # needed to enable IPv6 on bridges
7178
addresses:
72-
- ip_netmask: {{ bgpnet0_ip }}/30
73-
- type: interface
74-
name: nic4
79+
- ip_netmask: {{ bgpnet0_ip }}/30
80+
defroute: false
81+
members:
82+
- type: interface
83+
name: nic3
84+
# force the MAC address of the bridge to this interface
85+
primary: true
86+
- type: ovs_bridge
87+
name: {{ bgp_bridges[1] }}
7588
use_dhcp: false
89+
use_dhcpv6: true # needed to enable IPv6 on bridges
7690
addresses:
77-
- ip_netmask: {{ bgpnet1_ip }}/30
91+
- ip_netmask: {{ bgpnet1_ip }}/30
92+
defroute: false
93+
members:
94+
- type: interface
95+
name: nic4
96+
# force the MAC address of the bridge to this interface
97+
primary: true
7898
- type: interface
7999
name: lo
80100
addresses:
@@ -85,7 +105,6 @@ data:
85105
edpm_sshd_configure_firewall: true
86106
gather_facts: false
87107
neutron_physical_bridge_name: br-ex
88-
neutron_public_interface_name: eth1
89108
networks:
90109
- defaultRoute: true
91110
name: CtlPlane
@@ -120,9 +139,6 @@ data:
120139
ansible:
121140
ansibleHost: 192.168.124.100
122141
ansibleVars:
123-
edpm_ovn_bgp_agent_local_ovn_peer_ips:
124-
- 100.64.2.1
125-
- 100.65.2.1
126142
edpm_frr_bgp_peers:
127143
- 100.64.2.1
128144
- 100.65.2.1
@@ -155,8 +171,7 @@ data:
155171
- reboot-os
156172
- install-certs
157173
- ovn
158-
- neutron-metadata
159-
- ovn-bgp-agent
174+
- neutron-ovn
160175
- libvirt
161176
- nova
162177
nova:

0 commit comments

Comments
 (0)