Templates and Roles used to generate configuration

All configurations are generated using Jinja2 templates and variables. To simplificy the management of these templates and make them reusable in other projects, these templates have been pacakges into several roles, each one is generating a part of the final configuration.

All roles are located under the directory [roles](roles) and are organized as follow

├ underlay-ebgp           # Name of the role
  ├── README.md           # Documentation and Instructions to reuse
  ├── meta
  │   └── main.yaml       # Indicate author of the project and dependancies
  ├── defaults
  │   └── main.yaml       # Default variables, can be overwritten for each device
  ├── tasks
  │   └── main.yaml       # Action to execute when calling this Roles
  └── templates
      └── main.conf.j2    # Jinja2 Templates, in most cases, used to generate configuration

Below the list of roles available, classified per function, with a short description and a link to their respective documentation.

Roles to create the underlay configuration

There are 3 different roles to create an underlay network, only one is needed and all devices must have the same.

Role Description
underlay-ebgp Create an Underlay with eBGP with p2p /31 network and 1 ASN per device
underlay-ospf Create an Underlay with OSPF with p2p /31 network and 1 Area
underlay-ospf-unnumbered Create an Underlay with OSPF with p2p unnumbered interface and 1 Area

Roles to create the overlay configuration (EVPN)

These roles are complementary and are designed to work together. Each one is specific to a role in the architecture and is specific to device capabilities:

Role Description
overlay-evpn-qfx-l3 Create iBGP & EVPN configuration for QFX devices that support both L2 & L3 VTEP (QFX10000 today)
overlay-evpn-qfx-l2 Create iBGP & EVPN configuration for QFX devices that only support L2 VTEP (QFX5100/QFX5200)
overlay-evpn-mx-l3 Create iBGP & EVPN configuration for MX devices that only support L2 & L3 VTEP (MX)
overlay-evpn-access Create access ports configuration to maps existing resources into the overlay (Trunk/LAG/ESI/Vlan mapping)

Roles to generate variables (IPs, vlan)

Role Description
generate-tenant-vni Generate variables files to scale Tenant and VNI
generate-p2p-ips Generate network and ip addresses for P2P links
generate-underlay-bgp Generate ebgp underlay input variables

Other Roles

Role Description
common Generate base configuration
build-config Assemble all configuration snippet from other roles