a05e997742
feat(schema): add include_in_menu: false to all VLAN/VXLAN nodes #41
2026-02-09 12:04:04 +00:00
ffa1eff19a
feat(schema): add include_in_menu: false to all BGP nodes #41
2026-02-09 12:03:38 +00:00
69f003b798
feat(schema): add include_in_menu: false to all base nodes #41
...
Menu is now controlled by custom menus/fabric-menu.yml
2026-02-09 12:03:09 +00:00
40fdf504c9
feat(config): add menu reference to .infrahub.yml #41
2026-02-09 12:02:29 +00:00
78263e8bf5
feat(menu): add custom Infrahub menu for EVPN-VXLAN fabric #41
...
Organize 22+ schema nodes into logical categories:
- Fabric Topology (Fabric, Site, Device, Platform, Underlay Links)
- Interfaces (Ethernet, Loopback, VLAN SVI, LAG, VXLAN)
- IP Addressing
- Layer 2 / VXLAN (VLAN, VNI, VTEP, Mappings, EVPN)
- Routing / BGP (AS, Router Config, Peer Groups, Sessions, AFI)
- VRF (VRF, Route Targets, Assignments)
- MLAG (Domain, Peer Config, Interface)
- Host Connectivity
2026-02-09 12:02:18 +00:00
25550bb3c4
fix: migrate display_labels to display_label Jinja2 format in VRF schema
...
Also enriched VRFDeviceAssignment display_label to show device + VRF.
Refs #41
2026-02-07 09:18:38 +00:00
b9b15f3beb
fix: migrate display_labels to display_label Jinja2 format in VLAN/VXLAN schema
...
Refs #41
2026-02-07 09:18:11 +00:00
d9b47461d3
fix: migrate display_labels to display_label Jinja2 format in MLAG schema
...
Refs #41
2026-02-07 09:17:46 +00:00
498fa8505e
fix: migrate display_labels to display_label Jinja2 format in extensions schema
...
Refs #41
2026-02-07 09:17:26 +00:00
cda3804c2c
fix: migrate display_labels to display_label Jinja2 format in BGP schema
...
Refs #41
2026-02-07 09:17:07 +00:00
97080473f7
fix: migrate display_labels to display_label Jinja2 format in base schema
...
Replaces deprecated display_labels list format and bare display_label
strings with the new Jinja2 template format as required by Infrahub.
Refs #41
2026-02-07 09:16:40 +00:00
bb76b93499
refactor(schema): replace deprecated display_labels with display_label
2026-02-07 09:03:36 +00:00
a917715a47
refactor(schema): replace deprecated display_labels with display_label across all nodes
2026-02-07 09:03:11 +00:00
99f34b9639
fix(schema): add unique: true on VRF.name for HFID peer traversal
2026-02-06 19:39:28 +00:00
0e96e8aca8
fix(schema): add explicit optional: false on VRFDeviceAssignment.vrf for human_friendly_id
2026-02-06 19:20:56 +00:00
d7e2d9f0e0
fix(schema): add optional: false on UnderlayLink.fabric parent relationship
2026-02-06 19:19:55 +00:00
0c0ab1b214
fix(schema): add explicit optional: false to Parent relationships in vrf.yml
2026-02-06 15:10:16 +00:00
a12e24d00c
fix(schema): add explicit optional: false to all Parent relationships in vlan_vxlan.yml
2026-02-06 15:10:00 +00:00
67a54e349d
fix(schema): add explicit optional: false to Parent relationships in mlag.yml
2026-02-06 15:09:25 +00:00
adb02fc25c
fix(schema): add explicit optional: false to all Parent relationships in bgp.yml
2026-02-06 15:08:57 +00:00
ef6877551f
fix(schema): IPAddress.interface - replace Parent with Attribute kind
...
Parent relationships cannot be optional in Infrahub. Since an IP address
can exist without being assigned to an interface (reserved, planned),
we use kind: Attribute instead of kind: Parent.
Also change InfraInterface.ip_addresses from Component to Generic
since Component requires a matching Parent on the other side.
Both sides now use explicit identifier: interface__ip_addresses
for proper bidirectional linking.
2026-02-06 15:07:01 +00:00
4aadf763a3
fix(schema): add optional: false on device relationship for uniqueness_constraints
2026-02-06 13:11:52 +00:00
52c335aeb0
fix(schema): display_labels must only reference local attributes in vrf.yml
2026-02-06 13:08:59 +00:00
2ca08a4f41
fix(schema): display_labels must only reference local attributes in vlan_vxlan.yml
2026-02-06 13:08:30 +00:00
95bd2ee6c8
fix(schema): display_labels must only reference local attributes in mlag.yml
2026-02-06 13:08:04 +00:00
42d03699d9
fix(schema): display_labels must only reference local attributes in extensions.yml
2026-02-06 13:07:44 +00:00
c22a5b6ab4
fix(schema): display_labels must only reference attributes, not relationships
2026-02-06 13:07:24 +00:00
4e9c2d3009
fix(schema): replace deprecated default_filter with human_friendly_id in base.yml
2026-02-06 13:06:58 +00:00
eb809812af
fix(schema): add direction outbound for self-referencing relationship
...
InterfaceEthernet.connected_interface is a self-reference that requires
direction: outbound to avoid bidirectional conflicts per Infrahub docs.
Ref: #41
2026-02-06 09:12:15 +00:00
8114b6d973
fix(schema): add unique identifiers for VRF RouteTarget relationships
...
Add identifier and direction: outbound for import/export targets
in VRF and VRFDeviceAssignment to avoid bidirectional conflicts.
Ref: #41
2026-02-06 09:09:31 +00:00
6d08b19b5f
fix(schema): add unique identifiers for MlagDomain VLAN relationships
...
Add identifier and direction: outbound for peer_vlan and ibgp_vlan
to avoid bidirectional relationship conflicts.
Ref: #41
2026-02-06 09:04:39 +00:00
4f5fef7203
fix(schema): use direction outbound for UnderlayLink relationships
...
Use outbound direction to avoid bidirectional relationship conflicts
when multiple relationships point to the same peer type.
Ref: #41
2026-02-06 08:55:08 +00:00
afa268ad2d
fix(schema): add unique identifiers for UnderlayLink relationships
...
Infrahub requires unique identifiers when multiple relationships
point to the same peer type with the same direction.
Ref: #41
2026-02-06 08:51:47 +00:00
c2a92c340d
fix(schema): rename rd to route_distinguisher in EVPNInstance
...
Infrahub requires attribute names to have at least 3 characters.
Ref: #41
2026-02-06 08:29:12 +00:00
443642c2a1
fix(schema): rename rd to route_distinguisher (min 3 chars)
...
Infrahub requires attribute names to have at least 3 characters.
Ref: #41
2026-02-06 08:28:42 +00:00
Damien
ea6b66d639
docs: reformat README tables for better raw readability
...
Update Markdown tables including InfraHub comparison, Prefect benefits, and project progress phases to use consistent column padding. This improves the visual alignment and readability when viewing the raw source file.
2026-02-06 09:00:27 +01:00
f03698dec5
docs(schema): add schema documentation and ERD
...
Document all schema files, entity relationships, and mapping
to the reference arista-evpn-vxlan-clab topology.
Ref: #41
2026-02-05 15:54:38 +00:00
bd46d5f046
feat(schema): add extensions schema
...
Add Fabric, Underlay Link, and Host Connection models
for fabric-wide configuration and topology documentation.
Ref: #41
2026-02-05 15:54:07 +00:00
e3ef0b3763
feat(schema): add MLAG schema
...
Add models for MLAG Domain, Peer Config, and MLAG Interfaces.
Supports dual-primary detection and heartbeat configuration.
Ref: #41
2026-02-05 15:53:49 +00:00
3e96b0ff1a
feat(schema): add BGP schema
...
Add models for Autonomous System, BGP Router Config, Peer Groups,
BGP Sessions, and Address Families. Supports underlay and EVPN overlay.
Ref: #41
2026-02-05 15:53:32 +00:00
d87ffcaca6
feat(schema): add VRF schema
...
Add models for VRF, Route Target, and VRF-Device assignments.
Supports L3VNI association for symmetric IRB routing.
Ref: #41
2026-02-05 15:53:11 +00:00
535f24a920
feat(schema): add VLAN and VXLAN schema
...
Add models for VLAN, VNI, VTEP, VLAN-VNI mappings, and EVPN instances.
Supports L2VNI and L3VNI types for EVPN-VXLAN fabric.
Ref: #41
2026-02-05 15:52:58 +00:00
077917f011
feat(schema): add base infrastructure schema
...
Add core infrastructure models for Device, Interface, IPAddress,
and Platform based on the arista-evpn-vxlan-clab topology.
Ref: #41
2026-02-05 15:52:36 +00:00
Damien
c6595cda51
docs: replace ASCII architecture diagram with Excalidraw SVG
...
Replace the text-based ASCII art representation of the system architecture with a linked Excalidraw SVG image. This improves visual clarity, readability, and maintainability of the architectural overview in the README.
2026-02-05 13:03:03 +01:00
383aa6b35f
docs: Add Git-as-backend architecture for InfraHub
...
- Repository now serves as InfraHub backend (schema + data in Git)
- Add data/ directory structure for infrastructure objects
- Add transforms/ for Jinja2 config templates
- Update architecture diagram to show Git-centric workflow
- Add "Repository as InfraHub Backend" section explaining benefits
- Simplify project structure to reflect new approach
2026-02-05 08:48:34 +00:00
77ca22bd0a
docs: Update README for InfraHub migration
...
- Replace NetBox with InfraHub as Source of Truth
- Update architecture diagram
- Explain InfraHub benefits (Git-native, custom schema)
- Update project structure (remove netbox references)
- Update technology stack
- Revise project phases for new approach
2026-02-05 08:42:51 +00:00
Damien
e46946606c
Remove fabric provisioning script
...
The `scripts/provision_fabric.py` script and its associated NetBox
client
module (`src/netbox/`) have been removed. This functionality is no
longer
needed.
2026-02-05 09:38:05 +01:00
Damien
4e598ae400
fix(script): update populate script
2026-02-04 18:23:04 +01:00
Damien
0a2f658a2a
fix(scripts): enhance get_or_create logic and parameter handling
...
- Replace `endpoint.get()` with `endpoint.filter()` in `get_or_create` to handle object retrieval more robustly and avoid potential exceptions with multiple results.
- Decouple `search_params` from `create_params` to correctly handle differences between API filtering keys (e.g., `group_id`, `vrf_id`) and creation keys (e.g., `group`, `vrf`).
- Refine IP address lookups to include `assigned_object_id` in search parameters, preventing ambiguous matches against IPs not assigned to the target interface.
2026-02-04 16:31:50 +01:00
52c9586667
fix: use 'device' instead of 'device_id' for interface creation
...
NetBox API requires 'device' field for creation, not 'device_id'.
Separated search and create logic for interfaces.
2026-02-04 15:17:30 +00:00