refactor(ipam): simplify interface references to compact array format

Replace verbose interface definitions using node/kind objects with
concise [device, interface] array notation across all IPAM address
entries. This reduces verbosity and improves readability of the
IP address assignments for loopbacks and P2P underlay links.
This commit is contained in:
Damien
2026-02-21 16:13:31 +01:00
parent e9dad132ea
commit 807f3ce8a1
2 changed files with 72 additions and 216 deletions

View File

@@ -11,271 +11,171 @@ spec:
# ============================================================
- address: "10.0.250.1/32"
description: spine1 Router-ID
interface:
node: spine1__Loopback0
kind: InfraInterfaceLoopback
interface: ["spine1", "Loopback0"]
- address: "10.0.250.2/32"
description: spine2 Router-ID
interface:
node: spine2__Loopback0
kind: InfraInterfaceLoopback
interface: ["spine2", "Loopback0"]
- address: "10.0.250.11/32"
description: leaf1 Router-ID
interface:
node: leaf1__Loopback0
kind: InfraInterfaceLoopback
interface: ["leaf1", "Loopback0"]
- address: "10.0.250.12/32"
description: leaf2 Router-ID
interface:
node: leaf2__Loopback0
kind: InfraInterfaceLoopback
interface: ["leaf2", "Loopback0"]
- address: "10.0.250.13/32"
description: leaf3 Router-ID
interface:
node: leaf3__Loopback0
kind: InfraInterfaceLoopback
interface: ["leaf3", "Loopback0"]
- address: "10.0.250.14/32"
description: leaf4 Router-ID
interface:
node: leaf4__Loopback0
kind: InfraInterfaceLoopback
interface: ["leaf4", "Loopback0"]
- address: "10.0.250.15/32"
description: leaf5 Router-ID
interface:
node: leaf5__Loopback0
kind: InfraInterfaceLoopback
interface: ["leaf5", "Loopback0"]
- address: "10.0.250.16/32"
description: leaf6 Router-ID
interface:
node: leaf6__Loopback0
kind: InfraInterfaceLoopback
interface: ["leaf6", "Loopback0"]
- address: "10.0.250.17/32"
description: leaf7 Router-ID
interface:
node: leaf7__Loopback0
kind: InfraInterfaceLoopback
interface: ["leaf7", "Loopback0"]
- address: "10.0.250.18/32"
description: leaf8 Router-ID
interface:
node: leaf8__Loopback0
kind: InfraInterfaceLoopback
interface: ["leaf8", "Loopback0"]
# ============================================================
# Loopback1 addresses (VTEP) — /32
# ============================================================
- address: "10.0.255.11/32"
description: leaf1 VTEP (shared VTEP1)
interface:
node: leaf1__Loopback1
kind: InfraInterfaceLoopback
interface: ["leaf1", "Loopback1"]
- address: "10.0.255.11/32"
description: leaf2 VTEP (shared VTEP1)
interface:
node: leaf2__Loopback1
kind: InfraInterfaceLoopback
interface: ["leaf2", "Loopback1"]
- address: "10.0.255.12/32"
description: leaf3 VTEP (shared VTEP2)
interface:
node: leaf3__Loopback1
kind: InfraInterfaceLoopback
interface: ["leaf3", "Loopback1"]
- address: "10.0.255.12/32"
description: leaf4 VTEP (shared VTEP2)
interface:
node: leaf4__Loopback1
kind: InfraInterfaceLoopback
interface: ["leaf4", "Loopback1"]
- address: "10.0.255.13/32"
description: leaf5 VTEP (shared VTEP3)
interface:
node: leaf5__Loopback1
kind: InfraInterfaceLoopback
interface: ["leaf5", "Loopback1"]
- address: "10.0.255.13/32"
description: leaf6 VTEP (shared VTEP3)
interface:
node: leaf6__Loopback1
kind: InfraInterfaceLoopback
interface: ["leaf6", "Loopback1"]
- address: "10.0.255.14/32"
description: leaf7 VTEP (shared VTEP4)
interface:
node: leaf7__Loopback1
kind: InfraInterfaceLoopback
interface: ["leaf7", "Loopback1"]
- address: "10.0.255.14/32"
description: leaf8 VTEP (shared VTEP4)
interface:
node: leaf8__Loopback1
kind: InfraInterfaceLoopback
interface: ["leaf8", "Loopback1"]
# ============================================================
# Spine1 P2P underlay — /31
# ============================================================
- address: "10.0.1.0/31"
description: spine1 Ethernet1 to leaf1
interface:
node: spine1__Ethernet1
kind: InfraInterfaceEthernet
interface: ["spine1", "Ethernet1"]
- address: "10.0.1.2/31"
description: spine1 Ethernet2 to leaf2
interface:
node: spine1__Ethernet2
kind: InfraInterfaceEthernet
interface: ["spine1", "Ethernet2"]
- address: "10.0.1.4/31"
description: spine1 Ethernet3 to leaf3
interface:
node: spine1__Ethernet3
kind: InfraInterfaceEthernet
interface: ["spine1", "Ethernet3"]
- address: "10.0.1.6/31"
description: spine1 Ethernet4 to leaf4
interface:
node: spine1__Ethernet4
kind: InfraInterfaceEthernet
interface: ["spine1", "Ethernet4"]
- address: "10.0.1.8/31"
description: spine1 Ethernet5 to leaf5
interface:
node: spine1__Ethernet5
kind: InfraInterfaceEthernet
interface: ["spine1", "Ethernet5"]
- address: "10.0.1.10/31"
description: spine1 Ethernet6 to leaf6
interface:
node: spine1__Ethernet6
kind: InfraInterfaceEthernet
interface: ["spine1", "Ethernet6"]
- address: "10.0.1.12/31"
description: spine1 Ethernet7 to leaf7
interface:
node: spine1__Ethernet7
kind: InfraInterfaceEthernet
interface: ["spine1", "Ethernet7"]
- address: "10.0.1.14/31"
description: spine1 Ethernet8 to leaf8
interface:
node: spine1__Ethernet8
kind: InfraInterfaceEthernet
interface: ["spine1", "Ethernet8"]
# ============================================================
# Spine2 P2P underlay — /31
# ============================================================
- address: "10.0.2.0/31"
description: spine2 Ethernet1 to leaf1
interface:
node: spine2__Ethernet1
kind: InfraInterfaceEthernet
interface: ["spine2", "Ethernet1"]
- address: "10.0.2.2/31"
description: spine2 Ethernet2 to leaf2
interface:
node: spine2__Ethernet2
kind: InfraInterfaceEthernet
interface: ["spine2", "Ethernet2"]
- address: "10.0.2.4/31"
description: spine2 Ethernet3 to leaf3
interface:
node: spine2__Ethernet3
kind: InfraInterfaceEthernet
interface: ["spine2", "Ethernet3"]
- address: "10.0.2.6/31"
description: spine2 Ethernet4 to leaf4
interface:
node: spine2__Ethernet4
kind: InfraInterfaceEthernet
interface: ["spine2", "Ethernet4"]
- address: "10.0.2.8/31"
description: spine2 Ethernet5 to leaf5
interface:
node: spine2__Ethernet5
kind: InfraInterfaceEthernet
interface: ["spine2", "Ethernet5"]
- address: "10.0.2.10/31"
description: spine2 Ethernet6 to leaf6
interface:
node: spine2__Ethernet6
kind: InfraInterfaceEthernet
interface: ["spine2", "Ethernet6"]
- address: "10.0.2.12/31"
description: spine2 Ethernet7 to leaf7
interface:
node: spine2__Ethernet7
kind: InfraInterfaceEthernet
interface: ["spine2", "Ethernet7"]
- address: "10.0.2.14/31"
description: spine2 Ethernet8 to leaf8
interface:
node: spine2__Ethernet8
kind: InfraInterfaceEthernet
interface: ["spine2", "Ethernet8"]
# ============================================================
# Leaf P2P underlay (leaf side) — /31
# ============================================================
# Leaf1
- address: "10.0.1.1/31"
description: leaf1 Ethernet11 to spine1
interface:
node: leaf1__Ethernet11
kind: InfraInterfaceEthernet
interface: ["leaf1", "Ethernet11"]
- address: "10.0.2.1/31"
description: leaf1 Ethernet12 to spine2
interface:
node: leaf1__Ethernet12
kind: InfraInterfaceEthernet
interface: ["leaf1", "Ethernet12"]
# Leaf2
- address: "10.0.1.3/31"
description: leaf2 Ethernet11 to spine1
interface:
node: leaf2__Ethernet11
kind: InfraInterfaceEthernet
interface: ["leaf2", "Ethernet11"]
- address: "10.0.2.3/31"
description: leaf2 Ethernet12 to spine2
interface:
node: leaf2__Ethernet12
kind: InfraInterfaceEthernet
interface: ["leaf2", "Ethernet12"]
# Leaf3
- address: "10.0.1.5/31"
description: leaf3 Ethernet11 to spine1
interface:
node: leaf3__Ethernet11
kind: InfraInterfaceEthernet
interface: ["leaf3", "Ethernet11"]
- address: "10.0.2.5/31"
description: leaf3 Ethernet12 to spine2
interface:
node: leaf3__Ethernet12
kind: InfraInterfaceEthernet
interface: ["leaf3", "Ethernet12"]
# Leaf4
- address: "10.0.1.7/31"
description: leaf4 Ethernet11 to spine1
interface:
node: leaf4__Ethernet11
kind: InfraInterfaceEthernet
interface: ["leaf4", "Ethernet11"]
- address: "10.0.2.7/31"
description: leaf4 Ethernet12 to spine2
interface:
node: leaf4__Ethernet12
kind: InfraInterfaceEthernet
interface: ["leaf4", "Ethernet12"]
# Leaf5
- address: "10.0.1.9/31"
description: leaf5 Ethernet11 to spine1
interface:
node: leaf5__Ethernet11
kind: InfraInterfaceEthernet
interface: ["leaf5", "Ethernet11"]
- address: "10.0.2.9/31"
description: leaf5 Ethernet12 to spine2
interface:
node: leaf5__Ethernet12
kind: InfraInterfaceEthernet
interface: ["leaf5", "Ethernet12"]
# Leaf6
- address: "10.0.1.11/31"
description: leaf6 Ethernet11 to spine1
interface:
node: leaf6__Ethernet11
kind: InfraInterfaceEthernet
interface: ["leaf6", "Ethernet11"]
- address: "10.0.2.11/31"
description: leaf6 Ethernet12 to spine2
interface:
node: leaf6__Ethernet12
kind: InfraInterfaceEthernet
interface: ["leaf6", "Ethernet12"]
# Leaf7
- address: "10.0.1.13/31"
description: leaf7 Ethernet11 to spine1
interface:
node: leaf7__Ethernet11
kind: InfraInterfaceEthernet
interface: ["leaf7", "Ethernet11"]
- address: "10.0.2.13/31"
description: leaf7 Ethernet12 to spine2
interface:
node: leaf7__Ethernet12
kind: InfraInterfaceEthernet
interface: ["leaf7", "Ethernet12"]
# Leaf8
- address: "10.0.1.15/31"
description: leaf8 Ethernet11 to spine1
interface:
node: leaf8__Ethernet11
kind: InfraInterfaceEthernet
interface: ["leaf8", "Ethernet11"]
- address: "10.0.2.15/31"
description: leaf8 Ethernet12 to spine2
interface:
node: leaf8__Ethernet12
kind: InfraInterfaceEthernet
interface: ["leaf8", "Ethernet12"]

