Skip to content

Commit

Permalink
[BGP] Add AZs to schedule Octavia mgmt network on OCP nodes
Browse files Browse the repository at this point in the history
Octavia needs to schedule its management network on the OCP
nodes/workers.
With BGP, OCP nodes/workers should not be used to schedule OVN router
ports.
In order to resolve this conflict, this patch uses Availability Zones.
  • Loading branch information
eduolivares committed Oct 25, 2024
1 parent 2b53bd2 commit a0d458e
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 13 deletions.
12 changes: 12 additions & 0 deletions dt/bgp/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,18 @@ replacements:
options:
create: true

- source:
kind: ConfigMap
name: service-values
fieldPath: data.octavia.availabilityZones
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.octavia.template.availabilityZones
options:
create: true

- source:
kind: ConfigMap
name: service-values
Expand Down
23 changes: 15 additions & 8 deletions examples/dt/bgp/bgp_dt01/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@ This DT configures both compute and networker EDPM nodes. So far, networker
nodes are needed when BGP is used on RHOSO, in order to expose routes to SNAT
traffic (OVN Gateway IPs). In other words, when RHOSO is used with BGP, the OCP
workers cannot be configured as OVN Gateways.
On the other hand, Octavia needs to use OCP workers as OVN Gateways for
its management network.
To resolve this conflict, BGP DT01 uses Availability Zones:
* zone-1 is only used for the Octavia management network, which is scheduled on
the OCP workers
* zone-2 is used for the provider networks, whose routers ports will be
scheduled on the networker nodes.

The OCP and EDPM nodes deployed with this DT are distributed into three
different racks. Each rack is connected to two leaves.
Expand Down Expand Up @@ -74,14 +81,14 @@ network).

## Services, enabled features and configurations

| Service | configuration | Lock-in coverage? |
| ---------------- | ---------------- | ------------------ |
| Glance | Swift | Must have |
| Swift | (default) | Must have |
| Octavia | (default) | Must have |
| Heat | (default) | Must have |
| frr | dataplane | Must have |
| ovn-bgp-agent | dataplane | Must have |
| Service | configuration | Lock-in coverage? |
| ---------------- | ----------------- | ------------------ |
| Glance | Swift | Must have |
| Swift | (default) | Must have |
| Octavia | (default) | Must have |
| Heat | (default) | Must have |
| frr | dataplane | Must have |
| ovn-bgp-agent | dataplane | Must have |

## Considerations/Constraints

Expand Down
6 changes: 3 additions & 3 deletions examples/dt/bgp/bgp_dt01/control-plane/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -144,16 +144,16 @@ replacements:
name: bgpnet-worker-3
fieldPaths:
- spec.config
# disable OCP workers as gateway nodes
# configure OVN AZs
- source:
kind: ConfigMap
name: service-values
fieldPath: data.ovn.ovnController.external-ids
fieldPath: data.ovn.ovnController.availability-zones
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.ovn.template.ovnController.external-ids
- spec.ovn.template.ovnController.availability-zones
options:
create: true
# configure neutron customServiceConfig
Expand Down
9 changes: 7 additions & 2 deletions examples/dt/bgp/bgp_dt01/control-plane/service-values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ data:
enabled: true
amphoraImageContainerImage: quay.io/gthiemonge/octavia-amphora-image
apacheContainerImage: registry.redhat.io/ubi9/httpd-24:latest
availabilityZones:
- zone-1
octaviaAPI:
networkAttachments:
- internalapi
Expand Down Expand Up @@ -60,12 +62,15 @@ data:
nicMappings:
datacentre: ocpbr
octavia: octbr
external-ids:
enable-chassis-as-gateway: false
availability-zones:
- zone-1
neutron:
customServiceConfig: |
[DEFAULT]
vlan_transparent = true
debug = true
default_availability_zones = zone-1,zone-2
[ovs]
igmp_snooping_enable = true
[ovn]
ovn_emit_need_to_frag = true
2 changes: 2 additions & 0 deletions examples/dt/bgp/bgp_dt01/edpm/networkers/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ data:
ansiblePort: 22
ansibleVars:
edpm_ovn_encap_ip: "{{ lookup('vars', 'bgpmainnet_ip') }}"
edpm_ovn_availability_zones:
- zone-2
edpm_ovn_bgp_agent_expose_tenant_networks: false
edpm_frr_bgp_ipv4_src_network: bgpmainnet
edpm_frr_bgp_ipv6_src_network: bgpmainnetv6
Expand Down
2 changes: 2 additions & 0 deletions examples/dt/bgp/control-plane/service-values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ data:
enabled: true
amphoraImageContainerImage: quay.io/gthiemonge/octavia-amphora-image
apacheContainerImage: registry.redhat.io/ubi9/httpd-24:latest
availabilityZones:
- zone-1
octaviaAPI:
networkAttachments:
- internalapi
Expand Down

0 comments on commit a0d458e

Please sign in to comment.