Skip to content

Commit 50d79e3

Browse files
eduolivaresklgill
andcommitted
Add BGP-specific documentation for adoption procedures
Add documentation for BGP-enabled OpenStack environments to the adoption procedures. This includes: - BGPConfiguration CR creation before mariadb-client pod setup - Network annotation requirements with default route for BGP environments - Wait time explanation for BGP route propagation - Required services (frr, ovn-bgp-agent) for compute and networker nodes - BGP-specific Ansible variables configuration Changes to proc_retrieving-topology-specific-service-configuration.adoc: - Add step to create BGPConfiguration custom resource for BGP environments - Add note about MARIADB_CLIENT_ANNOTATIONS requiring default route - Expand connectivity wait explanation for BGP route advertisement Changes to proc_adopting-compute-services-to-the-data-plane.adoc: - Document frr and ovn-bgp-agent services for BGP deployments - List required BGP Ansible variables (images, networks, passwords) Changes to proc_adopting-networker-services-to-the-data-plane.adoc: - Document frr and ovn-bgp-agent services for BGP networker nodes - List required BGP Ansible variables Assisted-By: Claude (claude-4.5-sonnet) Co-authored-by: Katie Gilligan <kgilliga@redhat.com>
1 parent 5391bb5 commit 50d79e3

3 files changed

Lines changed: 78 additions & 6 deletions

docs_user/modules/proc_adopting-compute-services-to-the-data-plane.adoc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -637,8 +637,24 @@ done
637637
----
638638
+
639639
[NOTE]
640+
====
640641
Ensure that you use the same list of services from the original `OpenStackDataPlaneNodeSet` CR, except for the `ceph-client` and `ceph-hci-pre` services.
641642
643+
For environments that are enabled with border gateway protocol (BGP), you must add the following services to the list in the order shown:
644+
645+
* After `configure-network` and before `validate-network`: Add `frr` service for FRRouting BGP support
646+
* After `neutron-metadata` and before `libvirt`: Add `ovn-bgp-agent` service for OVN BGP agent
647+
648+
You must also configure the following additional Ansible variables in the `nodeTemplate.ansible.ansibleVars` section:
649+
650+
* `edpm_frr_image`: The FRRouting container image
651+
* `edpm_ovn_bgp_agent_image`: The OVN BGP agent container image
652+
* `edpm_frr_bgp_ipv4_src_network`: The network name for BGP IPv4 source (for example, `bgpmainnet`)
653+
* `edpm_frr_bgp_ipv6_src_network`: The network name for BGP IPv6 source (for example, `bgpmainnetv6`)
654+
* `edpm_frr_bgp_neighbor_password`: The BGP neighbor password
655+
* `edpm_ovn_encap_ip`: Set to the BGP main network IP (for example, `{{ lookup("vars", "bgpmainnet_ip") }}`)
656+
====
657+
642658
. Optional: Enable `neutron-sriov-nic-agent` in the `OpenStackDataPlaneNodeSet` CR:
643659
+
644660
----

docs_user/modules/proc_adopting-networker-services-to-the-data-plane.adoc

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,23 @@ EOF
258258
* `spec.tlsEnabled` specifies whether TLS Everywhere is enabled. If TLS is enabled, change `spec:tlsEnabled` to `true`.
259259
* `edpm_ovn_bridge_mappings: <bridge_mappings>` specifies the bridge mapping values that you used in your {rhos_prev_long} {rhos_prev_ver} deployment.
260260
* `edpm_enable_chassis_gw` specifies whether to run `ovn-controller` in gateway mode.
261+
+
262+
[NOTE]
263+
====
264+
For environments that are enabled with border gateway protocol (BGP), you must add the following services to the `services` list in the order shown:
265+
266+
* After `configure-network` and before `validate-network`: Add `frr` service for FRRouting BGP support
267+
* After `ovn` and `neutron-metadata` services: Add `ovn-bgp-agent` service
268+
269+
You must also configure the following additional Ansible variables in the `nodeTemplate.ansible.ansibleVars` section:
270+
271+
* `edpm_frr_image`: The FRRouting container image
272+
* `edpm_ovn_bgp_agent_image`: The OVN BGP agent container image
273+
* `edpm_frr_bgp_ipv4_src_network`: The network name for BGP IPv4 source (for example, `bgpmainnet`)
274+
* `edpm_frr_bgp_ipv6_src_network`: The network name for BGP IPv6 source (for example, `bgpmainnetv6`)
275+
* `edpm_frr_bgp_neighbor_password`: The BGP neighbor password
276+
* `edpm_ovn_encap_ip`: Set to the BGP main network IP (for example, `{{ lookup("vars", "bgpmainnet_ip") }}`)
277+
====
261278

262279
. Ensure that you use the same `ovn-controller` settings in the `OpenStackDataPlaneNodeSet` CR that you used in the Networker nodes before adoption. This configuration is stored in the `external_ids` column in the `Open_vSwitch` table in the Open vSwitch database:
263280
+

