Files
fabric-orchestrator/CLAUDE.md
2026-02-12 11:19:23 +01:00

1.5 KiB

Claude Code Instructions — Schema Refinement

Project Context

This is a fabric-orchestrator project managing Arista EVPN-VXLAN fabrics. Branch: feature/41-infrahub-schema Schema files are in schemas/ directory (Infrahub YAML format).

Reference Topology (from overlaid.net)

  • 2 spines (AS 65000), 8 leafs in 4 MLAG pairs (AS 65001-65004)
  • Loopback0: BGP router-id, Loopback1: shared VTEP IP per MLAG pair
  • VLANs 4090/4091: MLAG peering with trunk groups
  • EVPN overlay via eBGP multihop on loopbacks
  • L2VXLAN (Type-2) and L3VXLAN (Type-5) with VRFs

Infrahub Schema Rules

  1. human_friendly_id attributes MUST have unique: true
  2. If human_friendly_id needs to be scoped per-device, traverse Parent relationships: parent_rel__parent_attr__value
  3. Parent relationships need optional: false explicitly
  4. Self-referencing relationships need direction: outbound
  5. Multiple relationships to same peer type need unique identifier
  6. Validate with: infrahubctl schema check schemas/

Commit Convention

  • Reference issue: fix(schema): description — refs #41
  • One logical change per commit
  • Run schema validation before committing

Files

  • schemas/base.yml — Device, Interfaces, IPAddress
  • schemas/bgp.yml — AS, BGPRouterConfig, PeerGroup, Session, AF
  • schemas/vlan_vxlan.yml — VLAN, VNI, VTEP, VlanVniMapping, EVPN
  • schemas/vrf.yml — VRF, RouteTarget, VRFDeviceAssignment
  • schemas/mlag.yml — MlagDomain, MlagPeerConfig, MlagInterface
  • schemas/extensions.yml — UnderlayLink, HostConnection, FabricSettings