[Phase 2] Define Infrahub Schema for EVPN-VXLAN Fabric #51

Merged
Damien merged 58 commits from feature/41-infrahub-schema into main 2026-02-13 19:36:27 +00:00
Showing only changes of commit 78263e8bf5 - Show all commits

247
menus/fabric-menu.yml Normal file
View File

@@ -0,0 +1,247 @@
# yaml-language-server: $schema=https://schema.infrahub.app/infrahub/menu/latest.json
# Custom menu for EVPN-VXLAN Fabric Orchestrator
# Organizes schema nodes into logical topology-aligned categories
---
apiversion: infrahub.app/v1
kind: Menu
spec:
data:
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Fabric Topology
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- namespace: Topology
name: Mainmenu
label: Fabric Topology
icon: "mdi:lan"
children:
data:
- namespace: Topology
name: Fabric
label: Fabrics
kind: InfraFabric
icon: "mdi:vector-polygon"
- namespace: Topology
name: Site
label: Sites
kind: LocationSite
icon: "mingcute:building-4-line"
- namespace: Topology
name: Device
label: Devices
kind: InfraDevice
icon: "mdi:server-network"
- namespace: Topology
name: Platform
label: Platforms
kind: InfraPlatform
icon: "mdi:chip"
- namespace: Topology
name: UnderlayLink
label: Underlay Links
kind: InfraUnderlayLink
icon: "mdi:cable-data"
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Interfaces
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- namespace: Interfaces
name: Mainmenu
label: Interfaces
icon: "mdi:ethernet"
children:
data:
- namespace: Interfaces
name: Ethernet
label: Ethernet
kind: InfraInterfaceEthernet
icon: "mdi:ethernet"
- namespace: Interfaces
name: Loopback
label: Loopback
kind: InfraInterfaceLoopback
icon: "mdi:reload"
- namespace: Interfaces
name: VlanSvi
label: VLAN SVI
kind: InfraInterfaceVlan
icon: "mdi:lan"
- namespace: Interfaces
name: Lag
label: LAG / Port-Channel
kind: InfraInterfaceLag
icon: "mdi:link-variant"
- namespace: Interfaces
name: Vxlan
label: VXLAN Tunnel
kind: InfraInterfaceVxlan
icon: "mdi:tunnel"
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# IP Addressing
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- namespace: Addressing
name: Mainmenu
label: IP Addressing
icon: "mdi:ip-network"
children:
data:
- namespace: Addressing
name: IPAddress
label: IP Addresses
kind: InfraIPAddress
icon: "mdi:ip-network"
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Layer 2 / VXLAN
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- namespace: Layer2
name: Mainmenu
label: Layer 2 / VXLAN
icon: "mdi:switch"
children:
data:
- namespace: Layer2
name: Vlan
label: VLANs
kind: InfraVLAN
icon: "mdi:lan-connect"
- namespace: Layer2
name: Vni
label: VNIs
kind: InfraVNI
icon: "mdi:tunnel-outline"
- namespace: Layer2
name: Vtep
label: VTEPs
kind: InfraVTEP
icon: "mdi:server-network-outline"
- namespace: Layer2
name: VlanVniMapping
label: VLAN-VNI Mappings
kind: InfraVlanVniMapping
icon: "mdi:swap-horizontal"
- namespace: Layer2
name: EvpnInstance
label: EVPN Instances
kind: InfraEVPNInstance
icon: "mdi:cloud-sync"
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Routing / BGP
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- namespace: Routing
name: Mainmenu
label: Routing / BGP
icon: "mdi:routes"
children:
data:
- namespace: Routing
name: AutonomousSystem
label: Autonomous Systems
kind: InfraAutonomousSystem
icon: "mdi:cloud-outline"
- namespace: Routing
name: BGPRouterConfig
label: BGP Router Config
kind: InfraBGPRouterConfig
icon: "mdi:router-wireless"
- namespace: Routing
name: BGPPeerGroup
label: BGP Peer Groups
kind: InfraBGPPeerGroup
icon: "mdi:account-group"
- namespace: Routing
name: BGPSession
label: BGP Sessions
kind: InfraBGPSession
icon: "mdi:connection"
- namespace: Routing
name: BGPAddressFamily
label: BGP Address Families
kind: InfraBGPAddressFamily
icon: "mdi:format-list-bulleted"
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# VRF
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- namespace: VRF
name: Mainmenu
label: VRF
icon: "mdi:router"
children:
data:
- namespace: VRF
name: Vrf
label: VRFs
kind: InfraVRF
icon: "mdi:router"
- namespace: VRF
name: RouteTarget
label: Route Targets
kind: InfraRouteTarget
icon: "mdi:target"
- namespace: VRF
name: VrfAssignment
label: VRF Assignments
kind: InfraVRFDeviceAssignment
icon: "mdi:router-network"
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# MLAG
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- namespace: MLAG
name: Mainmenu
label: MLAG
icon: "mdi:link-variant"
children:
data:
- namespace: MLAG
name: MlagDomain
label: MLAG Domains
kind: InfraMlagDomain
icon: "mdi:link-variant"
- namespace: MLAG
name: MlagPeerConfig
label: MLAG Peer Config
kind: InfraMlagPeerConfig
icon: "mdi:server-network"
- namespace: MLAG
name: MlagInterface
label: MLAG Interfaces
kind: InfraMlagInterface
icon: "mdi:ethernet-cable"
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Host Connectivity
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- namespace: Connectivity
name: Mainmenu
label: Host Connectivity
icon: "mdi:desktop-tower"
children:
data:
- namespace: Connectivity
name: HostConnection
label: Host Connections
kind: InfraHostConnection
icon: "mdi:desktop-tower"