View File

@@ -11,120 +11,76 @@ spec:
# ============================================================
- address: "10.0.199.254/31"
description: leaf1 MLAG peer-link
interface:
node: leaf1__Vlan4090
kind: InfraInterfaceVlan
interface: ["leaf1", "Vlan4090"]
- address: "10.0.199.255/31"
description: leaf2 MLAG peer-link
interface:
node: leaf2__Vlan4090
kind: InfraInterfaceVlan
interface: ["leaf2", "Vlan4090"]
- address: "10.0.199.252/31"
description: leaf3 MLAG peer-link
interface:
node: leaf3__Vlan4090
kind: InfraInterfaceVlan
interface: ["leaf3", "Vlan4090"]
- address: "10.0.199.253/31"
description: leaf4 MLAG peer-link
interface:
node: leaf4__Vlan4090
kind: InfraInterfaceVlan
interface: ["leaf4", "Vlan4090"]
- address: "10.0.199.250/31"
description: leaf5 MLAG peer-link
interface:
node: leaf5__Vlan4090
kind: InfraInterfaceVlan
interface: ["leaf5", "Vlan4090"]
- address: "10.0.199.251/31"
description: leaf6 MLAG peer-link
interface:
node: leaf6__Vlan4090
kind: InfraInterfaceVlan
interface: ["leaf6", "Vlan4090"]
- address: "10.0.199.248/31"
description: leaf7 MLAG peer-link
interface:
node: leaf7__Vlan4090
kind: InfraInterfaceVlan
interface: ["leaf7", "Vlan4090"]
- address: "10.0.199.249/31"
description: leaf8 MLAG peer-link
interface:
node: leaf8__Vlan4090
kind: InfraInterfaceVlan
interface: ["leaf8", "Vlan4090"]
# ============================================================
# MLAG iBGP Peering SVI (Vlan4091) — /31
# ============================================================
- address: "10.0.3.0/31"
description: leaf1 MLAG iBGP peering
interface:
node: leaf1__Vlan4091
kind: InfraInterfaceVlan
interface: ["leaf1", "Vlan4091"]
- address: "10.0.3.1/31"
description: leaf2 MLAG iBGP peering
interface:
node: leaf2__Vlan4091
kind: InfraInterfaceVlan
interface: ["leaf2", "Vlan4091"]
- address: "10.0.3.2/31"
description: leaf3 MLAG iBGP peering
interface:
node: leaf3__Vlan4091
kind: InfraInterfaceVlan
interface: ["leaf3", "Vlan4091"]
- address: "10.0.3.3/31"
description: leaf4 MLAG iBGP peering
interface:
node: leaf4__Vlan4091
kind: InfraInterfaceVlan
interface: ["leaf4", "Vlan4091"]
- address: "10.0.3.4/31"
description: leaf5 MLAG iBGP peering
interface:
node: leaf5__Vlan4091
kind: InfraInterfaceVlan
interface: ["leaf5", "Vlan4091"]
- address: "10.0.3.5/31"
description: leaf6 MLAG iBGP peering
interface:
node: leaf6__Vlan4091
kind: InfraInterfaceVlan
interface: ["leaf6", "Vlan4091"]
- address: "10.0.3.6/31"
description: leaf7 MLAG iBGP peering
interface:
node: leaf7__Vlan4091
kind: InfraInterfaceVlan
interface: ["leaf7", "Vlan4091"]
- address: "10.0.3.7/31"
description: leaf8 MLAG iBGP peering
interface:
node: leaf8__Vlan4091
kind: InfraInterfaceVlan
interface: ["leaf8", "Vlan4091"]
# ============================================================
# VRF gold SVI addresses — /24
# ============================================================
# Vlan34 (leaf3/leaf4)
- address: "10.34.34.2/24"
description: leaf3 Vlan34 VRF gold
interface:
node: leaf3__Vlan34
kind: InfraInterfaceVlan
interface: ["leaf3", "Vlan34"]
- address: "10.34.34.3/24"
description: leaf4 Vlan34 VRF gold
interface:
node: leaf4__Vlan34
kind: InfraInterfaceVlan
interface: ["leaf4", "Vlan34"]
# Vlan78 (leaf7/leaf8)
- address: "10.78.78.2/24"
description: leaf7 Vlan78 VRF gold
interface:
node: leaf7__Vlan78
kind: InfraInterfaceVlan
interface: ["leaf7", "Vlan78"]
- address: "10.78.78.3/24"
description: leaf8 Vlan78 VRF gold
interface:
node: leaf8__Vlan78
kind: InfraInterfaceVlan
interface: ["leaf8", "Vlan78"]
# Vlan900 — BGP border (leaf7/leaf8)
- address: "10.90.90.2/29"
description: leaf7 Vlan900 BGP border
interface:
node: leaf7__Vlan900
kind: InfraInterfaceVlan
interface: ["leaf7", "Vlan900"]
- address: "10.90.90.3/29"
description: leaf8 Vlan900 BGP border
interface:
node: leaf8__Vlan900
kind: InfraInterfaceVlan
interface: ["leaf8", "Vlan900"]