Compare commits

..

3 Commits

Author SHA1 Message Date
e00cf517e3 Merge pull request 'Add bidirectional navigation relationships' (#18) from feat/update-identifiers into main
Reviewed-on: #18
2026-02-22 09:27:20 +00:00
Damien
ac1634b561 Add device roles to fabric links 2026-02-22 10:07:27 +01:00
Damien
9a0b6dd1e6 feat(schema): add bidirectional relationship identifiers and fabric-device links
- LocationSite: add devices (device__site) and fabrics (fabric__sites) reverse relationships
- InfraDevice.site: add identifier device__site
- InfraDevice: add fabric relationship (fabric__devices)
- InfraFabric.sites: add identifier fabric__sites; add devices reverse relationship (fabric__devices)
- InfraInterfaceVlan.vlan: add identifier vlan__svi
- InfraVLAN: add svi_interfaces reverse relationship (vlan__svi)
- Add 14-fabric-links.yml to assign all 10 devices to the evpn-lab fabric

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 20:59:10 +01:00
4 changed files with 72 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
# Fabric-to-Device links
# Depends on: 02-devices, 03-fabric
---
apiVersion: infrahub.app/v1
kind: Object
spec:
kind: InfraDevice
data:
- name: spine1
role: spine
fabric: "evpn-lab"
- name: spine2
role: spine
fabric: "evpn-lab"
- name: leaf1
role: leaf
fabric: "evpn-lab"
- name: leaf2
role: leaf
fabric: "evpn-lab"
- name: leaf3
role: leaf
fabric: "evpn-lab"
- name: leaf4
role: leaf
fabric: "evpn-lab"
- name: leaf5
role: leaf
fabric: "evpn-lab"
- name: leaf6
role: leaf
fabric: "evpn-lab"
- name: leaf7
role: leaf
fabric: "evpn-lab"
- name: leaf8
role: leaf
fabric: "evpn-lab"

View File

@@ -62,6 +62,19 @@ nodes:
kind: Text
optional: true
description: Facility identifier or code
relationships:
- name: devices
peer: InfraDevice
identifier: device__site
cardinality: many
kind: Generic
description: Devices at this site
- name: fabrics
peer: InfraFabric
identifier: fabric__sites
cardinality: many
kind: Generic
description: Fabrics deployed at this site
# ================================================================
# Platform
@@ -145,6 +158,7 @@ nodes:
relationships:
- name: site
peer: LocationSite
identifier: device__site
cardinality: one
optional: true
- name: platform
@@ -164,6 +178,12 @@ nodes:
peer: InfraMlagDomain
cardinality: one
optional: true
- name: fabric
peer: InfraFabric
identifier: fabric__devices
cardinality: one
optional: true
description: Fabric this device belongs to
# ================================================================
# Interface Types (inherit from InfraInterface generic)
@@ -263,6 +283,7 @@ nodes:
relationships:
- name: vlan
peer: InfraVLAN
identifier: vlan__svi
cardinality: one
optional: true

View File

@@ -55,8 +55,15 @@ nodes:
description: AS used by spine layer
- name: sites
peer: LocationSite
identifier: fabric__sites
cardinality: many
optional: true
- name: devices
peer: InfraDevice
identifier: fabric__devices
cardinality: many
kind: Generic
description: Devices in this fabric
# ================================================================
# Underlay P2P Link

View File

@@ -70,6 +70,12 @@ nodes:
peer: LocationSite
cardinality: one
optional: true
- name: svi_interfaces
peer: InfraInterfaceVlan
identifier: vlan__svi
cardinality: many
kind: Generic
description: SVI interfaces for this VLAN
# ================================================================
# VNI (VXLAN Network Identifier)