diff --git a/objects/02-fabric.yml b/objects/02-fabric.yml index 7d7f8fc..c0861f4 100644 --- a/objects/02-fabric.yml +++ b/objects/02-fabric.yml @@ -10,6 +10,6 @@ spec: underlay_protocol: ebgp overlay_protocol: evpn anycast_gateway_mac: "c001.cafe.babe" - spine_asn: "65000" + spine_asn: ["65000"] sites: - - dc1 + - ["dc1"] diff --git a/objects/03-devices.yml b/objects/03-devices.yml index 2d7603d..96da0e2 100644 --- a/objects/03-devices.yml +++ b/objects/03-devices.yml @@ -11,73 +11,73 @@ spec: description: Spine1 - BGP EVPN Spine role: spine status: active - platform: arista_eos - site: dc1 - asn: "65000" + platform: ["arista_eos"] + site: ["dc1"] + asn: ["65000"] - name: spine2 description: Spine2 - BGP EVPN Spine role: spine status: active - platform: arista_eos - site: dc1 - asn: "65000" + platform: ["arista_eos"] + site: ["dc1"] + asn: ["65000"] # Leaf pair 1 (VTEP1) - name: leaf1 description: Leaf1 - VTEP1 role: leaf status: active - platform: arista_eos - site: dc1 - asn: "65001" + platform: ["arista_eos"] + site: ["dc1"] + asn: ["65001"] - name: leaf2 description: Leaf2 - VTEP1 role: leaf status: active - platform: arista_eos - site: dc1 - asn: "65001" + platform: ["arista_eos"] + site: ["dc1"] + asn: ["65001"] # Leaf pair 2 (VTEP2) - name: leaf3 description: Leaf3 - VTEP2 role: leaf status: active - platform: arista_eos - site: dc1 - asn: "65002" + platform: ["arista_eos"] + site: ["dc1"] + asn: ["65002"] - name: leaf4 description: Leaf4 - VTEP2 role: leaf status: active - platform: arista_eos - site: dc1 - asn: "65002" + platform: ["arista_eos"] + site: ["dc1"] + asn: ["65002"] # Leaf pair 3 (VTEP3) - name: leaf5 description: Leaf5 - VTEP3 role: leaf status: active - platform: arista_eos - site: dc1 - asn: "65003" + platform: ["arista_eos"] + site: ["dc1"] + asn: ["65003"] - name: leaf6 description: Leaf6 - VTEP3 role: leaf status: active - platform: arista_eos - site: dc1 - asn: "65003" + platform: ["arista_eos"] + site: ["dc1"] + asn: ["65003"] # Leaf pair 4 (VTEP4) - name: leaf7 description: Leaf7 - VTEP4 role: border_leaf status: active - platform: arista_eos - site: dc1 - asn: "65004" + platform: ["arista_eos"] + site: ["dc1"] + asn: ["65004"] - name: leaf8 description: Leaf8 - VTEP4 role: border_leaf status: active - platform: arista_eos - site: dc1 - asn: "65004" + platform: ["arista_eos"] + site: ["dc1"] + asn: ["65004"] \ No newline at end of file diff --git a/objects/04-interfaces.yml b/objects/04-interfaces.yml index 526959c..9cccb06 100644 --- a/objects/04-interfaces.yml +++ b/objects/04-interfaces.yml @@ -7,76 +7,76 @@ spec: kind: InfraInterfaceLoopback data: # Spine loopbacks (Lo0 only) - - device: spine1 + - device: ["spine1"] name: Loopback0 description: Router-ID enabled: true - - device: spine2 + - device: ["spine2"] name: Loopback0 description: Router-ID enabled: true # Leaf loopbacks (Lo0 + Lo1) - - device: leaf1 + - device: ["leaf1"] name: Loopback0 description: Router-ID enabled: true - - device: leaf1 + - device: ["leaf1"] name: Loopback1 description: VTEP enabled: true - - device: leaf2 + - device: ["leaf2"] name: Loopback0 description: Router-ID enabled: true - - device: leaf2 + - device: ["leaf2"] name: Loopback1 description: VTEP enabled: true - - device: leaf3 + - device: ["leaf3"] name: Loopback0 description: Router-ID enabled: true - - device: leaf3 + - device: ["leaf3"] name: Loopback1 description: VTEP enabled: true - - device: leaf4 + - device: ["leaf4"] name: Loopback0 description: Router-ID enabled: true - - device: leaf4 + - device: ["leaf4"] name: Loopback1 description: VTEP enabled: true - - device: leaf5 + - device: ["leaf5"] name: Loopback0 description: Router-ID enabled: true - - device: leaf5 + - device: ["leaf5"] name: Loopback1 description: VTEP enabled: true - - device: leaf6 + - device: ["leaf6"] name: Loopback0 description: Router-ID enabled: true - - device: leaf6 + - device: ["leaf6"] name: Loopback1 description: VTEP enabled: true - - device: leaf7 + - device: ["leaf7"] name: Loopback0 description: Router-ID enabled: true - - device: leaf7 + - device: ["leaf7"] name: Loopback1 description: VTEP enabled: true - - device: leaf8 + - device: ["leaf8"] name: Loopback0 description: Router-ID enabled: true - - device: leaf8 + - device: ["leaf8"] name: Loopback1 description: VTEP enabled: true @@ -89,49 +89,49 @@ spec: # ============================================================ # Spine1 Ethernet interfaces (underlay to leafs) # ============================================================ - - device: spine1 + - device: ["spine1"] name: Ethernet1 description: leaf1 enabled: true mtu: 9214 mode: routed - - device: spine1 + - device: ["spine1"] name: Ethernet2 description: leaf2 enabled: true mtu: 9214 mode: routed - - device: spine1 + - device: ["spine1"] name: Ethernet3 description: leaf3 enabled: true mtu: 9214 mode: routed - - device: spine1 + - device: ["spine1"] name: Ethernet4 description: leaf4 enabled: true mtu: 9214 mode: routed - - device: spine1 + - device: ["spine1"] name: Ethernet5 description: leaf5 enabled: true mtu: 9214 mode: routed - - device: spine1 + - device: ["spine1"] name: Ethernet6 description: leaf6 enabled: true mtu: 9214 mode: routed - - device: spine1 + - device: ["spine1"] name: Ethernet7 description: leaf7 enabled: true mtu: 9214 mode: routed - - device: spine1 + - device: ["spine1"] name: Ethernet8 description: leaf8 enabled: true @@ -140,49 +140,49 @@ spec: # ============================================================ # Spine2 Ethernet interfaces (underlay to leafs) # ============================================================ - - device: spine2 + - device: ["spine2"] name: Ethernet1 description: leaf1 enabled: true mtu: 9214 mode: routed - - device: spine2 + - device: ["spine2"] name: Ethernet2 description: leaf2 enabled: true mtu: 9214 mode: routed - - device: spine2 + - device: ["spine2"] name: Ethernet3 description: leaf3 enabled: true mtu: 9214 mode: routed - - device: spine2 + - device: ["spine2"] name: Ethernet4 description: leaf4 enabled: true mtu: 9214 mode: routed - - device: spine2 + - device: ["spine2"] name: Ethernet5 description: leaf5 enabled: true mtu: 9214 mode: routed - - device: spine2 + - device: ["spine2"] name: Ethernet6 description: leaf6 enabled: true mtu: 9214 mode: routed - - device: spine2 + - device: ["spine2"] name: Ethernet7 description: leaf7 enabled: true mtu: 9214 mode: routed - - device: spine2 + - device: ["spine2"] name: Ethernet8 description: leaf8 enabled: true @@ -194,200 +194,200 @@ spec: # Ethernet11 (spine1), Ethernet12 (spine2) # ============================================================ # Leaf1 - - device: leaf1 + - device: ["leaf1"] name: Ethernet1 description: host1 enabled: true mode: trunk lag: ["leaf1", "Port-Channel1"] - - device: leaf1 + - device: ["leaf1"] name: Ethernet10 description: mlag peer link enabled: true mode: trunk lag: ["leaf1", "Port-Channel999"] - - device: leaf1 + - device: ["leaf1"] name: Ethernet11 description: spine1 enabled: true mtu: 9214 mode: routed - - device: leaf1 + - device: ["leaf1"] name: Ethernet12 description: spine2 enabled: true mtu: 9214 mode: routed # Leaf2 - - device: leaf2 + - device: ["leaf2"] name: Ethernet1 description: host1 enabled: true mode: trunk lag: ["leaf2", "Port-Channel1"] - - device: leaf2 + - device: ["leaf2"] name: Ethernet10 description: mlag peer link enabled: true mode: trunk lag: ["leaf2", "Port-Channel999"] - - device: leaf2 + - device: ["leaf2"] name: Ethernet11 description: spine1 enabled: true mtu: 9214 mode: routed - - device: leaf2 + - device: ["leaf2"] name: Ethernet12 description: spine2 enabled: true mtu: 9214 mode: routed # Leaf3 - - device: leaf3 + - device: ["leaf3"] name: Ethernet1 description: host2 enabled: true mode: trunk lag: ["leaf3", "Port-Channel1"] - - device: leaf3 + - device: ["leaf3"] name: Ethernet10 description: mlag peer link enabled: true mode: trunk lag: ["leaf3", "Port-Channel999"] - - device: leaf3 + - device: ["leaf3"] name: Ethernet11 description: spine1 enabled: true mtu: 9214 mode: routed - - device: leaf3 + - device: ["leaf3"] name: Ethernet12 description: spine2 enabled: true mtu: 9214 mode: routed # Leaf4 - - device: leaf4 + - device: ["leaf4"] name: Ethernet1 description: host2 enabled: true mode: trunk lag: ["leaf4", "Port-Channel1"] - - device: leaf4 + - device: ["leaf4"] name: Ethernet10 description: mlag peer link enabled: true mode: trunk lag: ["leaf4", "Port-Channel999"] - - device: leaf4 + - device: ["leaf4"] name: Ethernet11 description: spine1 enabled: true mtu: 9214 mode: routed - - device: leaf4 + - device: ["leaf4"] name: Ethernet12 description: spine2 enabled: true mtu: 9214 mode: routed # Leaf5 - - device: leaf5 + - device: ["leaf5"] name: Ethernet1 description: host3 enabled: true mode: trunk lag: ["leaf5", "Port-Channel1"] - - device: leaf5 + - device: ["leaf5"] name: Ethernet10 description: mlag peer link enabled: true mode: trunk lag: ["leaf5", "Port-Channel999"] - - device: leaf5 + - device: ["leaf5"] name: Ethernet11 description: spine1 enabled: true mtu: 9214 mode: routed - - device: leaf5 + - device: ["leaf5"] name: Ethernet12 description: spine2 enabled: true mtu: 9214 mode: routed # Leaf6 - - device: leaf6 + - device: ["leaf6"] name: Ethernet1 description: host3 enabled: true mode: trunk lag: ["leaf6", "Port-Channel1"] - - device: leaf6 + - device: ["leaf6"] name: Ethernet10 description: mlag peer link enabled: true mode: trunk lag: ["leaf6", "Port-Channel999"] - - device: leaf6 + - device: ["leaf6"] name: Ethernet11 description: spine1 enabled: true mtu: 9214 mode: routed - - device: leaf6 + - device: ["leaf6"] name: Ethernet12 description: spine2 enabled: true mtu: 9214 mode: routed # Leaf7 - - device: leaf7 + - device: ["leaf7"] name: Ethernet1 description: host4 enabled: true mode: trunk lag: ["leaf7", "Port-Channel1"] - - device: leaf7 + - device: ["leaf7"] name: Ethernet10 description: mlag peer link enabled: true mode: trunk lag: ["leaf7", "Port-Channel999"] - - device: leaf7 + - device: ["leaf7"] name: Ethernet11 description: spine1 enabled: true mtu: 9214 mode: routed - - device: leaf7 + - device: ["leaf7"] name: Ethernet12 description: spine2 enabled: true mtu: 9214 mode: routed # Leaf8 - - device: leaf8 + - device: ["leaf8"] name: Ethernet1 description: host4 enabled: true mode: trunk lag: ["leaf8", "Port-Channel1"] - - device: leaf8 + - device: ["leaf8"] name: Ethernet10 description: mlag peer link enabled: true mode: trunk lag: ["leaf8", "Port-Channel999"] - - device: leaf8 + - device: ["leaf8"] name: Ethernet11 description: spine1 enabled: true mtu: 9214 mode: routed - - device: leaf8 + - device: ["leaf8"] name: Ethernet12 description: spine2 enabled: true @@ -400,90 +400,90 @@ spec: kind: InfraInterfaceLag data: # Port-Channel999 — MLAG peer-link (all leafs) - - device: leaf1 + - device: ["leaf1"] name: Port-Channel999 description: MLAG Peer enabled: true lacp_mode: active - - device: leaf2 + - device: ["leaf2"] name: Port-Channel999 description: MLAG Peer enabled: true lacp_mode: active - - device: leaf3 + - device: ["leaf3"] name: Port-Channel999 description: MLAG Peer enabled: true lacp_mode: active - - device: leaf4 + - device: ["leaf4"] name: Port-Channel999 description: MLAG Peer enabled: true lacp_mode: active - - device: leaf5 + - device: ["leaf5"] name: Port-Channel999 description: MLAG Peer enabled: true lacp_mode: active - - device: leaf6 + - device: ["leaf6"] name: Port-Channel999 description: MLAG Peer enabled: true lacp_mode: active - - device: leaf7 + - device: ["leaf7"] name: Port-Channel999 description: MLAG Peer enabled: true lacp_mode: active - - device: leaf8 + - device: ["leaf8"] name: Port-Channel999 description: MLAG Peer enabled: true lacp_mode: active # Port-Channel1 — Host-facing MLAG LAG (all leafs) - - device: leaf1 + - device: ["leaf1"] name: Port-Channel1 description: host1 enabled: true lacp_mode: active mlag_id: 1 - - device: leaf2 + - device: ["leaf2"] name: Port-Channel1 description: host1 enabled: true lacp_mode: active mlag_id: 1 - - device: leaf3 + - device: ["leaf3"] name: Port-Channel1 description: host2 enabled: true lacp_mode: active mlag_id: 1 - - device: leaf4 + - device: ["leaf4"] name: Port-Channel1 description: host2 enabled: true lacp_mode: active mlag_id: 1 - - device: leaf5 + - device: ["leaf5"] name: Port-Channel1 description: host3 enabled: true lacp_mode: active mlag_id: 1 - - device: leaf6 + - device: ["leaf6"] name: Port-Channel1 description: host3 enabled: true lacp_mode: active mlag_id: 1 - - device: leaf7 + - device: ["leaf7"] name: Port-Channel1 description: host4 enabled: true lacp_mode: active mlag_id: 1 - - device: leaf8 + - device: ["leaf8"] name: Port-Channel1 description: host4 enabled: true @@ -496,137 +496,137 @@ spec: kind: InfraInterfaceVlan data: # Vlan4090 — MLAG Peer-Link SVI (all leafs) - - device: leaf1 + - device: ["leaf1"] name: Vlan4090 description: MLAG Peer-Link enabled: true autostate: false - vlan: "4090" - - device: leaf2 + vlan: ["4090"] + - device: ["leaf2"] name: Vlan4090 description: MLAG Peer-Link enabled: true autostate: false - vlan: "4090" - - device: leaf3 + vlan: ["4090"] + - device: ["leaf3"] name: Vlan4090 description: MLAG Peer-Link enabled: true autostate: false - vlan: "4090" - - device: leaf4 + vlan: ["4090"] + - device: ["leaf4"] name: Vlan4090 description: MLAG Peer-Link enabled: true autostate: false - vlan: "4090" - - device: leaf5 + vlan: ["4090"] + - device: ["leaf5"] name: Vlan4090 description: MLAG Peer-Link enabled: true autostate: false - vlan: "4090" - - device: leaf6 + vlan: ["4090"] + - device: ["leaf6"] name: Vlan4090 description: MLAG Peer-Link enabled: true autostate: false - vlan: "4090" - - device: leaf7 + vlan: ["4090"] + - device: ["leaf7"] name: Vlan4090 description: MLAG Peer-Link enabled: true autostate: false - vlan: "4090" - - device: leaf8 + vlan: ["4090"] + - device: ["leaf8"] name: Vlan4090 description: MLAG Peer-Link enabled: true autostate: false - vlan: "4090" + vlan: ["4090"] # Vlan4091 — MLAG iBGP Peering SVI (all leafs) - - device: leaf1 + - device: ["leaf1"] name: Vlan4091 description: MLAG iBGP Peering enabled: true mtu: 9214 - vlan: "4091" - - device: leaf2 + vlan: ["4091"] + - device: ["leaf2"] name: Vlan4091 description: MLAG iBGP Peering enabled: true mtu: 9214 - vlan: "4091" - - device: leaf3 + vlan: ["4091"] + - device: ["leaf3"] name: Vlan4091 description: MLAG iBGP Peering enabled: true mtu: 9214 - vlan: "4091" - - device: leaf4 + vlan: ["4091"] + - device: ["leaf4"] name: Vlan4091 description: MLAG iBGP Peering enabled: true mtu: 9214 - vlan: "4091" - - device: leaf5 + vlan: ["4091"] + - device: ["leaf5"] name: Vlan4091 description: MLAG iBGP Peering enabled: true mtu: 9214 - vlan: "4091" - - device: leaf6 + vlan: ["4091"] + - device: ["leaf6"] name: Vlan4091 description: MLAG iBGP Peering enabled: true mtu: 9214 - vlan: "4091" - - device: leaf7 + vlan: ["4091"] + - device: ["leaf7"] name: Vlan4091 description: MLAG iBGP Peering enabled: true mtu: 9214 - vlan: "4091" - - device: leaf8 + vlan: ["4091"] + - device: ["leaf8"] name: Vlan4091 description: MLAG iBGP Peering enabled: true mtu: 9214 - vlan: "4091" + vlan: ["4091"] # Vlan34 — VRF gold subnet (leaf3/leaf4) - - device: leaf3 + - device: ["leaf3"] name: Vlan34 description: VRF gold subnet enabled: true virtual_router_address: "10.34.34.1" - vlan: "34" - - device: leaf4 + vlan: ["34"] + - device: ["leaf4"] name: Vlan34 description: VRF gold subnet enabled: true virtual_router_address: "10.34.34.1" - vlan: "34" + vlan: ["34"] # Vlan78 — VRF gold subnet (leaf7/leaf8) - - device: leaf7 + - device: ["leaf7"] name: Vlan78 description: VRF gold subnet enabled: true virtual_router_address: "10.78.78.1" - vlan: "78" - - device: leaf8 + vlan: ["78"] + - device: ["leaf8"] name: Vlan78 description: VRF gold subnet enabled: true virtual_router_address: "10.78.78.1" - vlan: "78" + vlan: ["78"] # Vlan900 — BGP border peering (leaf7/leaf8) - - device: leaf7 + - device: ["leaf7"] name: Vlan900 description: BGP border peering enabled: true - vlan: "900" - - device: leaf8 + vlan: ["900"] + - device: ["leaf8"] name: Vlan900 description: BGP border peering enabled: true - vlan: "900" + vlan: ["900"] \ No newline at end of file diff --git a/objects/06-vlans-vxlan.yml b/objects/06-vlans-vxlan.yml index edfb4c2..96a4ff8 100644 --- a/objects/06-vlans-vxlan.yml +++ b/objects/06-vlans-vxlan.yml @@ -51,7 +51,7 @@ spec: - vni: 110040 description: L2VNI for VLAN 40 (test-l2-vxlan) vni_type: l2vni - vlan: "40" + vlan: ["40"] - vni: 100001 description: L3VNI for VRF gold vni_type: l3vni @@ -62,49 +62,49 @@ spec: kind: InfraVTEP data: # VTEP on leaf1 (shared VTEP1 IP 10.0.255.11) - - device: leaf1 + - device: ["leaf1"] source_address: "10.0.255.11" udp_port: 4789 learn_restrict: any source_interface: ["leaf1", "Loopback1"] # VTEP on leaf2 (shared VTEP1 IP 10.0.255.11) - - device: leaf2 + - device: ["leaf2"] source_address: "10.0.255.11" udp_port: 4789 learn_restrict: any source_interface: ["leaf2", "Loopback1"] # VTEP on leaf3 (shared VTEP2 IP 10.0.255.12) - - device: leaf3 + - device: ["leaf3"] source_address: "10.0.255.12" udp_port: 4789 learn_restrict: any source_interface: ["leaf3", "Loopback1"] # VTEP on leaf4 (shared VTEP2 IP 10.0.255.12) - - device: leaf4 + - device: ["leaf4"] source_address: "10.0.255.12" udp_port: 4789 learn_restrict: any source_interface: ["leaf4", "Loopback1"] # VTEP on leaf5 (shared VTEP3 IP 10.0.255.13) - - device: leaf5 + - device: ["leaf5"] source_address: "10.0.255.13" udp_port: 4789 learn_restrict: any source_interface: ["leaf5", "Loopback1"] # VTEP on leaf6 (shared VTEP3 IP 10.0.255.13) - - device: leaf6 + - device: ["leaf6"] source_address: "10.0.255.13" udp_port: 4789 learn_restrict: any source_interface: ["leaf6", "Loopback1"] # VTEP on leaf7 (shared VTEP4 IP 10.0.255.14) - - device: leaf7 + - device: ["leaf7"] source_address: "10.0.255.14" udp_port: 4789 learn_restrict: any source_interface: ["leaf7", "Loopback1"] # VTEP on leaf8 (shared VTEP4 IP 10.0.255.14) - - device: leaf8 + - device: ["leaf8"] source_address: "10.0.255.14" udp_port: 4789 learn_restrict: any @@ -116,21 +116,21 @@ spec: kind: InfraVlanVniMapping data: # VLAN 40 <-> VNI 110040 on leaf1/2/5/6 (L2 VXLAN leafs) - - vtep: leaf1 - vlan: "40" - vni: "110040" + - vtep: ["leaf1"] + vlan: ["40"] + vni: ["110040"] description: "VLAN 40 <-> VNI 110040" - - vtep: leaf2 - vlan: "40" - vni: "110040" + - vtep: ["leaf2"] + vlan: ["40"] + vni: ["110040"] description: "VLAN 40 <-> VNI 110040" - - vtep: leaf5 - vlan: "40" - vni: "110040" + - vtep: ["leaf5"] + vlan: ["40"] + vni: ["110040"] description: "VLAN 40 <-> VNI 110040" - - vtep: leaf6 - vlan: "40" - vni: "110040" + - vtep: ["leaf6"] + vlan: ["40"] + vni: ["110040"] description: "VLAN 40 <-> VNI 110040" --- apiVersion: infrahub.app/v1 @@ -140,27 +140,27 @@ spec: data: # EVPN instance for VLAN 40 on L2 VXLAN leafs # leaf1: rd 65001:110040, rt both 40:110040 - - device: leaf1 - vlan: "40" + - device: ["leaf1"] + vlan: ["40"] route_distinguisher: "65001:110040" route_target_import: "40:110040" route_target_export: "40:110040" redistribute_learned: true - - device: leaf2 - vlan: "40" + - device: ["leaf2"] + vlan: ["40"] route_distinguisher: "65001:110040" route_target_import: "40:110040" route_target_export: "40:110040" redistribute_learned: true # leaf5/6: rd 65003:110040, rt both 40:110040 - - device: leaf5 - vlan: "40" + - device: ["leaf5"] + vlan: ["40"] route_distinguisher: "65003:110040" route_target_import: "40:110040" route_target_export: "40:110040" redistribute_learned: true - - device: leaf6 - vlan: "40" + - device: ["leaf6"] + vlan: ["40"] route_distinguisher: "65003:110040" route_target_import: "40:110040" route_target_export: "40:110040" diff --git a/objects/07-bgp.yml b/objects/07-bgp.yml index 4564f9b..9e9d215 100644 --- a/objects/07-bgp.yml +++ b/objects/07-bgp.yml @@ -13,9 +13,9 @@ spec: # ============================================================ # Spine1 BGP — AS 65000, router-id 10.0.250.1 # ============================================================ - - device: spine1 + - device: ["spine1"] router_id: "10.0.250.1" - local_asn: "65000" + local_asn: ["65000"] default_ipv4_unicast: false log_neighbor_changes: true ecmp_max_paths: 4 @@ -26,9 +26,9 @@ spec: # ============================================================ # Spine2 BGP — AS 65000, router-id 10.0.250.2 # ============================================================ - - device: spine2 + - device: ["spine2"] router_id: "10.0.250.2" - local_asn: "65000" + local_asn: ["65000"] default_ipv4_unicast: false log_neighbor_changes: true ecmp_max_paths: 4 @@ -39,9 +39,9 @@ spec: # ============================================================ # Leaf1 BGP — AS 65001, router-id 10.0.250.11 # ============================================================ - - device: leaf1 + - device: ["leaf1"] router_id: "10.0.250.11" - local_asn: "65001" + local_asn: ["65001"] default_ipv4_unicast: false log_neighbor_changes: true ecmp_max_paths: 4 @@ -52,9 +52,9 @@ spec: # ============================================================ # Leaf2 BGP — AS 65001, router-id 10.0.250.12 # ============================================================ - - device: leaf2 + - device: ["leaf2"] router_id: "10.0.250.12" - local_asn: "65001" + local_asn: ["65001"] default_ipv4_unicast: false log_neighbor_changes: true ecmp_max_paths: 4 @@ -65,9 +65,9 @@ spec: # ============================================================ # Leaf3 BGP — AS 65002, router-id 10.0.250.13 # ============================================================ - - device: leaf3 + - device: ["leaf3"] router_id: "10.0.250.13" - local_asn: "65002" + local_asn: ["65002"] default_ipv4_unicast: false log_neighbor_changes: true ecmp_max_paths: 4 @@ -78,9 +78,9 @@ spec: # ============================================================ # Leaf4 BGP — AS 65002, router-id 10.0.250.14 # ============================================================ - - device: leaf4 + - device: ["leaf4"] router_id: "10.0.250.14" - local_asn: "65002" + local_asn: ["65002"] default_ipv4_unicast: false log_neighbor_changes: true ecmp_max_paths: 4 @@ -91,9 +91,9 @@ spec: # ============================================================ # Leaf5 BGP — AS 65003, router-id 10.0.250.15 # ============================================================ - - device: leaf5 + - device: ["leaf5"] router_id: "10.0.250.15" - local_asn: "65003" + local_asn: ["65003"] default_ipv4_unicast: false log_neighbor_changes: true ecmp_max_paths: 4 @@ -104,9 +104,9 @@ spec: # ============================================================ # Leaf6 BGP — AS 65003, router-id 10.0.250.16 # ============================================================ - - device: leaf6 + - device: ["leaf6"] router_id: "10.0.250.16" - local_asn: "65003" + local_asn: ["65003"] default_ipv4_unicast: false log_neighbor_changes: true ecmp_max_paths: 4 @@ -117,9 +117,9 @@ spec: # ============================================================ # Leaf7 BGP — AS 65004, router-id 10.0.250.17 # ============================================================ - - device: leaf7 + - device: ["leaf7"] router_id: "10.0.250.17" - local_asn: "65004" + local_asn: ["65004"] default_ipv4_unicast: false log_neighbor_changes: true ecmp_max_paths: 4 @@ -130,9 +130,9 @@ spec: # ============================================================ # Leaf8 BGP — AS 65004, router-id 10.0.250.18 # ============================================================ - - device: leaf8 + - device: ["leaf8"] router_id: "10.0.250.18" - local_asn: "65004" + local_asn: ["65004"] default_ipv4_unicast: false log_neighbor_changes: true ecmp_max_paths: 4 @@ -150,7 +150,7 @@ spec: # Spine peer-groups (evpn only — underlay neighbors are direct) # ============================================================ # Spine1 — evpn peer-group - - bgp_config: spine1 + - bgp_config: ["spine1"] name: evpn description: EVPN overlay to leaf loopbacks peer_group_type: evpn @@ -161,7 +161,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true # Spine2 — evpn peer-group - - bgp_config: spine2 + - bgp_config: ["spine2"] name: evpn description: EVPN overlay to leaf loopbacks peer_group_type: evpn @@ -175,208 +175,208 @@ spec: # Leaf peer-groups (underlay, underlay_ibgp, evpn) # ============================================================ # Leaf1 - - bgp_config: leaf1 + - bgp_config: ["leaf1"] name: underlay description: Underlay eBGP to spines peer_group_type: underlay - remote_asn: "65000" + remote_asn: ["65000"] maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf1 + - bgp_config: ["leaf1"] name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp - remote_asn: "65001" + remote_asn: ["65001"] next_hop_self: true maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf1 + - bgp_config: ["leaf1"] name: evpn description: EVPN overlay to spines peer_group_type: evpn - remote_asn: "65000" + remote_asn: ["65000"] update_source: Loopback0 ebgp_multihop: 3 send_community: extended maximum_routes: 12000 maximum_routes_warning_only: true # Leaf2 - - bgp_config: leaf2 + - bgp_config: ["leaf2"] name: underlay description: Underlay eBGP to spines peer_group_type: underlay - remote_asn: "65000" + remote_asn: ["65000"] maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf2 + - bgp_config: ["leaf2"] name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp - remote_asn: "65001" + remote_asn: ["65001"] next_hop_self: true maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf2 + - bgp_config: ["leaf2"] name: evpn description: EVPN overlay to spines peer_group_type: evpn - remote_asn: "65000" + remote_asn: ["65000"] update_source: Loopback0 ebgp_multihop: 3 send_community: extended maximum_routes: 12000 maximum_routes_warning_only: true # Leaf3 - - bgp_config: leaf3 + - bgp_config: ["leaf3"] name: underlay description: Underlay eBGP to spines peer_group_type: underlay - remote_asn: "65000" + remote_asn: ["65000"] maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf3 + - bgp_config: ["leaf3"] name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp - remote_asn: "65002" + remote_asn: ["65002"] next_hop_self: true maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf3 + - bgp_config: ["leaf3"] name: evpn description: EVPN overlay to spines peer_group_type: evpn - remote_asn: "65000" + remote_asn: ["65000"] update_source: Loopback0 ebgp_multihop: 3 send_community: extended maximum_routes: 12000 maximum_routes_warning_only: true # Leaf4 - - bgp_config: leaf4 + - bgp_config: ["leaf4"] name: underlay description: Underlay eBGP to spines peer_group_type: underlay - remote_asn: "65000" + remote_asn: ["65000"] maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf4 + - bgp_config: ["leaf4"] name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp - remote_asn: "65002" + remote_asn: ["65002"] next_hop_self: true maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf4 + - bgp_config: ["leaf4"] name: evpn description: EVPN overlay to spines peer_group_type: evpn - remote_asn: "65000" + remote_asn: ["65000"] update_source: Loopback0 ebgp_multihop: 3 send_community: extended maximum_routes: 12000 maximum_routes_warning_only: true # Leaf5 - - bgp_config: leaf5 + - bgp_config: ["leaf5"] name: underlay description: Underlay eBGP to spines peer_group_type: underlay - remote_asn: "65000" + remote_asn: ["65000"] maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf5 + - bgp_config: ["leaf5"] name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp - remote_asn: "65003" + remote_asn: ["65003"] next_hop_self: true maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf5 + - bgp_config: ["leaf5"] name: evpn description: EVPN overlay to spines peer_group_type: evpn - remote_asn: "65000" + remote_asn: ["65000"] update_source: Loopback0 ebgp_multihop: 3 send_community: extended maximum_routes: 12000 maximum_routes_warning_only: true # Leaf6 - - bgp_config: leaf6 + - bgp_config: ["leaf6"] name: underlay description: Underlay eBGP to spines peer_group_type: underlay - remote_asn: "65000" + remote_asn: ["65000"] maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf6 + - bgp_config: ["leaf6"] name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp - remote_asn: "65003" + remote_asn: ["65003"] next_hop_self: true maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf6 + - bgp_config: ["leaf6"] name: evpn description: EVPN overlay to spines peer_group_type: evpn - remote_asn: "65000" + remote_asn: ["65000"] update_source: Loopback0 ebgp_multihop: 3 send_community: extended maximum_routes: 12000 maximum_routes_warning_only: true # Leaf7 - - bgp_config: leaf7 + - bgp_config: ["leaf7"] name: underlay description: Underlay eBGP to spines peer_group_type: underlay - remote_asn: "65000" + remote_asn: ["65000"] maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf7 + - bgp_config: ["leaf7"] name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp - remote_asn: "65004" + remote_asn: ["65004"] next_hop_self: true maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf7 + - bgp_config: ["leaf7"] name: evpn description: EVPN overlay to spines peer_group_type: evpn - remote_asn: "65000" + remote_asn: ["65000"] update_source: Loopback0 ebgp_multihop: 3 send_community: extended maximum_routes: 12000 maximum_routes_warning_only: true # Leaf8 - - bgp_config: leaf8 + - bgp_config: ["leaf8"] name: underlay description: Underlay eBGP to spines peer_group_type: underlay - remote_asn: "65000" + remote_asn: ["65000"] maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf8 + - bgp_config: ["leaf8"] name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp - remote_asn: "65004" + remote_asn: ["65004"] next_hop_self: true maximum_routes: 12000 maximum_routes_warning_only: true - - bgp_config: leaf8 + - bgp_config: ["leaf8"] name: evpn description: EVPN overlay to spines peer_group_type: evpn - remote_asn: "65000" + remote_asn: ["65000"] update_source: Loopback0 ebgp_multihop: 3 send_community: extended @@ -392,412 +392,412 @@ spec: # Spine1 sessions # ============================================================ # Spine1 underlay (direct neighbors, no peer-group — use remote_asn) - - bgp_config: spine1 + - bgp_config: ["spine1"] peer_address: "10.0.1.1" description: "underlay to leaf1" - remote_asn: "65001" - peer_device: leaf1 - - bgp_config: spine1 + remote_asn: ["65001"] + peer_device: ["leaf1"] + - bgp_config: ["spine1"] peer_address: "10.0.1.3" description: "underlay to leaf2" - remote_asn: "65001" - peer_device: leaf2 - - bgp_config: spine1 + remote_asn: ["65001"] + peer_device: ["leaf2"] + - bgp_config: ["spine1"] peer_address: "10.0.1.5" description: "underlay to leaf3" - remote_asn: "65002" - peer_device: leaf3 - - bgp_config: spine1 + remote_asn: ["65002"] + peer_device: ["leaf3"] + - bgp_config: ["spine1"] peer_address: "10.0.1.7" description: "underlay to leaf4" - remote_asn: "65002" - peer_device: leaf4 - - bgp_config: spine1 + remote_asn: ["65002"] + peer_device: ["leaf4"] + - bgp_config: ["spine1"] peer_address: "10.0.1.9" description: "underlay to leaf5" - remote_asn: "65003" - peer_device: leaf5 - - bgp_config: spine1 + remote_asn: ["65003"] + peer_device: ["leaf5"] + - bgp_config: ["spine1"] peer_address: "10.0.1.11" description: "underlay to leaf6" - remote_asn: "65003" - peer_device: leaf6 - - bgp_config: spine1 + remote_asn: ["65003"] + peer_device: ["leaf6"] + - bgp_config: ["spine1"] peer_address: "10.0.1.13" description: "underlay to leaf7" - remote_asn: "65004" - peer_device: leaf7 - - bgp_config: spine1 + remote_asn: ["65004"] + peer_device: ["leaf7"] + - bgp_config: ["spine1"] peer_address: "10.0.1.15" description: "underlay to leaf8" - remote_asn: "65004" - peer_device: leaf8 + remote_asn: ["65004"] + peer_device: ["leaf8"] # Spine1 EVPN (via evpn peer-group) - - bgp_config: spine1 + - bgp_config: ["spine1"] peer_address: "10.0.250.11" description: "EVPN to leaf1" peer_group: ["10.0.250.1", "evpn"] - remote_asn: "65001" - peer_device: leaf1 - - bgp_config: spine1 + remote_asn: ["65001"] + peer_device: ["leaf1"] + - bgp_config: ["spine1"] peer_address: "10.0.250.12" description: "EVPN to leaf2" peer_group: ["10.0.250.1", "evpn"] - remote_asn: "65001" - peer_device: leaf2 - - bgp_config: spine1 + remote_asn: ["65001"] + peer_device: ["leaf2"] + - bgp_config: ["spine1"] peer_address: "10.0.250.13" description: "EVPN to leaf3" peer_group: ["10.0.250.1", "evpn"] - remote_asn: "65002" - peer_device: leaf3 - - bgp_config: spine1 + remote_asn: ["65002"] + peer_device: ["leaf3"] + - bgp_config: ["spine1"] peer_address: "10.0.250.14" description: "EVPN to leaf4" peer_group: ["10.0.250.1", "evpn"] - remote_asn: "65002" - peer_device: leaf4 - - bgp_config: spine1 + remote_asn: ["65002"] + peer_device: ["leaf4"] + - bgp_config: ["spine1"] peer_address: "10.0.250.15" description: "EVPN to leaf5" peer_group: ["10.0.250.1", "evpn"] - remote_asn: "65003" - peer_device: leaf5 - - bgp_config: spine1 + remote_asn: ["65003"] + peer_device: ["leaf5"] + - bgp_config: ["spine1"] peer_address: "10.0.250.16" description: "EVPN to leaf6" peer_group: ["10.0.250.1", "evpn"] - remote_asn: "65003" - peer_device: leaf6 - - bgp_config: spine1 + remote_asn: ["65003"] + peer_device: ["leaf6"] + - bgp_config: ["spine1"] peer_address: "10.0.250.17" description: "EVPN to leaf7" peer_group: ["10.0.250.1", "evpn"] - remote_asn: "65004" - peer_device: leaf7 - - bgp_config: spine1 + remote_asn: ["65004"] + peer_device: ["leaf7"] + - bgp_config: ["spine1"] peer_address: "10.0.250.18" description: "EVPN to leaf8" peer_group: ["10.0.250.1", "evpn"] - remote_asn: "65004" - peer_device: leaf8 + remote_asn: ["65004"] + peer_device: ["leaf8"] # ============================================================ # Spine2 sessions # ============================================================ # Spine2 underlay - - bgp_config: spine2 + - bgp_config: ["spine2"] peer_address: "10.0.2.1" description: "underlay to leaf1" - remote_asn: "65001" - peer_device: leaf1 - - bgp_config: spine2 + remote_asn: ["65001"] + peer_device: ["leaf1"] + - bgp_config: ["spine2"] peer_address: "10.0.2.3" description: "underlay to leaf2" - remote_asn: "65001" - peer_device: leaf2 - - bgp_config: spine2 + remote_asn: ["65001"] + peer_device: ["leaf2"] + - bgp_config: ["spine2"] peer_address: "10.0.2.5" description: "underlay to leaf3" - remote_asn: "65002" - peer_device: leaf3 - - bgp_config: spine2 + remote_asn: ["65002"] + peer_device: ["leaf3"] + - bgp_config: ["spine2"] peer_address: "10.0.2.7" description: "underlay to leaf4" - remote_asn: "65002" - peer_device: leaf4 - - bgp_config: spine2 + remote_asn: ["65002"] + peer_device: ["leaf4"] + - bgp_config: ["spine2"] peer_address: "10.0.2.9" description: "underlay to leaf5" - remote_asn: "65003" - peer_device: leaf5 - - bgp_config: spine2 + remote_asn: ["65003"] + peer_device: ["leaf5"] + - bgp_config: ["spine2"] peer_address: "10.0.2.11" description: "underlay to leaf6" - remote_asn: "65003" - peer_device: leaf6 - - bgp_config: spine2 + remote_asn: ["65003"] + peer_device: ["leaf6"] + - bgp_config: ["spine2"] peer_address: "10.0.2.13" description: "underlay to leaf7" - remote_asn: "65004" - peer_device: leaf7 - - bgp_config: spine2 + remote_asn: ["65004"] + peer_device: ["leaf7"] + - bgp_config: ["spine2"] peer_address: "10.0.2.15" description: "underlay to leaf8" - remote_asn: "65004" - peer_device: leaf8 + remote_asn: ["65004"] + peer_device: ["leaf8"] # Spine2 EVPN - - bgp_config: spine2 + - bgp_config: ["spine2"] peer_address: "10.0.250.11" description: "EVPN to leaf1" peer_group: ["10.0.250.2", "evpn"] - remote_asn: "65001" - peer_device: leaf1 - - bgp_config: spine2 + remote_asn: ["65001"] + peer_device: ["leaf1"] + - bgp_config: ["spine2"] peer_address: "10.0.250.12" description: "EVPN to leaf2" peer_group: ["10.0.250.2", "evpn"] - remote_asn: "65001" - peer_device: leaf2 - - bgp_config: spine2 + remote_asn: ["65001"] + peer_device: ["leaf2"] + - bgp_config: ["spine2"] peer_address: "10.0.250.13" description: "EVPN to leaf3" peer_group: ["10.0.250.2", "evpn"] - remote_asn: "65002" - peer_device: leaf3 - - bgp_config: spine2 + remote_asn: ["65002"] + peer_device: ["leaf3"] + - bgp_config: ["spine2"] peer_address: "10.0.250.14" description: "EVPN to leaf4" peer_group: ["10.0.250.2", "evpn"] - remote_asn: "65002" - peer_device: leaf4 - - bgp_config: spine2 + remote_asn: ["65002"] + peer_device: ["leaf4"] + - bgp_config: ["spine2"] peer_address: "10.0.250.15" description: "EVPN to leaf5" peer_group: ["10.0.250.2", "evpn"] - remote_asn: "65003" - peer_device: leaf5 - - bgp_config: spine2 + remote_asn: ["65003"] + peer_device: ["leaf5"] + - bgp_config: ["spine2"] peer_address: "10.0.250.16" description: "EVPN to leaf6" peer_group: ["10.0.250.2", "evpn"] - remote_asn: "65003" - peer_device: leaf6 - - bgp_config: spine2 + remote_asn: ["65003"] + peer_device: ["leaf6"] + - bgp_config: ["spine2"] peer_address: "10.0.250.17" description: "EVPN to leaf7" peer_group: ["10.0.250.2", "evpn"] - remote_asn: "65004" - peer_device: leaf7 - - bgp_config: spine2 + remote_asn: ["65004"] + peer_device: ["leaf7"] + - bgp_config: ["spine2"] peer_address: "10.0.250.18" description: "EVPN to leaf8" peer_group: ["10.0.250.2", "evpn"] - remote_asn: "65004" - peer_device: leaf8 + remote_asn: ["65004"] + peer_device: ["leaf8"] # ============================================================ # Leaf1 sessions # ============================================================ - - bgp_config: leaf1 + - bgp_config: ["leaf1"] peer_address: "10.0.1.0" description: "underlay to spine1" peer_group: ["10.0.250.11", "underlay"] - peer_device: spine1 - - bgp_config: leaf1 + peer_device: ["spine1"] + - bgp_config: ["leaf1"] peer_address: "10.0.2.0" description: "underlay to spine2" peer_group: ["10.0.250.11", "underlay"] - peer_device: spine2 - - bgp_config: leaf1 + peer_device: ["spine2"] + - bgp_config: ["leaf1"] peer_address: "10.0.3.1" description: "iBGP to leaf2" peer_group: ["10.0.250.11", "underlay_ibgp"] - peer_device: leaf2 - - bgp_config: leaf1 + peer_device: ["leaf2"] + - bgp_config: ["leaf1"] peer_address: "10.0.250.1" description: "EVPN to spine1" peer_group: ["10.0.250.11", "evpn"] - peer_device: spine1 - - bgp_config: leaf1 + peer_device: ["spine1"] + - bgp_config: ["leaf1"] peer_address: "10.0.250.2" description: "EVPN to spine2" peer_group: ["10.0.250.11", "evpn"] - peer_device: spine2 + peer_device: ["spine2"] # ============================================================ # Leaf2 sessions # ============================================================ - - bgp_config: leaf2 + - bgp_config: ["leaf2"] peer_address: "10.0.1.2" description: "underlay to spine1" peer_group: ["10.0.250.12", "underlay"] - peer_device: spine1 - - bgp_config: leaf2 + peer_device: ["spine1"] + - bgp_config: ["leaf2"] peer_address: "10.0.2.2" description: "underlay to spine2" peer_group: ["10.0.250.12", "underlay"] - peer_device: spine2 - - bgp_config: leaf2 + peer_device: ["spine2"] + - bgp_config: ["leaf2"] peer_address: "10.0.3.0" description: "iBGP to leaf1" peer_group: ["10.0.250.12", "underlay_ibgp"] - peer_device: leaf1 - - bgp_config: leaf2 + peer_device: ["leaf1"] + - bgp_config: ["leaf2"] peer_address: "10.0.250.1" description: "EVPN to spine1" peer_group: ["10.0.250.12", "evpn"] - peer_device: spine1 - - bgp_config: leaf2 + peer_device: ["spine1"] + - bgp_config: ["leaf2"] peer_address: "10.0.250.2" description: "EVPN to spine2" peer_group: ["10.0.250.12", "evpn"] - peer_device: spine2 + peer_device: ["spine2"] # ============================================================ # Leaf3 sessions # ============================================================ - - bgp_config: leaf3 + - bgp_config: ["leaf3"] peer_address: "10.0.1.4" description: "underlay to spine1" peer_group: ["10.0.250.13", "underlay"] - peer_device: spine1 - - bgp_config: leaf3 + peer_device: ["spine1"] + - bgp_config: ["leaf3"] peer_address: "10.0.2.4" description: "underlay to spine2" peer_group: ["10.0.250.13", "underlay"] - peer_device: spine2 - - bgp_config: leaf3 + peer_device: ["spine2"] + - bgp_config: ["leaf3"] peer_address: "10.0.3.3" description: "iBGP to leaf4" peer_group: ["10.0.250.13", "underlay_ibgp"] - peer_device: leaf4 - - bgp_config: leaf3 + peer_device: ["leaf4"] + - bgp_config: ["leaf3"] peer_address: "10.0.250.1" description: "EVPN to spine1" peer_group: ["10.0.250.13", "evpn"] - peer_device: spine1 - - bgp_config: leaf3 + peer_device: ["spine1"] + - bgp_config: ["leaf3"] peer_address: "10.0.250.2" description: "EVPN to spine2" peer_group: ["10.0.250.13", "evpn"] - peer_device: spine2 + peer_device: ["spine2"] # ============================================================ # Leaf4 sessions # ============================================================ - - bgp_config: leaf4 + - bgp_config: ["leaf4"] peer_address: "10.0.1.6" description: "underlay to spine1" peer_group: ["10.0.250.14", "underlay"] - peer_device: spine1 - - bgp_config: leaf4 + peer_device: ["spine1"] + - bgp_config: ["leaf4"] peer_address: "10.0.2.6" description: "underlay to spine2" peer_group: ["10.0.250.14", "underlay"] - peer_device: spine2 - - bgp_config: leaf4 + peer_device: ["spine2"] + - bgp_config: ["leaf4"] peer_address: "10.0.3.2" description: "iBGP to leaf3" peer_group: ["10.0.250.14", "underlay_ibgp"] - peer_device: leaf3 - - bgp_config: leaf4 + peer_device: ["leaf3"] + - bgp_config: ["leaf4"] peer_address: "10.0.250.1" description: "EVPN to spine1" peer_group: ["10.0.250.14", "evpn"] - peer_device: spine1 - - bgp_config: leaf4 + peer_device: ["spine1"] + - bgp_config: ["leaf4"] peer_address: "10.0.250.2" description: "EVPN to spine2" peer_group: ["10.0.250.14", "evpn"] - peer_device: spine2 + peer_device: ["spine2"] # ============================================================ # Leaf5 sessions # ============================================================ - - bgp_config: leaf5 + - bgp_config: ["leaf5"] peer_address: "10.0.1.8" description: "underlay to spine1" peer_group: ["10.0.250.15", "underlay"] - peer_device: spine1 - - bgp_config: leaf5 + peer_device: ["spine1"] + - bgp_config: ["leaf5"] peer_address: "10.0.2.8" description: "underlay to spine2" peer_group: ["10.0.250.15", "underlay"] - peer_device: spine2 - - bgp_config: leaf5 + peer_device: ["spine2"] + - bgp_config: ["leaf5"] peer_address: "10.0.3.5" description: "iBGP to leaf6" peer_group: ["10.0.250.15", "underlay_ibgp"] - peer_device: leaf6 - - bgp_config: leaf5 + peer_device: ["leaf6"] + - bgp_config: ["leaf5"] peer_address: "10.0.250.1" description: "EVPN to spine1" peer_group: ["10.0.250.15", "evpn"] - peer_device: spine1 - - bgp_config: leaf5 + peer_device: ["spine1"] + - bgp_config: ["leaf5"] peer_address: "10.0.250.2" description: "EVPN to spine2" peer_group: ["10.0.250.15", "evpn"] - peer_device: spine2 + peer_device: ["spine2"] # ============================================================ # Leaf6 sessions # ============================================================ - - bgp_config: leaf6 + - bgp_config: ["leaf6"] peer_address: "10.0.1.10" description: "underlay to spine1" peer_group: ["10.0.250.16", "underlay"] - peer_device: spine1 - - bgp_config: leaf6 + peer_device: ["spine1"] + - bgp_config: ["leaf6"] peer_address: "10.0.2.10" description: "underlay to spine2" peer_group: ["10.0.250.16", "underlay"] - peer_device: spine2 - - bgp_config: leaf6 + peer_device: ["spine2"] + - bgp_config: ["leaf6"] peer_address: "10.0.3.4" description: "iBGP to leaf5" peer_group: ["10.0.250.16", "underlay_ibgp"] - peer_device: leaf5 - - bgp_config: leaf6 + peer_device: ["leaf5"] + - bgp_config: ["leaf6"] peer_address: "10.0.250.1" description: "EVPN to spine1" peer_group: ["10.0.250.16", "evpn"] - peer_device: spine1 - - bgp_config: leaf6 + peer_device: ["spine1"] + - bgp_config: ["leaf6"] peer_address: "10.0.250.2" description: "EVPN to spine2" peer_group: ["10.0.250.16", "evpn"] - peer_device: spine2 + peer_device: ["spine2"] # ============================================================ # Leaf7 sessions # ============================================================ - - bgp_config: leaf7 + - bgp_config: ["leaf7"] peer_address: "10.0.1.12" description: "underlay to spine1" peer_group: ["10.0.250.17", "underlay"] - peer_device: spine1 - - bgp_config: leaf7 + peer_device: ["spine1"] + - bgp_config: ["leaf7"] peer_address: "10.0.2.12" description: "underlay to spine2" peer_group: ["10.0.250.17", "underlay"] - peer_device: spine2 - - bgp_config: leaf7 + peer_device: ["spine2"] + - bgp_config: ["leaf7"] peer_address: "10.0.3.7" description: "iBGP to leaf8" peer_group: ["10.0.250.17", "underlay_ibgp"] - peer_device: leaf8 - - bgp_config: leaf7 + peer_device: ["leaf8"] + - bgp_config: ["leaf7"] peer_address: "10.0.250.1" description: "EVPN to spine1" peer_group: ["10.0.250.17", "evpn"] - peer_device: spine1 - - bgp_config: leaf7 + peer_device: ["spine1"] + - bgp_config: ["leaf7"] peer_address: "10.0.250.2" description: "EVPN to spine2" peer_group: ["10.0.250.17", "evpn"] - peer_device: spine2 + peer_device: ["spine2"] # ============================================================ # Leaf8 sessions # ============================================================ - - bgp_config: leaf8 + - bgp_config: ["leaf8"] peer_address: "10.0.1.14" description: "underlay to spine1" peer_group: ["10.0.250.18", "underlay"] - peer_device: spine1 - - bgp_config: leaf8 + peer_device: ["spine1"] + - bgp_config: ["leaf8"] peer_address: "10.0.2.14" description: "underlay to spine2" peer_group: ["10.0.250.18", "underlay"] - peer_device: spine2 - - bgp_config: leaf8 + peer_device: ["spine2"] + - bgp_config: ["leaf8"] peer_address: "10.0.3.6" description: "iBGP to leaf7" peer_group: ["10.0.250.18", "underlay_ibgp"] - peer_device: leaf7 - - bgp_config: leaf8 + peer_device: ["leaf7"] + - bgp_config: ["leaf8"] peer_address: "10.0.250.1" description: "EVPN to spine1" peer_group: ["10.0.250.18", "evpn"] - peer_device: spine1 - - bgp_config: leaf8 + peer_device: ["spine1"] + - bgp_config: ["leaf8"] peer_address: "10.0.250.2" description: "EVPN to spine2" peer_group: ["10.0.250.18", "evpn"] - peer_device: spine2 + peer_device: ["spine2"] --- apiVersion: infrahub.app/v1 kind: Object @@ -807,12 +807,12 @@ spec: # ============================================================ # Spine1 address families # ============================================================ - - bgp_config: spine1 + - bgp_config: ["spine1"] afi: ipv4 safi: unicast networks: - - "10.0.250.1/32" - - bgp_config: spine1 + - ["10.0.250.1/32"] + - bgp_config: ["spine1"] afi: evpn safi: unicast active_peer_groups: @@ -820,12 +820,12 @@ spec: # ============================================================ # Spine2 address families # ============================================================ - - bgp_config: spine2 + - bgp_config: ["spine2"] afi: ipv4 safi: unicast networks: - - "10.0.250.2/32" - - bgp_config: spine2 + - ["10.0.250.2/32"] + - bgp_config: ["spine2"] afi: evpn safi: unicast active_peer_groups: @@ -833,16 +833,16 @@ spec: # ============================================================ # Leaf1 address families # ============================================================ - - bgp_config: leaf1 + - bgp_config: ["leaf1"] afi: ipv4 safi: unicast active_peer_groups: - ["10.0.250.11", "underlay"] - ["10.0.250.11", "underlay_ibgp"] networks: - - "10.0.250.11/32" - - "10.0.255.11/32" - - bgp_config: leaf1 + - ["10.0.250.11/32"] + - ["10.0.255.11/32"] + - bgp_config: ["leaf1"] afi: evpn safi: unicast active_peer_groups: @@ -850,16 +850,16 @@ spec: # ============================================================ # Leaf2 address families # ============================================================ - - bgp_config: leaf2 + - bgp_config: ["leaf2"] afi: ipv4 safi: unicast active_peer_groups: - ["10.0.250.12", "underlay"] - ["10.0.250.12", "underlay_ibgp"] networks: - - "10.0.250.12/32" - - "10.0.255.11/32" - - bgp_config: leaf2 + - ["10.0.250.12/32"] + - ["10.0.255.11/32"] + - bgp_config: ["leaf2"] afi: evpn safi: unicast active_peer_groups: @@ -867,16 +867,16 @@ spec: # ============================================================ # Leaf3 address families # ============================================================ - - bgp_config: leaf3 + - bgp_config: ["leaf3"] afi: ipv4 safi: unicast active_peer_groups: - ["10.0.250.13", "underlay"] - ["10.0.250.13", "underlay_ibgp"] networks: - - "10.0.250.13/32" - - "10.0.255.12/32" - - bgp_config: leaf3 + - ["10.0.250.13/32"] + - ["10.0.255.12/32"] + - bgp_config: ["leaf3"] afi: evpn safi: unicast active_peer_groups: @@ -884,16 +884,16 @@ spec: # ============================================================ # Leaf4 address families # ============================================================ - - bgp_config: leaf4 + - bgp_config: ["leaf4"] afi: ipv4 safi: unicast active_peer_groups: - ["10.0.250.14", "underlay"] - ["10.0.250.14", "underlay_ibgp"] networks: - - "10.0.250.14/32" - - "10.0.255.12/32" - - bgp_config: leaf4 + - ["10.0.250.14/32"] + - ["10.0.255.12/32"] + - bgp_config: ["leaf4"] afi: evpn safi: unicast active_peer_groups: @@ -901,16 +901,16 @@ spec: # ============================================================ # Leaf5 address families # ============================================================ - - bgp_config: leaf5 + - bgp_config: ["leaf5"] afi: ipv4 safi: unicast active_peer_groups: - ["10.0.250.15", "underlay"] - ["10.0.250.15", "underlay_ibgp"] networks: - - "10.0.250.15/32" - - "10.0.255.13/32" - - bgp_config: leaf5 + - ["10.0.250.15/32"] + - ["10.0.255.13/32"] + - bgp_config: ["leaf5"] afi: evpn safi: unicast active_peer_groups: @@ -918,16 +918,16 @@ spec: # ============================================================ # Leaf6 address families # ============================================================ - - bgp_config: leaf6 + - bgp_config: ["leaf6"] afi: ipv4 safi: unicast active_peer_groups: - ["10.0.250.16", "underlay"] - ["10.0.250.16", "underlay_ibgp"] networks: - - "10.0.250.16/32" - - "10.0.255.13/32" - - bgp_config: leaf6 + - ["10.0.250.16/32"] + - ["10.0.255.13/32"] + - bgp_config: ["leaf6"] afi: evpn safi: unicast active_peer_groups: @@ -935,16 +935,16 @@ spec: # ============================================================ # Leaf7 address families # ============================================================ - - bgp_config: leaf7 + - bgp_config: ["leaf7"] afi: ipv4 safi: unicast active_peer_groups: - ["10.0.250.17", "underlay"] - ["10.0.250.17", "underlay_ibgp"] networks: - - "10.0.250.17/32" - - "10.0.255.14/32" - - bgp_config: leaf7 + - ["10.0.250.17/32"] + - ["10.0.255.14/32"] + - bgp_config: ["leaf7"] afi: evpn safi: unicast active_peer_groups: @@ -952,16 +952,16 @@ spec: # ============================================================ # Leaf8 address families # ============================================================ - - bgp_config: leaf8 + - bgp_config: ["leaf8"] afi: ipv4 safi: unicast active_peer_groups: - ["10.0.250.18", "underlay"] - ["10.0.250.18", "underlay_ibgp"] networks: - - "10.0.250.18/32" - - "10.0.255.14/32" - - bgp_config: leaf8 + - ["10.0.250.18/32"] + - ["10.0.255.14/32"] + - bgp_config: ["leaf8"] afi: evpn safi: unicast active_peer_groups: diff --git a/objects/08-vrfs.yml b/objects/08-vrfs.yml index fac035d..9f5adb6 100644 --- a/objects/08-vrfs.yml +++ b/objects/08-vrfs.yml @@ -21,42 +21,42 @@ spec: data: - name: gold description: VRF gold - L3 VXLAN with symmetric IRB - l3vni: "100001" + l3vni: ["100001"] import_targets: - - "1:100001" + - ["1:100001"] export_targets: - - "1:100001" + - ["1:100001"] --- apiVersion: infrahub.app/v1 kind: Object spec: kind: InfraVRFDeviceAssignment data: - - device: leaf3 - vrf: gold + - device: ["leaf3"] + vrf: ["gold"] route_distinguisher: "10.0.250.13:1" import_targets: - - "1:100001" + - ["1:100001"] export_targets: - - "1:100001" - - device: leaf4 - vrf: gold + - ["1:100001"] + - device: ["leaf4"] + vrf: ["gold"] route_distinguisher: "10.0.250.14:1" import_targets: - - "1:100001" + - ["1:100001"] export_targets: - - "1:100001" - - device: leaf7 - vrf: gold + - ["1:100001"] + - device: ["leaf7"] + vrf: ["gold"] route_distinguisher: "10.0.250.17:1" import_targets: - - "1:100001" + - ["1:100001"] export_targets: - - "1:100001" - - device: leaf8 - vrf: gold + - ["1:100001"] + - device: ["leaf8"] + vrf: ["gold"] route_distinguisher: "10.0.250.18:1" import_targets: - - "1:100001" + - ["1:100001"] export_targets: - - "1:100001" + - ["1:100001"] diff --git a/objects/09-mlag.yml b/objects/09-mlag.yml index d2e4809..29b8e56 100644 --- a/objects/09-mlag.yml +++ b/objects/09-mlag.yml @@ -19,10 +19,10 @@ spec: dual_primary_delay: 10 dual_primary_action: errdisable devices: - - leaf1 - - leaf2 - peer_vlan: "4090" - ibgp_vlan: "4091" + - ["leaf1"] + - ["leaf2"] + peer_vlan: ["4090"] + ibgp_vlan: ["4091"] # MLAG pair 2: leaf3 + leaf4 - domain_id: leafs-3-4 description: MLAG domain for leaf3/leaf4 pair @@ -32,10 +32,10 @@ spec: dual_primary_delay: 10 dual_primary_action: errdisable devices: - - leaf3 - - leaf4 - peer_vlan: "4090" - ibgp_vlan: "4091" + - ["leaf3"] + - ["leaf4"] + peer_vlan: ["4090"] + ibgp_vlan: ["4091"] # MLAG pair 3: leaf5 + leaf6 - domain_id: leafs-5-6 description: MLAG domain for leaf5/leaf6 pair @@ -45,10 +45,10 @@ spec: dual_primary_delay: 10 dual_primary_action: errdisable devices: - - leaf5 - - leaf6 - peer_vlan: "4090" - ibgp_vlan: "4091" + - ["leaf5"] + - ["leaf6"] + peer_vlan: ["4090"] + ibgp_vlan: ["4091"] # MLAG pair 4: leaf7 + leaf8 - domain_id: leafs-7-8 description: MLAG domain for leaf7/leaf8 pair @@ -58,10 +58,10 @@ spec: dual_primary_delay: 10 dual_primary_action: errdisable devices: - - leaf7 - - leaf8 - peer_vlan: "4090" - ibgp_vlan: "4091" + - ["leaf7"] + - ["leaf8"] + peer_vlan: ["4090"] + ibgp_vlan: ["4091"] --- apiVersion: infrahub.app/v1 kind: Object @@ -69,64 +69,64 @@ spec: kind: InfraMlagPeerConfig data: # Leaf1 MLAG peer config - - device: leaf1 - mlag_domain: leafs-1-2 + - device: ["leaf1"] + mlag_domain: ["leafs-1-2"] local_interface_ip: "10.0.199.254/31" peer_address: "10.0.199.255" heartbeat_peer_ip: "172.16.0.50" local_interface: ["leaf1", "Vlan4090"] peer_link: ["leaf1", "Port-Channel999"] # Leaf2 MLAG peer config - - device: leaf2 - mlag_domain: leafs-1-2 + - device: ["leaf2"] + mlag_domain: ["leafs-1-2"] local_interface_ip: "10.0.199.255/31" peer_address: "10.0.199.254" heartbeat_peer_ip: "172.16.0.25" local_interface: ["leaf2", "Vlan4090"] peer_link: ["leaf2", "Port-Channel999"] # Leaf3 MLAG peer config - - device: leaf3 - mlag_domain: leafs-3-4 + - device: ["leaf3"] + mlag_domain: ["leafs-3-4"] local_interface_ip: "10.0.199.252/31" peer_address: "10.0.199.253" heartbeat_peer_ip: "172.16.0.28" local_interface: ["leaf3", "Vlan4090"] peer_link: ["leaf3", "Port-Channel999"] # Leaf4 MLAG peer config - - device: leaf4 - mlag_domain: leafs-3-4 + - device: ["leaf4"] + mlag_domain: ["leafs-3-4"] local_interface_ip: "10.0.199.253/31" peer_address: "10.0.199.252" heartbeat_peer_ip: "172.16.0.27" local_interface: ["leaf4", "Vlan4090"] peer_link: ["leaf4", "Port-Channel999"] # Leaf5 MLAG peer config - - device: leaf5 - mlag_domain: leafs-5-6 + - device: ["leaf5"] + mlag_domain: ["leafs-5-6"] local_interface_ip: "10.0.199.250/31" peer_address: "10.0.199.251" heartbeat_peer_ip: "172.16.0.30" local_interface: ["leaf5", "Vlan4090"] peer_link: ["leaf5", "Port-Channel999"] # Leaf6 MLAG peer config - - device: leaf6 - mlag_domain: leafs-5-6 + - device: ["leaf6"] + mlag_domain: ["leafs-5-6"] local_interface_ip: "10.0.199.251/31" peer_address: "10.0.199.250" heartbeat_peer_ip: "172.16.0.29" local_interface: ["leaf6", "Vlan4090"] peer_link: ["leaf6", "Port-Channel999"] # Leaf7 MLAG peer config - - device: leaf7 - mlag_domain: leafs-7-8 + - device: ["leaf7"] + mlag_domain: ["leafs-7-8"] local_interface_ip: "10.0.199.248/31" peer_address: "10.0.199.249" heartbeat_peer_ip: "172.16.0.32" local_interface: ["leaf7", "Vlan4090"] peer_link: ["leaf7", "Port-Channel999"] # Leaf8 MLAG peer config - - device: leaf8 - mlag_domain: leafs-7-8 + - device: ["leaf8"] + mlag_domain: ["leafs-7-8"] local_interface_ip: "10.0.199.249/31" peer_address: "10.0.199.248" heartbeat_peer_ip: "172.16.0.31"