[Phase 2] Define Infrahub Schema for EVPN-VXLAN Fabric #51
147
schemas/extensions.yml
Normal file
147
schemas/extensions.yml
Normal file
@@ -0,0 +1,147 @@
|
||||
# Extensions Schema for EVPN-VXLAN Fabric
|
||||
# Custom attributes and fabric-specific configurations
|
||||
---
|
||||
version: "1.0"
|
||||
nodes:
|
||||
# =============================================================================
|
||||
# Fabric (Top-level container for all fabric objects)
|
||||
# =============================================================================
|
||||
- name: Fabric
|
||||
namespace: Infra
|
||||
description: EVPN-VXLAN Fabric definition
|
||||
label: Fabric
|
||||
icon: mdi--vector-polygon
|
||||
default_filter: name__value
|
||||
order_by:
|
||||
- name__value
|
||||
display_labels:
|
||||
- name__value
|
||||
attributes:
|
||||
- name: name
|
||||
kind: Text
|
||||
unique: true
|
||||
description: Fabric name (e.g., arista-evpn-fabric)
|
||||
- name: description
|
||||
kind: Text
|
||||
optional: true
|
||||
- name: underlay_protocol
|
||||
kind: Dropdown
|
||||
default_value: ebgp
|
||||
choices:
|
||||
- name: ebgp
|
||||
label: eBGP
|
||||
- name: ospf
|
||||
label: OSPF
|
||||
- name: isis
|
||||
label: IS-IS
|
||||
- name: overlay_protocol
|
||||
kind: Dropdown
|
||||
default_value: evpn
|
||||
choices:
|
||||
- name: evpn
|
||||
label: EVPN
|
||||
- name: ingress_replication
|
||||
label: Ingress Replication
|
||||
- name: anycast_gateway_mac
|
||||
kind: Text
|
||||
optional: true
|
||||
description: "Shared MAC for anycast gateway (format: xxxx.xxxx.xxxx)"
|
||||
relationships:
|
||||
- name: spine_asn
|
||||
peer: InfraAutonomousSystem
|
||||
cardinality: one
|
||||
optional: true
|
||||
description: AS used by spine layer
|
||||
- name: sites
|
||||
peer: LocationSite
|
||||
cardinality: many
|
||||
optional: true
|
||||
|
||||
# =============================================================================
|
||||
# Underlay P2P Link
|
||||
# =============================================================================
|
||||
- name: UnderlayLink
|
||||
namespace: Infra
|
||||
description: Point-to-point underlay link between devices
|
||||
label: Underlay Link
|
||||
icon: mdi--cable-data
|
||||
display_labels:
|
||||
- local_device__name__value
|
||||
- remote_device__name__value
|
||||
attributes:
|
||||
- name: local_ip
|
||||
kind: IPNetwork
|
||||
description: Local interface IP with mask
|
||||
- name: remote_ip
|
||||
kind: IPNetwork
|
||||
description: Remote interface IP with mask
|
||||
- name: mtu
|
||||
kind: Number
|
||||
default_value: 9214
|
||||
relationships:
|
||||
- name: fabric
|
||||
peer: InfraFabric
|
||||
cardinality: one
|
||||
kind: Parent
|
||||
- name: local_device
|
||||
peer: InfraDevice
|
||||
cardinality: one
|
||||
- name: local_interface
|
||||
peer: InfraInterfaceEthernet
|
||||
cardinality: one
|
||||
- name: remote_device
|
||||
peer: InfraDevice
|
||||
cardinality: one
|
||||
- name: remote_interface
|
||||
peer: InfraInterfaceEthernet
|
||||
cardinality: one
|
||||
|
||||
# =============================================================================
|
||||
# Host Connection
|
||||
# =============================================================================
|
||||
- name: HostConnection
|
||||
namespace: Infra
|
||||
description: Host connection to fabric (single or dual-homed)
|
||||
label: Host Connection
|
||||
icon: mdi--desktop-tower
|
||||
default_filter: hostname__value
|
||||
display_labels:
|
||||
- hostname__value
|
||||
attributes:
|
||||
- name: hostname
|
||||
kind: Text
|
||||
description: Connected host name
|
||||
- name: description
|
||||
kind: Text
|
||||
optional: true
|
||||
- name: connection_type
|
||||
kind: Dropdown
|
||||
default_value: dual_homed
|
||||
choices:
|
||||
- name: single_homed
|
||||
label: Single-Homed
|
||||
- name: dual_homed
|
||||
label: Dual-Homed (MLAG)
|
||||
- name: lacp_mode
|
||||
kind: Dropdown
|
||||
default_value: active
|
||||
choices:
|
||||
- name: active
|
||||
label: Active
|
||||
- name: passive
|
||||
label: Passive
|
||||
relationships:
|
||||
- name: vlans
|
||||
peer: InfraVLAN
|
||||
cardinality: many
|
||||
description: VLANs allowed on this connection
|
||||
- name: mlag_interface
|
||||
peer: InfraMlagInterface
|
||||
cardinality: one
|
||||
optional: true
|
||||
description: MLAG interface for dual-homed
|
||||
- name: lag_interface
|
||||
peer: InfraInterfaceLag
|
||||
cardinality: one
|
||||
optional: true
|
||||
description: LAG for single-homed
|
||||
Reference in New Issue
Block a user