Skip to content

Commit

Permalink
BGP controlplane L3 separation
Browse files Browse the repository at this point in the history
  • Loading branch information
eduolivares committed Jan 29, 2025
1 parent 44608a4 commit 5ecaf57
Show file tree
Hide file tree
Showing 8 changed files with 514 additions and 300 deletions.
33 changes: 32 additions & 1 deletion automation/vars/bgp_dt01.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,44 @@ vas:
kind: Node
resource_name: worker-3
state: patched
- name: Disable rp_filters on OCP nodes
type: cr
definition:
spec:
profile:
- data: |
[main]
summary=Optimize systems running OpenShift (provider specific parent profile)
include=-provider-${f:exec:cat:/var/lib/ocp-tuned/provider},openshift
[sysctl]
net.ipv4.conf.enp8s0.rp_filter=0
net.ipv4.conf.enp9s0.rp_filter=0
name: openshift
recommend:
- match:
- label: node-role.kubernetes.io/master
- label: node-role.kubernetes.io/infra
operand:
tunedConfig: {}
priority: 30
profile: openshift-control-plane
- operand:
tunedConfig: {}
priority: 40
profile: openshift-node
api_version: tuned.openshift.io/v1
kind: Tuned
resource_name: default
namespace: openshift-cluster-node-tuning-operator
state: patched
path: examples/dt/bgp/bgp_dt01/control-plane/nncp
wait_conditions:
- >-
oc -n openstack wait nncp
-l osp/nncm-config-type=standard
--for jsonpath='{.status.conditions[0].reason}'=SuccessfullyConfigured
--timeout=60s
--timeout=300s
values:
- name: network-values
src_file: values.yaml
Expand Down
282 changes: 63 additions & 219 deletions examples/dt/bgp/bgp_dt01/control-plane/nncp/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ transformers:
create: true
components:
- ../../../../../../lib/nncp
- ../../../../../../lib/nncp-l3

resources:
- values.yaml
Expand Down Expand Up @@ -197,213 +197,6 @@ replacements:
- metadata.name
- spec.nodeSelector.[kubernetes.io/hostname]

# Static Node IPs: node-3/worker-0
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_3.internalapi_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-0
fieldPaths:
- spec.desiredState.interfaces.[name=internalapi].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_3.tenant_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-0
fieldPaths:
- spec.desiredState.interfaces.[name=tenant].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_3.ctlplane_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-0
fieldPaths:
- spec.desiredState.interfaces.[type=linux-bridge].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_3.storage_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-0
fieldPaths:
- spec.desiredState.interfaces.[name=storage].ipv4.address.0.ip

# Static Node IPs: node-4 / worker-1
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_4.internalapi_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-1
fieldPaths:
- spec.desiredState.interfaces.[name=internalapi].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_4.tenant_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-1
fieldPaths:
- spec.desiredState.interfaces.[name=tenant].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_4.ctlplane_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-1
fieldPaths:
- spec.desiredState.interfaces.[type=linux-bridge].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_4.storage_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-1
fieldPaths:
- spec.desiredState.interfaces.[name=storage].ipv4.address.0.ip

# Static Node IPs: node-5 / worker-2
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_5.internalapi_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-2
fieldPaths:
- spec.desiredState.interfaces.[name=internalapi].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_5.tenant_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-2
fieldPaths:
- spec.desiredState.interfaces.[name=tenant].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_5.ctlplane_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-2
fieldPaths:
- spec.desiredState.interfaces.[type=linux-bridge].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_5.storage_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-2
fieldPaths:
- spec.desiredState.interfaces.[name=storage].ipv4.address.0.ip

# Static Node IPs: node-6 / worker-3
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_6.internalapi_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-3
fieldPaths:
- spec.desiredState.interfaces.[name=internalapi].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_6.tenant_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-3
fieldPaths:
- spec.desiredState.interfaces.[name=tenant].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_6.ctlplane_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-3
fieldPaths:
- spec.desiredState.interfaces.[type=linux-bridge].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_6.storage_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-3
fieldPaths:
- spec.desiredState.interfaces.[name=storage].ipv4.address.0.ip


# prefix-lengths
- source:
kind: ConfigMap
name: network-values
fieldPath: data.ctlplane.prefix-length
targets:
- select:
kind: NodeNetworkConfigurationPolicy
fieldPaths:
- spec.desiredState.interfaces.[type=linux-bridge].ipv4.address.0.prefix-length
- source:
kind: ConfigMap
name: network-values
fieldPath: data.internalapi.prefix-length
targets:
- select:
kind: NodeNetworkConfigurationPolicy
fieldPaths:
- spec.desiredState.interfaces.[name=internalapi].ipv4.address.0.prefix-length
- source:
kind: ConfigMap
name: network-values
fieldPath: data.tenant.prefix-length
targets:
- select:
kind: NodeNetworkConfigurationPolicy
fieldPaths:
- spec.desiredState.interfaces.[name=tenant].ipv4.address.0.prefix-length
- source:
kind: ConfigMap
name: network-values
fieldPath: data.storage.prefix-length
targets:
- select:
kind: NodeNetworkConfigurationPolicy
fieldPaths:
- spec.desiredState.interfaces.[name=storage].ipv4.address.0.prefix-length

# BGP master-0/node-0 IPs
- source:
kind: ConfigMap
Expand Down Expand Up @@ -919,30 +712,81 @@ replacements:
kind: NodeNetworkConfigurationPolicy
fieldPaths:
- spec.desiredState.interfaces.[name=octavia].vlan.id
# Overwrite worker-3 base interface
# Overwrite worker-3 base routes
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_6.base_if
fieldPath: data.node_6.routes
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-3
fieldPaths:
- spec.desiredState.interfaces.[name=internalapi].vlan.base-iface
- spec.desiredState.interfaces.[name=tenant].vlan.base-iface
- spec.desiredState.interfaces.[name=storage].vlan.base-iface
- spec.desiredState.interfaces.[description=^ctlplane.*].name
- spec.desiredState.interfaces.[description=^linux-bridge.*].bridge.port.0.name
- spec.desiredState.interfaces.[name=octavia].vlan.base-iface
# Overwrite worker-3 base routes
- spec.desiredState.routes

# NEW L3 ROUTES
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_6.routes
fieldPath: data.node_0.routes
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-3
name: master-0
fieldPaths:
- spec.desiredState.routes

- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_1.routes
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: master-1
fieldPaths:
- spec.desiredState.routes

- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_2.routes
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: master-2
fieldPaths:
- spec.desiredState.routes

- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_3.routes
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-0
fieldPaths:
- spec.desiredState.routes

- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_4.routes
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-1
fieldPaths:
- spec.desiredState.routes

- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_5.routes
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: worker-2
fieldPaths:
- spec.desiredState.routes
Loading

0 comments on commit 5ecaf57

Please sign in to comment.