Enable OVN-native BGP in bgp_dt01#720
Conversation
224c5fc to
325169c
Compare
|
/lgtm |
325169c to
2378a05
Compare
f894bde to
476965c
Compare
476965c to
0cedc79
Compare
6af85d5 to
66c4046
Compare
66c4046 to
8c217d4
Compare
caea840 to
274cbf4
Compare
274cbf4 to
0011a39
Compare
|
I generated current vs proposed CRs and these files, created by kustomize, are changed: The above also changes for r1 and r2 of the above (7 files not 3), but I'm not showing those diffs since they follow the same pattern. one --- tmp/current/control-plane/controlplane.yaml 2026-07-05 12:30:37.738703195 -0400
+++ tmp/proposed/control-plane/controlplane.yaml 2026-07-05 12:29:51.694803668 -0400
@@ -117,7 +117,7 @@
secret: osp-secret
uniquePodNames: true
designate:
- enabled: true
+ enabled: false
template:
customServiceConfig: |
[DEFAULT]
@@ -356,25 +356,26 @@
template:
customServiceConfig: |
[DEFAULT]
+ service_plugins = qos,ovn-router,trunk,segments,port_forwarding,log,placement,ovn-bgp
vlan_transparent = true
debug = true
dns_domain = example.org.
- external_dns_driver = designate
+ # external_dns_driver = designate
[ovs]
igmp_snooping_enable = true
- [designate]
- url = https://designate-internal.openstack.svc:9001/v2
- auth_type = password
- auth_url = {{ .KeystoneInternalURL }}
- username = {{ .ServiceUser }}
- password = {{ .ServicePassword }}
- project_name = service
- project_domain_name = Default
- user_domain_name = Default
- allow_reverse_dns_lookup = True
- ipv4_ptr_zone_prefix_size = 24
- ipv6_ptr_zone_prefix_size = 116
- ptr_zone_email = admin@example.org
+ # [designate]
+ # url = https://designate-internal.openstack.svc:9001/v2
+ # auth_type = password
+ # auth_url = {{ .KeystoneInternalURL }}
+ # username = {{ .ServiceUser }}
+ # password = {{ .ServicePassword }}
+ # project_name = service
+ # project_domain_name = Default
+ # user_domain_name = Default
+ # allow_reverse_dns_lookup = True
+ # ipv4_ptr_zone_prefix_size = 24
+ # ipv6_ptr_zone_prefix_size = 116
+ # ptr_zone_email = admin@example.org
databaseInstance: openstack
networkAttachments:
- internalapi
@@ -443,7 +444,7 @@
replicas: 3
secret: osp-secret
octavia:
- enabled: true
+ enabled: false
template:
amphoraImageContainerImage: quay.io/gthiemonge/octavia-amphora-image
apacheContainerImage: registry.redhat.io/ubi9/httpd-24:latest
@@ -548,7 +549,7 @@
cpu: "1"
memory: 4Gi
redis:
- enabled: true
+ enabled: false
templates:
designate-redis:
replicas: 1two --- tmp/current/edpm-computes-r0/computes-r0.yaml 2026-07-05 12:30:38.042709135 -0400
+++ tmp/proposed/edpm-computes-r0/computes-r0.yaml 2026-07-05 12:29:52.019810017 -0400
@@ -50,11 +50,16 @@
ansiblePort: 22
ansibleUser: cloud-admin
ansibleVars:
+ bgp_bridges:
+ - br-bgp-0
+ - br-bgp-1
edpm_bootstrap_command: |
dnf -y install conntrack-tools
edpm_frr_bgp_ipv4_src_network: bgpmainnet
edpm_frr_bgp_ipv6_src_network: bgpmainnetv6
edpm_frr_bgp_neighbor_password: f00barZ
+ edpm_frr_ovn_vrf_advertise: ovnvrf42
+ edpm_frr_ovn_vrf_learn: ovnvrf10
edpm_network_config_hide_sensitive_logs: false
edpm_network_config_os_net_config_mappings:
edpm-r0-compute-0:
@@ -87,22 +92,37 @@
domain: {{ dns_search_domains }}
addresses:
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
- - type: interface
- name: nic3
+ - type: ovs_bridge
+ name: {{ bgp_bridges[0] }}
use_dhcp: false
+ use_dhcpv6: true # needed to enable IPv6 on bridges
addresses:
- - ip_netmask: {{ bgpnet0_ip }}/30
- - type: interface
- name: nic4
+ - ip_netmask: {{ bgpnet0_ip }}/30
+ defroute: false
+ members:
+ - type: interface
+ name: nic3
+ # force the MAC address of the bridge to this interface
+ primary: true
+ - type: ovs_bridge
+ name: {{ bgp_bridges[1] }}
use_dhcp: false
+ use_dhcpv6: true # needed to enable IPv6 on bridges
addresses:
- - ip_netmask: {{ bgpnet1_ip }}/30
+ - ip_netmask: {{ bgpnet1_ip }}/30
+ defroute: false
+ members:
+ - type: interface
+ name: nic4
+ # force the MAC address of the bridge to this interface
+ primary: true
- type: interface
name: lo
addresses:
- ip_netmask: {{ bgpmainnet_ip }}/32
- ip_netmask: {{ bgpmainnetv6_ip }}/128
- edpm_ovn_bgp_agent_expose_tenant_networks: true
+ edpm_neutron_ovn_agent_agent_extensions: metadata,ovn-bgp
+ edpm_neutron_ovn_agent_bgp_peer_bridges: '{{ bgp_bridges | join('','') }}'
edpm_ovn_bridge_mappings:
- datacentre:br-ex
- octavia:br-octavia
@@ -112,7 +132,6 @@
edpm_sshd_configure_firewall: true
gather_facts: false
neutron_physical_bridge_name: br-ex
- neutron_public_interface_name: eth1
timesync_ntp_servers:
- hostname: pool.ntp.org
ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret
@@ -153,9 +172,6 @@
edpm_frr_bgp_peers:
- 100.64.0.1
- 100.65.0.1
- edpm_ovn_bgp_agent_local_ovn_peer_ips:
- - 100.64.0.1
- - 100.65.0.1
hostName: edpm-r0-compute-0
networks:
- defaultRoute: true
@@ -187,7 +203,6 @@
- reboot-os
- install-certs
- ovn
- - neutron-metadata
- - ovn-bgp-agent
+ - neutron-ovn
- libvirt
- novathree --- tmp/current/edpm-networkers-r0/networkers-r0.yaml 2026-07-05 12:30:38.539718844 -0400
+++ tmp/proposed/edpm-networkers-r0/networkers-r0.yaml 2026-07-05 12:29:52.508819571 -0400
@@ -40,12 +40,17 @@
ansiblePort: 22
ansibleUser: cloud-admin
ansibleVars:
+ bgp_bridges:
+ - br-bgp-0
+ - br-bgp-1
edpm_bootstrap_command: |
dnf -y install conntrack-tools
edpm_enable_chassis_gw: true
edpm_frr_bgp_ipv4_src_network: bgpmainnet
edpm_frr_bgp_ipv6_src_network: bgpmainnetv6
edpm_frr_bgp_neighbor_password: f00barZ
+ edpm_frr_ovn_vrf_advertise: ovnvrf42
+ edpm_frr_ovn_vrf_learn: ovnvrf10
edpm_network_config_hide_sensitive_logs: false
edpm_network_config_os_net_config_mappings:
edpm-r0-networker-0:
@@ -78,22 +83,37 @@
domain: {{ dns_search_domains }}
addresses:
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
- - type: interface
- name: nic3
+ - type: ovs_bridge
+ name: {{ bgp_bridges[0] }}
use_dhcp: false
+ use_dhcpv6: true # needed to enable IPv6 on bridges
addresses:
- - ip_netmask: {{ bgpnet0_ip }}/30
- - type: interface
- name: nic4
+ - ip_netmask: {{ bgpnet0_ip }}/30
+ defroute: false
+ members:
+ - type: interface
+ name: nic3
+ # force the MAC address of the bridge to this interface
+ primary: true
+ - type: ovs_bridge
+ name: {{ bgp_bridges[1] }}
use_dhcp: false
+ use_dhcpv6: true # needed to enable IPv6 on bridges
addresses:
- - ip_netmask: {{ bgpnet1_ip }}/30
+ - ip_netmask: {{ bgpnet1_ip }}/30
+ defroute: false
+ members:
+ - type: interface
+ name: nic4
+ # force the MAC address of the bridge to this interface
+ primary: true
- type: interface
name: lo
addresses:
- ip_netmask: {{ bgpmainnet_ip }}/32
- ip_netmask: {{ bgpmainnetv6_ip }}/128
- edpm_ovn_bgp_agent_expose_tenant_networks: true
+ edpm_neutron_ovn_agent_agent_extensions: metadata,ovn-bgp
+ edpm_neutron_ovn_agent_bgp_peer_bridges: '{{ bgp_bridges | join('','') }}'
edpm_ovn_bridge_mappings:
- datacentre:br-ex
- octavia:br-octavia
@@ -103,7 +123,6 @@
edpm_sshd_configure_firewall: true
gather_facts: false
neutron_physical_bridge_name: br-ex
- neutron_public_interface_name: eth1
timesync_ntp_servers:
- hostname: pool.ntp.org
ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret
@@ -144,9 +163,6 @@
edpm_frr_bgp_peers:
- 100.64.0.5
- 100.65.0.5
- edpm_ovn_bgp_agent_local_ovn_peer_ips:
- - 100.64.0.5
- - 100.65.0.5
hostName: edpm-r0-networker-0
networks:
- defaultRoute: true
@@ -179,5 +195,4 @@
- reboot-os
- install-certs
- ovn
- - neutron-metadata
- - ovn-bgp-agent
+ - neutron-ovn |
fultonj
left a comment
There was a problem hiding this comment.
Should removing this line be included in this patch?
0011a39 to
256097e
Compare
256097e to
ced5652
Compare
addressed in latest patch set. |
|
/lgtm |
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 OSPRH-30907 - 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>
ced5652 to
7d3e02e
Compare
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ccamposr, eduolivares, fultonj The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Build succeeded (gate pipeline). ✔️ noop SUCCESS in 0s |
c4d80f7
into
openstack-k8s-operators:main
Replace ovn-bgp-agent with neutron-ovn (OVN agent) for BGP support:
OSPRH-30907
edpm_neutron_ovn_agent_bgp_peer_bridges
on top of nic3 and nic4 for each EDPM node
OSPRH-25973
Assisted-By: Claude Opus 4.6