[Phase 2] Define NetBox ConfigContext schema for fabric intent #5
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
Define the JSON schema for NetBox ConfigContexts that will represent fabric intent.
Tasks
docs/netbox-schema.mdSchema Structure (Draft)
Output
docs/netbox-schema.mdwith full schema documentationsrc/netbox/models.pywith Pydantic modelsUpdated Approach: Native NetBox Models + BGP Plugin
After review, we'll use NetBox's native models and the BGP plugin (v0.17.x) instead of ConfigContexts for most fabric intent data.
Native NetBox Models (built-in)
dcim.Device/api/dcim/devices/dcim.Interface/api/dcim/interfaces/dcim.Interface(type=LAG)/api/dcim/interfaces/ipam.VLAN/api/ipam/vlans/ipam.VLANGroup/api/ipam/vlan-groups/ipam.VRF/api/ipam/vrfs/ipam.RouteTarget/api/ipam/route-targets/ipam.IPAddress/api/ipam/ip-addresses/ipam.Prefix/api/ipam/prefixes/ipam.ASN/api/ipam/asns/vpn.L2VPN/api/vpn/l2vpns/vpn.L2VPNTermination/api/vpn/l2vpn-terminations/NetBox BGP Plugin Models
netbox_bgp.BGPSession/api/plugins/bgp/sessions/netbox_bgp.PeerGroup/api/plugins/bgp/peer-groups/netbox_bgp.Community/api/plugins/bgp/communities/netbox_bgp.RoutingPolicy/api/plugins/bgp/routing-policies/netbox_bgp.PrefixList/api/plugins/bgp/prefix-lists/netbox_bgp.ASPathList/api/plugins/bgp/as-path-lists/Mapping to EVPN Fabric Configuration
Device+DeviceRoleInterface+Cable+IPAddressInterface(type=virtual) +IPAddressInterface(type=virtual) +IPAddressASN+ assignment to Device/SiteBGPSession(plugin)BGPSession(plugin)PeerGroup(plugin)BGPSession(plugin)VLANL2VPN(type=EVPN) +L2VPNTerminationVRF+RouteTargetInterface(LAG) +CableWhat still needs Custom Fields?
Revised Deliverables
docs/netbox-data-model.md- Full mapping documentationsrc/netbox/client.py- NetBox API client using pynetboxAjout de la documentation Câblage
La documentation
docs/netbox-data-model.mda été mise à jour avec une nouvelle section Cabling qui inclut :Contenu ajouté
dcim.Cablede NetBoxnetbox-topology-viewsValeur ajoutée
netbox-topology-viewsgénère des diagrammes automatiquementNext Steps mis à jour
Script de provisioning NetBox créé
Une branche
feat/netbox-provisioninga été créée dans arista-evpn-vxlan-clab avec :Fichiers ajoutés
netbox/provision_fabric.py- Script principal de provisioningnetbox/requirements.txt- Dépendances (pynetbox)netbox/README.md- Documentation d'utilisationCe que le script crée
Utilisation
Points à valider
cEOS-lab. On peut importer un type depuis devicetype-library si tu préfères un modèle Arista spécifique (ex: DCS-7050TX).evpn-lab. À adapter si besoin (Tenant, Region, etc.)