Giter VIP home page Giter VIP logo

terraform-nxos-evpn-ospf-underlay's Introduction

Tests

Terraform NX-OS EVPN OSPF Underlay Module

This module can manage a Nexus 9000 EVPN fabric underlay network based on OSPF.

The following assumptions have been made:

  • IP unnumbered is used on all fabric links
  • OSPF area 0 is used for all interfaces
  • PIM sparse mode is enabled on all interfaces
  • A system MTU of 9216 is configured on all devices
  • All spines act as a PIM Anycast RP
  • Each leaf is connected to each spine with a single link
  • The same consecutive range of interfaces is used on all leafs for fabric links
  • The same consecutive range of interfaces is used on all spines for fabric links

Examples

module "nxos_evpn_ospf_underlay" {
  source  = "netascode/evpn-ospf-underlay/nxos"
  version = ">= 0.2.0"

  leafs           = ["LEAF-1", "LEAF-2"]
  spines          = ["SPINE-1", "SPINE-2"]
  loopback_id     = 0
  pim_loopback_id = 100

  loopbacks = [
    {
      device       = "SPINE-1",
      ipv4_address = "10.1.100.1"
    },
    {
      device       = "SPINE-2",
      ipv4_address = "10.1.100.2"
    },
    {
      device       = "LEAF-1",
      ipv4_address = "10.1.100.3"
    },
    {
      device       = "LEAF-2",
      ipv4_address = "10.1.100.4"
    }
  ]

  vtep_loopback_id = 1

  vtep_loopbacks = [
    {
      device       = "LEAF-1",
      ipv4_address = "10.1.200.1"
    },
    {
      device       = "LEAF-2",
      ipv4_address = "10.1.200.2"
    }
  ]

  leaf_fabric_interface_prefix  = "1/"
  leaf_fabric_interface_offset  = "1"
  spine_fabric_interface_prefix = "1/"
  spine_fabric_interface_offset = "1"
  anycast_rp_ipv4_address       = "10.1.101.1"
}

Requirements

Name Version
terraform >= 1.1.0
nxos >= 0.5.0

Providers

Name Version
nxos >= 0.5.0

Inputs

Name Description Type Default Required
leafs List of leaf device names. This list of devices must also be added to the provider configuration. set(string) [] no
spines List of spine device names. This list of devices must also be added to the provider configuration. set(string) [] no
loopback_id Loopback ID used for OSPF and PIM. number 0 no
pim_loopback_id Loopback ID used for PIM Anycast RP. number 100 no
loopbacks List of loopback interfaces, one per device.
list(object({
device = string
ipv4_address = string
}))
[] no
vtep_loopback_id Loopback ID used for VTEP loopbacks. number 1 no
vtep_loopbacks List of vtep loopback interfaces, one per leaf.
list(object({
device = string
ipv4_address = string
}))
[] no
leaf_fabric_interface_prefix Interface prefix for leaf interfaces, eg. 1/. string "1/" no
spine_fabric_interface_prefix Interface prefix for spine interfaces, eg. 1/. string "1/" no
leaf_fabric_interface_offset Leaf interface index offset for fabric interfaces. string "1" no
spine_fabric_interface_offset Spine interface index offset for fabric interfaces. string "1" no
anycast_rp_ipv4_address IPv4 address of PIM RP loopback interface (Anycast). string n/a yes

Outputs

Name Description
loopback_id Loopback ID used for OSPF and PIM.
pim_loopback_id Loopback ID used for PIM Anycast RP.
vtep_loopback_id Loopback ID used for VTEP loopbacks.
loopbacks List of loopback interfaces, one per device.
vtep_loopbacks List of vtep loopback interfaces, one per leaf.

Resources

Name Type
nxos_ethernet.ethernet resource
nxos_system.system resource

terraform-nxos-evpn-ospf-underlay's People

Contributors

danischm avatar dependabot[bot] avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.