cloud-foundation-fabric/modules/net-interconnect-attachment...
Dan Farmer 52eb83758f Fix compute-vm:CloudKMS test for provider>=4.54.0
* TF provider >= 4.54.0 now returns `rsa_encrypted_key` for
  `google_compute_disk.disks["attached-disk"]` (see
  hashicorp/terraform-provider-google#4448)
* Add this field to expected model to fix test assertion failure
* Update required TF provider to 4.55.0 (latest) since the assertion
  will now fail with <4.54.0, which do not return `rsa_encrypted_key`
  * Updated the whole repo on advice from @ludoo
2023-02-28 15:10:22 +00:00
..
README.md Test documentation examples in the examples/ folder 2022-09-06 17:46:09 +02:00
main.tf Copyright bump (#410) 2022-01-01 15:52:31 +01:00
outputs.tf Add periods at the end of each description field where missing (#478) 2022-01-31 10:45:34 +01:00
variables.tf Add periods at the end of each description field where missing (#478) 2022-01-31 10:45:34 +01:00
versions.tf Fix compute-vm:CloudKMS test for provider>=4.54.0 2023-02-28 15:10:22 +00:00

README.md

Direct Interconnect VLAN Attachment and router

This module allows creation of a VLAN attachment for Direct Interconnect and router (router creation is optional).

Examples

Direct Interconnect VLAN attachment using default parameters for bgp session and router

module "vlan-attachment-1" {
  source         = "./fabric/modules/net-interconnect-attachment-direct"
  project_id     = "dedicated-ic-5-8492"
  region         = "us-west2"
  router_network = "myvpc"
  name           = "vlan-604-x"
  interconnect   = "https://www.googleapis.com/compute/v1/projects/mylab/global/interconnects/mylab-interconnect-1"
  peer = {
    ip_address = "169.254.63.2"
    asn        = 65418
  }
}
# tftest modules=1 resources=4

Direct Interconnect VLAN attachments to achieve 99.9% SLA setup

module "vlan-attachment-1" {
  source      = "./fabric/modules/net-interconnect-attachment-direct"
  project_id  = "dedicated-ic-3-8386"
  region      = "us-west2"
  router_name = "router-1"
  router_config = {
    description = ""
    asn         = 65003
    advertise_config = {
      groups = ["ALL_SUBNETS"]
      ip_ranges = {
        "199.36.153.8/30" = "custom"
      }
      mode = "CUSTOM"
    }
  }
  router_network = "myvpc"
  name           = "vlan-603-1"
  interconnect   = "https://www.googleapis.com/compute/v1/projects/mylab/global/interconnects/mylab-interconnect-1"

  config = {
    description   = ""
    vlan_id       = 603
    bandwidth     = "BPS_10G"
    admin_enabled = true
    mtu           = 1440
  }
  peer = {
    ip_address = "169.254.63.2"
    asn        = 65418
  }
  bgp = {
    session_range             = "169.254.63.1/29"
    advertised_route_priority = 0
    candidate_ip_ranges       = ["169.254.63.0/29"]
  }
}

module "vlan-attachment-2" {
  source      = "./fabric/modules/net-interconnect-attachment-direct"
  project_id  = "dedicated-ic-3-8386"
  region      = "us-west2"
  router_name = "router-2"
  router_config = {
    description = ""
    asn         = 65003
    advertise_config = {
      groups = ["ALL_SUBNETS"]
      ip_ranges = {
        "199.36.153.8/30" = "custom"
      }
      mode = "CUSTOM"
    }

  }
  router_network = "myvpc"
  name           = "vlan-603-2"

  interconnect = "https://www.googleapis.com/compute/v1/projects/mylab/global/interconnects/mylab-interconnect-2"

  config = {
    description   = ""
    vlan_id       = 603
    bandwidth     = "BPS_10G"
    admin_enabled = true
    mtu           = 1440
  }
  peer = {
    ip_address = "169.254.63.10"
    asn        = 65418
  }
  bgp = {
    session_range             = "169.254.63.9/29"
    advertised_route_priority = 0
    candidate_ip_ranges       = ["169.254.63.8/29"]
  }
}
# tftest modules=2 resources=8

Variables

name description type required default
interconnect URL of the underlying Interconnect object that this attachment's traffic will traverse through. string
peer Peer Ip address and asn. Only IPv4 supported. object({…})
project_id The project containing the resources. string
router_config Router asn and custom advertisement configuration, ip_ranges is a map of address ranges and descriptions.. . object({…}
bgp Bgp session parameters. object({…}) null
config VLAN attachment parameters: description, vlan_id, bandwidth, admin_enabled, interconnect. object({…}) {…}
name The name of the vlan attachment. string "vlan-attachment"
region Region where the router resides. string "europe-west1-b"
router_create Create router. bool true
router_name Router name used for auto created router, or to specify an existing router to use if router_create is set to true. Leave blank to use vlan attachment name for auto created router. string "router-vlan-attachment"
router_network A reference to the network to which this router belongs. string null

Outputs

name description sensitive
bgpsession bgp session.
interconnect_attachment interconnect attachment.
router Router resource (only if auto-created).