docs_user/modules/proc_retrieving-topology-specific-service-configuration.adoc

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,23 @@ endif::[]
9393
ifeval::["{build_variant}" != "ospdo"]
9494
$ MARIADB_CLIENT_ANNOTATIONS='--annotations=k8s.v1.cni.cncf.io/networks=internalapi'
9595
$ MARIADB_RUN_OVERRIDES="$MARIADB_CLIENT_ANNOTATIONS"
96+
----
97+
+
98+
[NOTE]
99+
====
100+
For environments that are enabled with border gateway protocol (BGP), the network annotation must include a default route to enable proper routing. Use the following instead:
101+
102+
----
103+
$ MARIADB_CLIENT_ANNOTATIONS='--annotations=k8s.v1.cni.cncf.io/networks=[{"name":"internalapi","namespace":"openstack","default-route":["<172.17.0.1>"]}]'
104+
$ MARIADB_RUN_OVERRIDES="$MARIADB_CLIENT_ANNOTATIONS"
105+
----
106+
where:
107+
108+
<172.17.0.1>::
109+
Replace with the gateway IP address of your `internalapi` network.
110+
====
111+
+
112+
----
96113
97114
ifeval::["{build}" != "downstream"]
98115
$ CONTROLLER1_SSH="ssh -i ~/install_yamls/out/edpm/ansibleee-ssh-key-id_rsa root@192.168.122.100"
@@ -136,22 +153,44 @@ The source cloud always uses the same password for cells databases. For that rea
136153

137154
.Procedure
138155

139-
. Create a persistent mariadb-client pod for database operations:
156+
. If your source {OpenStackShort} environment uses border gateway protocol (BGP) for Layer 3 networking, create a `BGPConfiguration` custom resource to enable BGP routing:
157+
+
158+
----
159+
$ cat << EOF > bgp.yaml
160+
apiVersion: network.openstack.org/v1beta1
161+
kind: BGPConfiguration
162+
metadata:
163+
name: bgpconfiguration
164+
namespace: openstack
165+
spec: {}
166+
EOF
167+
168+
$ oc apply -f bgp.yaml
169+
----
170+
+
171+
The `BGPConfiguration` resource enables BGP route advertisement between the {rhocp_long} cluster and the source cloud, which is necessary for the `mariadb-client` pod to reach the source MariaDB cluster.
172+
173+
. Create a persistent `mariadb-client` pod for database operations:
140174
+
141175
----
142176
$ oc delete pod mariadb-client || true
143177
$ oc run mariadb-client ${MARIADB_RUN_OVERRIDES} -q --image ${MARIADB_IMAGE} --restart=Never -- /usr/bin/sleep infinity
144178
----
145179
+
146-
This creates a long-running pod that will be used for all subsequent database operations, avoiding the need to create temporary pods for each command.
180+
This creates a long-running pod that is used for all subsequent database operations, avoiding the need to create temporary pods for each command.
147181

148-
. Wait for the mariadb-client pod to be able to reach the source MariaDB:
182+
. Wait for the `mariadb-client` pod to be able to reach the source MariaDB:
149183
+
150184
----
151185
$ oc rsh mariadb-client mysql -rsh "${SOURCE_MARIADB_IP[default]}" -uroot -p"${SOURCE_DB_ROOT_PASSWORD[default]}" -e 'select 1;'
152186
----
153187
+
154-
This command might take a few moments to succeed, especially if BGP routes need to propagate. You can retry if it fails initially.
188+
[NOTE]
189+
====
190+
For BGP-enabled environments, this command might take a few moments to succeed while BGP routes are advertised and propagated through the network. The `mariadb-client` pod needs to receive the route to the source MariaDB IP address through BGP before it can establish a connection. If the command fails, wait a few seconds and retry. The connection should succeed once the BGP route advertisement is complete.
191+
192+
For standard (non-BGP) deployments, this command should succeed immediately.
193+
====
155194

156195
. Export the shell variables for the following outputs and test the connection to the {OpenStackShort} database:
157196
+
@@ -255,13 +294,13 @@ $ chmod 0600 ~/.source_cloud_exported_variables*
255294
+
256295
* `declare -xA SRIOV_AGENTS` gets the `neutron-sriov-nic-agent` configuration to use for the data plane adoption if `neutron-sriov-nic-agent` agents are running in your {OpenStackShort} deployment.
257296

258-
. Clean up the mariadb-client pod:
297+
. Clean up the `mariadb-client` pod:
259298
+
260299
----
261300
$ oc delete pod mariadb-client
262301
----
263302
+
264-
The mariadb-client pod is no longer needed after all the data has been exported and stored.
303+
The `mariadb-client` pod is no longer needed after all the data is exported and stored.
265304

266305
.Next steps
267306

0 commit comments

Comments
 (0)