From dc382bf6de296053c956af2e4192caaf0490f44e Mon Sep 17 00:00:00 2001 From: Damien Date: Sun, 15 Feb 2026 12:02:50 +0100 Subject: [PATCH] =?UTF-8?q?feat(objects):=20add=20interfaces=20(loopback,?= =?UTF-8?q?=20ethernet,=20LAG,=20VLAN=20SVIs)=20=E2=80=94=20refs=20#52?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- objects/03-interfaces.yml | 632 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 632 insertions(+) create mode 100644 objects/03-interfaces.yml diff --git a/objects/03-interfaces.yml b/objects/03-interfaces.yml new file mode 100644 index 0000000..526959c --- /dev/null +++ b/objects/03-interfaces.yml @@ -0,0 +1,632 @@ +# Interfaces: Loopback, Ethernet, LAG (Port-Channel), VLAN SVIs +# Depends on: 02-devices +--- +apiVersion: infrahub.app/v1 +kind: Object +spec: + kind: InfraInterfaceLoopback + data: + # Spine loopbacks (Lo0 only) + - device: spine1 + name: Loopback0 + description: Router-ID + enabled: true + - device: spine2 + name: Loopback0 + description: Router-ID + enabled: true + # Leaf loopbacks (Lo0 + Lo1) + - device: leaf1 + name: Loopback0 + description: Router-ID + enabled: true + - device: leaf1 + name: Loopback1 + description: VTEP + enabled: true + - device: leaf2 + name: Loopback0 + description: Router-ID + enabled: true + - device: leaf2 + name: Loopback1 + description: VTEP + enabled: true + - device: leaf3 + name: Loopback0 + description: Router-ID + enabled: true + - device: leaf3 + name: Loopback1 + description: VTEP + enabled: true + - device: leaf4 + name: Loopback0 + description: Router-ID + enabled: true + - device: leaf4 + name: Loopback1 + description: VTEP + enabled: true + - device: leaf5 + name: Loopback0 + description: Router-ID + enabled: true + - device: leaf5 + name: Loopback1 + description: VTEP + enabled: true + - device: leaf6 + name: Loopback0 + description: Router-ID + enabled: true + - device: leaf6 + name: Loopback1 + description: VTEP + enabled: true + - device: leaf7 + name: Loopback0 + description: Router-ID + enabled: true + - device: leaf7 + name: Loopback1 + description: VTEP + enabled: true + - device: leaf8 + name: Loopback0 + description: Router-ID + enabled: true + - device: leaf8 + name: Loopback1 + description: VTEP + enabled: true +--- +apiVersion: infrahub.app/v1 +kind: Object +spec: + kind: InfraInterfaceEthernet + data: + # ============================================================ + # Spine1 Ethernet interfaces (underlay to leafs) + # ============================================================ + - device: spine1 + name: Ethernet1 + description: leaf1 + enabled: true + mtu: 9214 + mode: routed + - device: spine1 + name: Ethernet2 + description: leaf2 + enabled: true + mtu: 9214 + mode: routed + - device: spine1 + name: Ethernet3 + description: leaf3 + enabled: true + mtu: 9214 + mode: routed + - device: spine1 + name: Ethernet4 + description: leaf4 + enabled: true + mtu: 9214 + mode: routed + - device: spine1 + name: Ethernet5 + description: leaf5 + enabled: true + mtu: 9214 + mode: routed + - device: spine1 + name: Ethernet6 + description: leaf6 + enabled: true + mtu: 9214 + mode: routed + - device: spine1 + name: Ethernet7 + description: leaf7 + enabled: true + mtu: 9214 + mode: routed + - device: spine1 + name: Ethernet8 + description: leaf8 + enabled: true + mtu: 9214 + mode: routed + # ============================================================ + # Spine2 Ethernet interfaces (underlay to leafs) + # ============================================================ + - device: spine2 + name: Ethernet1 + description: leaf1 + enabled: true + mtu: 9214 + mode: routed + - device: spine2 + name: Ethernet2 + description: leaf2 + enabled: true + mtu: 9214 + mode: routed + - device: spine2 + name: Ethernet3 + description: leaf3 + enabled: true + mtu: 9214 + mode: routed + - device: spine2 + name: Ethernet4 + description: leaf4 + enabled: true + mtu: 9214 + mode: routed + - device: spine2 + name: Ethernet5 + description: leaf5 + enabled: true + mtu: 9214 + mode: routed + - device: spine2 + name: Ethernet6 + description: leaf6 + enabled: true + mtu: 9214 + mode: routed + - device: spine2 + name: Ethernet7 + description: leaf7 + enabled: true + mtu: 9214 + mode: routed + - device: spine2 + name: Ethernet8 + description: leaf8 + enabled: true + mtu: 9214 + mode: routed + # ============================================================ + # Leaf Ethernet interfaces + # Each leaf has: Ethernet1 (host), Ethernet10 (mlag peer-link), + # Ethernet11 (spine1), Ethernet12 (spine2) + # ============================================================ + # Leaf1 + - device: leaf1 + name: Ethernet1 + description: host1 + enabled: true + mode: trunk + lag: ["leaf1", "Port-Channel1"] + - device: leaf1 + name: Ethernet10 + description: mlag peer link + enabled: true + mode: trunk + lag: ["leaf1", "Port-Channel999"] + - device: leaf1 + name: Ethernet11 + description: spine1 + enabled: true + mtu: 9214 + mode: routed + - device: leaf1 + name: Ethernet12 + description: spine2 + enabled: true + mtu: 9214 + mode: routed + # Leaf2 + - device: leaf2 + name: Ethernet1 + description: host1 + enabled: true + mode: trunk + lag: ["leaf2", "Port-Channel1"] + - device: leaf2 + name: Ethernet10 + description: mlag peer link + enabled: true + mode: trunk + lag: ["leaf2", "Port-Channel999"] + - device: leaf2 + name: Ethernet11 + description: spine1 + enabled: true + mtu: 9214 + mode: routed + - device: leaf2 + name: Ethernet12 + description: spine2 + enabled: true + mtu: 9214 + mode: routed + # Leaf3 + - device: leaf3 + name: Ethernet1 + description: host2 + enabled: true + mode: trunk + lag: ["leaf3", "Port-Channel1"] + - device: leaf3 + name: Ethernet10 + description: mlag peer link + enabled: true + mode: trunk + lag: ["leaf3", "Port-Channel999"] + - device: leaf3 + name: Ethernet11 + description: spine1 + enabled: true + mtu: 9214 + mode: routed + - device: leaf3 + name: Ethernet12 + description: spine2 + enabled: true + mtu: 9214 + mode: routed + # Leaf4 + - device: leaf4 + name: Ethernet1 + description: host2 + enabled: true + mode: trunk + lag: ["leaf4", "Port-Channel1"] + - device: leaf4 + name: Ethernet10 + description: mlag peer link + enabled: true + mode: trunk + lag: ["leaf4", "Port-Channel999"] + - device: leaf4 + name: Ethernet11 + description: spine1 + enabled: true + mtu: 9214 + mode: routed + - device: leaf4 + name: Ethernet12 + description: spine2 + enabled: true + mtu: 9214 + mode: routed + # Leaf5 + - device: leaf5 + name: Ethernet1 + description: host3 + enabled: true + mode: trunk + lag: ["leaf5", "Port-Channel1"] + - device: leaf5 + name: Ethernet10 + description: mlag peer link + enabled: true + mode: trunk + lag: ["leaf5", "Port-Channel999"] + - device: leaf5 + name: Ethernet11 + description: spine1 + enabled: true + mtu: 9214 + mode: routed + - device: leaf5 + name: Ethernet12 + description: spine2 + enabled: true + mtu: 9214 + mode: routed + # Leaf6 + - device: leaf6 + name: Ethernet1 + description: host3 + enabled: true + mode: trunk + lag: ["leaf6", "Port-Channel1"] + - device: leaf6 + name: Ethernet10 + description: mlag peer link + enabled: true + mode: trunk + lag: ["leaf6", "Port-Channel999"] + - device: leaf6 + name: Ethernet11 + description: spine1 + enabled: true + mtu: 9214 + mode: routed + - device: leaf6 + name: Ethernet12 + description: spine2 + enabled: true + mtu: 9214 + mode: routed + # Leaf7 + - device: leaf7 + name: Ethernet1 + description: host4 + enabled: true + mode: trunk + lag: ["leaf7", "Port-Channel1"] + - device: leaf7 + name: Ethernet10 + description: mlag peer link + enabled: true + mode: trunk + lag: ["leaf7", "Port-Channel999"] + - device: leaf7 + name: Ethernet11 + description: spine1 + enabled: true + mtu: 9214 + mode: routed + - device: leaf7 + name: Ethernet12 + description: spine2 + enabled: true + mtu: 9214 + mode: routed + # Leaf8 + - device: leaf8 + name: Ethernet1 + description: host4 + enabled: true + mode: trunk + lag: ["leaf8", "Port-Channel1"] + - device: leaf8 + name: Ethernet10 + description: mlag peer link + enabled: true + mode: trunk + lag: ["leaf8", "Port-Channel999"] + - device: leaf8 + name: Ethernet11 + description: spine1 + enabled: true + mtu: 9214 + mode: routed + - device: leaf8 + name: Ethernet12 + description: spine2 + enabled: true + mtu: 9214 + mode: routed +--- +apiVersion: infrahub.app/v1 +kind: Object +spec: + kind: InfraInterfaceLag + data: + # Port-Channel999 — MLAG peer-link (all leafs) + - device: leaf1 + name: Port-Channel999 + description: MLAG Peer + enabled: true + lacp_mode: active + - device: leaf2 + name: Port-Channel999 + description: MLAG Peer + enabled: true + lacp_mode: active + - device: leaf3 + name: Port-Channel999 + description: MLAG Peer + enabled: true + lacp_mode: active + - device: leaf4 + name: Port-Channel999 + description: MLAG Peer + enabled: true + lacp_mode: active + - device: leaf5 + name: Port-Channel999 + description: MLAG Peer + enabled: true + lacp_mode: active + - device: leaf6 + name: Port-Channel999 + description: MLAG Peer + enabled: true + lacp_mode: active + - device: leaf7 + name: Port-Channel999 + description: MLAG Peer + enabled: true + lacp_mode: active + - device: leaf8 + name: Port-Channel999 + description: MLAG Peer + enabled: true + lacp_mode: active + # Port-Channel1 — Host-facing MLAG LAG (all leafs) + - device: leaf1 + name: Port-Channel1 + description: host1 + enabled: true + lacp_mode: active + mlag_id: 1 + - device: leaf2 + name: Port-Channel1 + description: host1 + enabled: true + lacp_mode: active + mlag_id: 1 + - device: leaf3 + name: Port-Channel1 + description: host2 + enabled: true + lacp_mode: active + mlag_id: 1 + - device: leaf4 + name: Port-Channel1 + description: host2 + enabled: true + lacp_mode: active + mlag_id: 1 + - device: leaf5 + name: Port-Channel1 + description: host3 + enabled: true + lacp_mode: active + mlag_id: 1 + - device: leaf6 + name: Port-Channel1 + description: host3 + enabled: true + lacp_mode: active + mlag_id: 1 + - device: leaf7 + name: Port-Channel1 + description: host4 + enabled: true + lacp_mode: active + mlag_id: 1 + - device: leaf8 + name: Port-Channel1 + description: host4 + enabled: true + lacp_mode: active + mlag_id: 1 +--- +apiVersion: infrahub.app/v1 +kind: Object +spec: + kind: InfraInterfaceVlan + data: + # Vlan4090 — MLAG Peer-Link SVI (all leafs) + - device: leaf1 + name: Vlan4090 + description: MLAG Peer-Link + enabled: true + autostate: false + vlan: "4090" + - device: leaf2 + name: Vlan4090 + description: MLAG Peer-Link + enabled: true + autostate: false + vlan: "4090" + - device: leaf3 + name: Vlan4090 + description: MLAG Peer-Link + enabled: true + autostate: false + vlan: "4090" + - device: leaf4 + name: Vlan4090 + description: MLAG Peer-Link + enabled: true + autostate: false + vlan: "4090" + - device: leaf5 + name: Vlan4090 + description: MLAG Peer-Link + enabled: true + autostate: false + vlan: "4090" + - device: leaf6 + name: Vlan4090 + description: MLAG Peer-Link + enabled: true + autostate: false + vlan: "4090" + - device: leaf7 + name: Vlan4090 + description: MLAG Peer-Link + enabled: true + autostate: false + vlan: "4090" + - device: leaf8 + name: Vlan4090 + description: MLAG Peer-Link + enabled: true + autostate: false + vlan: "4090" + # Vlan4091 — MLAG iBGP Peering SVI (all leafs) + - device: leaf1 + name: Vlan4091 + description: MLAG iBGP Peering + enabled: true + mtu: 9214 + vlan: "4091" + - device: leaf2 + name: Vlan4091 + description: MLAG iBGP Peering + enabled: true + mtu: 9214 + vlan: "4091" + - device: leaf3 + name: Vlan4091 + description: MLAG iBGP Peering + enabled: true + mtu: 9214 + vlan: "4091" + - device: leaf4 + name: Vlan4091 + description: MLAG iBGP Peering + enabled: true + mtu: 9214 + vlan: "4091" + - device: leaf5 + name: Vlan4091 + description: MLAG iBGP Peering + enabled: true + mtu: 9214 + vlan: "4091" + - device: leaf6 + name: Vlan4091 + description: MLAG iBGP Peering + enabled: true + mtu: 9214 + vlan: "4091" + - device: leaf7 + name: Vlan4091 + description: MLAG iBGP Peering + enabled: true + mtu: 9214 + vlan: "4091" + - device: leaf8 + name: Vlan4091 + description: MLAG iBGP Peering + enabled: true + mtu: 9214 + vlan: "4091" + # Vlan34 — VRF gold subnet (leaf3/leaf4) + - device: leaf3 + name: Vlan34 + description: VRF gold subnet + enabled: true + virtual_router_address: "10.34.34.1" + vlan: "34" + - device: leaf4 + name: Vlan34 + description: VRF gold subnet + enabled: true + virtual_router_address: "10.34.34.1" + vlan: "34" + # Vlan78 — VRF gold subnet (leaf7/leaf8) + - device: leaf7 + name: Vlan78 + description: VRF gold subnet + enabled: true + virtual_router_address: "10.78.78.1" + vlan: "78" + - device: leaf8 + name: Vlan78 + description: VRF gold subnet + enabled: true + virtual_router_address: "10.78.78.1" + vlan: "78" + # Vlan900 — BGP border peering (leaf7/leaf8) + - device: leaf7 + name: Vlan900 + description: BGP border peering + enabled: true + vlan: "900" + - device: leaf8 + name: Vlan900 + description: BGP border peering + enabled: true + vlan: "900"