diff --git a/dt/bgp/kustomization.yaml b/dt/bgp/kustomization.yaml index 172b6dc5a..55b10dc40 100644 --- a/dt/bgp/kustomization.yaml +++ b/dt/bgp/kustomization.yaml @@ -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 diff --git a/examples/dt/bgp/bgp_dt01/README.md b/examples/dt/bgp/bgp_dt01/README.md index 70aa8683a..4f5eb4a08 100644 --- a/examples/dt/bgp/bgp_dt01/README.md +++ b/examples/dt/bgp/bgp_dt01/README.md @@ -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. @@ -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 diff --git a/examples/dt/bgp/bgp_dt01/control-plane/kustomization.yaml b/examples/dt/bgp/bgp_dt01/control-plane/kustomization.yaml index 19589ac61..fa6ae4c4d 100644 --- a/examples/dt/bgp/bgp_dt01/control-plane/kustomization.yaml +++ b/examples/dt/bgp/bgp_dt01/control-plane/kustomization.yaml @@ -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 diff --git a/examples/dt/bgp/bgp_dt01/control-plane/service-values.yaml b/examples/dt/bgp/bgp_dt01/control-plane/service-values.yaml index 6be14fea6..2d87689c6 100644 --- a/examples/dt/bgp/bgp_dt01/control-plane/service-values.yaml +++ b/examples/dt/bgp/bgp_dt01/control-plane/service-values.yaml @@ -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 @@ -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 diff --git a/examples/dt/bgp/bgp_dt01/edpm/networkers/values.yaml b/examples/dt/bgp/bgp_dt01/edpm/networkers/values.yaml index 0d7eae44c..788897633 100644 --- a/examples/dt/bgp/bgp_dt01/edpm/networkers/values.yaml +++ b/examples/dt/bgp/bgp_dt01/edpm/networkers/values.yaml @@ -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 diff --git a/examples/dt/bgp/control-plane/service-values.yaml b/examples/dt/bgp/control-plane/service-values.yaml index 0eb92251a..296a24005 100644 --- a/examples/dt/bgp/control-plane/service-values.yaml +++ b/examples/dt/bgp/control-plane/service-values.yaml @@ -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