Files
fabric-orchestrator/objects/10-bgp-sessions.yml
Damien 4b1ca7b2a6 fix(schema,objects): simplify BGP HFIDs to single field — refs #52
Infrahub does not support relation traversal in HFID computation.
bgp_config__router_id__value returned only the name, not the full path.

Schema changes:
- InfraBGPPeerGroup HFID: [name__value] (was [bgp_config__router_id__value, name__value])
- InfraBGPSession HFID: [peer_address__value] (was [bgp_config__router_id__value, peer_address__value])
- uniqueness_constraints unchanged (still scoped to bgp_config)

Object file changes (10-bgp-sessions.yml):
- peer_group: ["10.0.250.x", "name"] → peer_group: "name" (56 refs)
- active_peer_groups: - ["10.0.250.x", "name"] → - "name" (26 refs)
2026-02-15 21:23:58 +01:00

587 lines
18 KiB
YAML

# BGP Sessions and Address Families
# Depends on: 09-bgp (RouterConfig and PeerGroups must exist)
---
apiVersion: infrahub.app/v1
kind: Object
spec:
kind: InfraBGPSession
data:
# ============================================================
# Spine1 sessions
# ============================================================
# Spine1 underlay (direct neighbors, no peer-group — use remote_asn)
- bgp_config: ["spine1"]
peer_address: "10.0.1.1"
description: "underlay to leaf1"
remote_asn: ["65001"]
peer_device: ["leaf1"]
- bgp_config: ["spine1"]
peer_address: "10.0.1.3"
description: "underlay to leaf2"
remote_asn: ["65001"]
peer_device: ["leaf2"]
- bgp_config: ["spine1"]
peer_address: "10.0.1.5"
description: "underlay to leaf3"
remote_asn: ["65002"]
peer_device: ["leaf3"]
- bgp_config: ["spine1"]
peer_address: "10.0.1.7"
description: "underlay to leaf4"
remote_asn: ["65002"]
peer_device: ["leaf4"]
- bgp_config: ["spine1"]
peer_address: "10.0.1.9"
description: "underlay to leaf5"
remote_asn: ["65003"]
peer_device: ["leaf5"]
- bgp_config: ["spine1"]
peer_address: "10.0.1.11"
description: "underlay to leaf6"
remote_asn: ["65003"]
peer_device: ["leaf6"]
- bgp_config: ["spine1"]
peer_address: "10.0.1.13"
description: "underlay to leaf7"
remote_asn: ["65004"]
peer_device: ["leaf7"]
- bgp_config: ["spine1"]
peer_address: "10.0.1.15"
description: "underlay to leaf8"
remote_asn: ["65004"]
peer_device: ["leaf8"]
# Spine1 EVPN (via evpn peer-group)
- bgp_config: ["spine1"]
peer_address: "10.0.250.11"
description: "EVPN to leaf1"
peer_group: "evpn"
remote_asn: ["65001"]
peer_device: ["leaf1"]
- bgp_config: ["spine1"]
peer_address: "10.0.250.12"
description: "EVPN to leaf2"
peer_group: "evpn"
remote_asn: ["65001"]
peer_device: ["leaf2"]
- bgp_config: ["spine1"]
peer_address: "10.0.250.13"
description: "EVPN to leaf3"
peer_group: "evpn"
remote_asn: ["65002"]
peer_device: ["leaf3"]
- bgp_config: ["spine1"]
peer_address: "10.0.250.14"
description: "EVPN to leaf4"
peer_group: "evpn"
remote_asn: ["65002"]
peer_device: ["leaf4"]
- bgp_config: ["spine1"]
peer_address: "10.0.250.15"
description: "EVPN to leaf5"
peer_group: "evpn"
remote_asn: ["65003"]
peer_device: ["leaf5"]
- bgp_config: ["spine1"]
peer_address: "10.0.250.16"
description: "EVPN to leaf6"
peer_group: "evpn"
remote_asn: ["65003"]
peer_device: ["leaf6"]
- bgp_config: ["spine1"]
peer_address: "10.0.250.17"
description: "EVPN to leaf7"
peer_group: "evpn"
remote_asn: ["65004"]
peer_device: ["leaf7"]
- bgp_config: ["spine1"]
peer_address: "10.0.250.18"
description: "EVPN to leaf8"
peer_group: "evpn"
remote_asn: ["65004"]
peer_device: ["leaf8"]
# ============================================================
# Spine2 sessions
# ============================================================
# Spine2 underlay
- bgp_config: ["spine2"]
peer_address: "10.0.2.1"
description: "underlay to leaf1"
remote_asn: ["65001"]
peer_device: ["leaf1"]
- bgp_config: ["spine2"]
peer_address: "10.0.2.3"
description: "underlay to leaf2"
remote_asn: ["65001"]
peer_device: ["leaf2"]
- bgp_config: ["spine2"]
peer_address: "10.0.2.5"
description: "underlay to leaf3"
remote_asn: ["65002"]
peer_device: ["leaf3"]
- bgp_config: ["spine2"]
peer_address: "10.0.2.7"
description: "underlay to leaf4"
remote_asn: ["65002"]
peer_device: ["leaf4"]
- bgp_config: ["spine2"]
peer_address: "10.0.2.9"
description: "underlay to leaf5"
remote_asn: ["65003"]
peer_device: ["leaf5"]
- bgp_config: ["spine2"]
peer_address: "10.0.2.11"
description: "underlay to leaf6"
remote_asn: ["65003"]
peer_device: ["leaf6"]
- bgp_config: ["spine2"]
peer_address: "10.0.2.13"
description: "underlay to leaf7"
remote_asn: ["65004"]
peer_device: ["leaf7"]
- bgp_config: ["spine2"]
peer_address: "10.0.2.15"
description: "underlay to leaf8"
remote_asn: ["65004"]
peer_device: ["leaf8"]
# Spine2 EVPN
- bgp_config: ["spine2"]
peer_address: "10.0.250.11"
description: "EVPN to leaf1"
peer_group: "evpn"
remote_asn: ["65001"]
peer_device: ["leaf1"]
- bgp_config: ["spine2"]
peer_address: "10.0.250.12"
description: "EVPN to leaf2"
peer_group: "evpn"
remote_asn: ["65001"]
peer_device: ["leaf2"]
- bgp_config: ["spine2"]
peer_address: "10.0.250.13"
description: "EVPN to leaf3"
peer_group: "evpn"
remote_asn: ["65002"]
peer_device: ["leaf3"]
- bgp_config: ["spine2"]
peer_address: "10.0.250.14"
description: "EVPN to leaf4"
peer_group: "evpn"
remote_asn: ["65002"]
peer_device: ["leaf4"]
- bgp_config: ["spine2"]
peer_address: "10.0.250.15"
description: "EVPN to leaf5"
peer_group: "evpn"
remote_asn: ["65003"]
peer_device: ["leaf5"]
- bgp_config: ["spine2"]
peer_address: "10.0.250.16"
description: "EVPN to leaf6"
peer_group: "evpn"
remote_asn: ["65003"]
peer_device: ["leaf6"]
- bgp_config: ["spine2"]
peer_address: "10.0.250.17"
description: "EVPN to leaf7"
peer_group: "evpn"
remote_asn: ["65004"]
peer_device: ["leaf7"]
- bgp_config: ["spine2"]
peer_address: "10.0.250.18"
description: "EVPN to leaf8"
peer_group: "evpn"
remote_asn: ["65004"]
peer_device: ["leaf8"]
# ============================================================
# Leaf1 sessions
# ============================================================
- bgp_config: ["leaf1"]
peer_address: "10.0.1.0"
description: "underlay to spine1"
peer_group: "underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf1"]
peer_address: "10.0.2.0"
description: "underlay to spine2"
peer_group: "underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf1"]
peer_address: "10.0.3.1"
description: "iBGP to leaf2"
peer_group: "underlay_ibgp"
peer_device: ["leaf2"]
- bgp_config: ["leaf1"]
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf1"]
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf2 sessions
# ============================================================
- bgp_config: ["leaf2"]
peer_address: "10.0.1.2"
description: "underlay to spine1"
peer_group: "underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf2"]
peer_address: "10.0.2.2"
description: "underlay to spine2"
peer_group: "underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf2"]
peer_address: "10.0.3.0"
description: "iBGP to leaf1"
peer_group: "underlay_ibgp"
peer_device: ["leaf1"]
- bgp_config: ["leaf2"]
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf2"]
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf3 sessions
# ============================================================
- bgp_config: ["leaf3"]
peer_address: "10.0.1.4"
description: "underlay to spine1"
peer_group: "underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf3"]
peer_address: "10.0.2.4"
description: "underlay to spine2"
peer_group: "underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf3"]
peer_address: "10.0.3.3"
description: "iBGP to leaf4"
peer_group: "underlay_ibgp"
peer_device: ["leaf4"]
- bgp_config: ["leaf3"]
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf3"]
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf4 sessions
# ============================================================
- bgp_config: ["leaf4"]
peer_address: "10.0.1.6"
description: "underlay to spine1"
peer_group: "underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf4"]
peer_address: "10.0.2.6"
description: "underlay to spine2"
peer_group: "underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf4"]
peer_address: "10.0.3.2"
description: "iBGP to leaf3"
peer_group: "underlay_ibgp"
peer_device: ["leaf3"]
- bgp_config: ["leaf4"]
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf4"]
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf5 sessions
# ============================================================
- bgp_config: ["leaf5"]
peer_address: "10.0.1.8"
description: "underlay to spine1"
peer_group: "underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf5"]
peer_address: "10.0.2.8"
description: "underlay to spine2"
peer_group: "underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf5"]
peer_address: "10.0.3.5"
description: "iBGP to leaf6"
peer_group: "underlay_ibgp"
peer_device: ["leaf6"]
- bgp_config: ["leaf5"]
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf5"]
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf6 sessions
# ============================================================
- bgp_config: ["leaf6"]
peer_address: "10.0.1.10"
description: "underlay to spine1"
peer_group: "underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf6"]
peer_address: "10.0.2.10"
description: "underlay to spine2"
peer_group: "underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf6"]
peer_address: "10.0.3.4"
description: "iBGP to leaf5"
peer_group: "underlay_ibgp"
peer_device: ["leaf5"]
- bgp_config: ["leaf6"]
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf6"]
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf7 sessions
# ============================================================
- bgp_config: ["leaf7"]
peer_address: "10.0.1.12"
description: "underlay to spine1"
peer_group: "underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf7"]
peer_address: "10.0.2.12"
description: "underlay to spine2"
peer_group: "underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf7"]
peer_address: "10.0.3.7"
description: "iBGP to leaf8"
peer_group: "underlay_ibgp"
peer_device: ["leaf8"]
- bgp_config: ["leaf7"]
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf7"]
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf8 sessions
# ============================================================
- bgp_config: ["leaf8"]
peer_address: "10.0.1.14"
description: "underlay to spine1"
peer_group: "underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf8"]
peer_address: "10.0.2.14"
description: "underlay to spine2"
peer_group: "underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf8"]
peer_address: "10.0.3.6"
description: "iBGP to leaf7"
peer_group: "underlay_ibgp"
peer_device: ["leaf7"]
- bgp_config: ["leaf8"]
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf8"]
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "evpn"
peer_device: ["spine2"]
---
apiVersion: infrahub.app/v1
kind: Object
spec:
kind: InfraBGPAddressFamily
data:
# ============================================================
# Spine1 address families
# ============================================================
- bgp_config: ["spine1"]
afi: ipv4
safi: unicast
networks:
- ["10.0.250.1/32"]
- bgp_config: ["spine1"]
afi: evpn
safi: unicast
active_peer_groups:
- "evpn"
# ============================================================
# Spine2 address families
# ============================================================
- bgp_config: ["spine2"]
afi: ipv4
safi: unicast
networks:
- ["10.0.250.2/32"]
- bgp_config: ["spine2"]
afi: evpn
safi: unicast
active_peer_groups:
- "evpn"
# ============================================================
# Leaf1 address families
# ============================================================
- bgp_config: ["leaf1"]
afi: ipv4
safi: unicast
active_peer_groups:
- "underlay"
- "underlay_ibgp"
networks:
- ["10.0.250.11/32"]
- ["10.0.255.11/32"]
- bgp_config: ["leaf1"]
afi: evpn
safi: unicast
active_peer_groups:
- "evpn"
# ============================================================
# Leaf2 address families
# ============================================================
- bgp_config: ["leaf2"]
afi: ipv4
safi: unicast
active_peer_groups:
- "underlay"
- "underlay_ibgp"
networks:
- ["10.0.250.12/32"]
- ["10.0.255.11/32"]
- bgp_config: ["leaf2"]
afi: evpn
safi: unicast
active_peer_groups:
- "evpn"
# ============================================================
# Leaf3 address families
# ============================================================
- bgp_config: ["leaf3"]
afi: ipv4
safi: unicast
active_peer_groups:
- "underlay"
- "underlay_ibgp"
networks:
- ["10.0.250.13/32"]
- ["10.0.255.12/32"]
- bgp_config: ["leaf3"]
afi: evpn
safi: unicast
active_peer_groups:
- "evpn"
# ============================================================
# Leaf4 address families
# ============================================================
- bgp_config: ["leaf4"]
afi: ipv4
safi: unicast
active_peer_groups:
- "underlay"
- "underlay_ibgp"
networks:
- ["10.0.250.14/32"]
- ["10.0.255.12/32"]
- bgp_config: ["leaf4"]
afi: evpn
safi: unicast
active_peer_groups:
- "evpn"
# ============================================================
# Leaf5 address families
# ============================================================
- bgp_config: ["leaf5"]
afi: ipv4
safi: unicast
active_peer_groups:
- "underlay"
- "underlay_ibgp"
networks:
- ["10.0.250.15/32"]
- ["10.0.255.13/32"]
- bgp_config: ["leaf5"]
afi: evpn
safi: unicast
active_peer_groups:
- "evpn"
# ============================================================
# Leaf6 address families
# ============================================================
- bgp_config: ["leaf6"]
afi: ipv4
safi: unicast
active_peer_groups:
- "underlay"
- "underlay_ibgp"
networks:
- ["10.0.250.16/32"]
- ["10.0.255.13/32"]
- bgp_config: ["leaf6"]
afi: evpn
safi: unicast
active_peer_groups:
- "evpn"
# ============================================================
# Leaf7 address families
# ============================================================
- bgp_config: ["leaf7"]
afi: ipv4
safi: unicast
active_peer_groups:
- "underlay"
- "underlay_ibgp"
networks:
- ["10.0.250.17/32"]
- ["10.0.255.14/32"]
- bgp_config: ["leaf7"]
afi: evpn
safi: unicast
active_peer_groups:
- "evpn"
# ============================================================
# Leaf8 address families
# ============================================================
- bgp_config: ["leaf8"]
afi: ipv4
safi: unicast
active_peer_groups:
- "underlay"
- "underlay_ibgp"
networks:
- ["10.0.250.18/32"]
- ["10.0.255.14/32"]
- bgp_config: ["leaf8"]
afi: evpn
safi: unicast
active_peer_groups:
- "evpn"