132 lines
5.5 KiB
Markdown
132 lines
5.5 KiB
Markdown
|
# 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
|
||
|
|
||
|
```hcl
|
||
|
module "vlan-attachment-1" {
|
||
|
source = "./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
|
||
|
|
||
|
```hcl
|
||
|
module "vlan-attachment-1" {
|
||
|
source = "./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 = "./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
|
||
|
```
|
||
|
|
||
|
<!-- BEGIN TFDOC -->
|
||
|
## Variables
|
||
|
|
||
|
| name | description | type | required | default |
|
||
|
|---|---|:---: |:---:|:---:|
|
||
|
| interconnect | URL of the underlying Interconnect object that this attachment's traffic will traverse through. | <code title="">string</code> | ✓ | |
|
||
|
| peer | Peer Ip address and asn. Only IPv4 supported | <code title="object({ ip_address = string asn = number })">object({...})</code> | ✓ | |
|
||
|
| project_id | The project containing the resources | <code title="">string</code> | ✓ | |
|
||
|
| *bgp* | Bgp session parameters | <code title="object({ session_range = string candidate_ip_ranges = list(string) advertised_route_priority = number })">object({...})</code> | | <code title="">null</code> |
|
||
|
| *config* | VLAN attachment parameters: description, vlan_id, bandwidth, admin_enabled, interconnect | <code title="object({ description = string vlan_id = number bandwidth = string admin_enabled = bool mtu = number })">object({...})</code> | | <code title="{ description = null vlan_id = null bandwidth = "BPS_10G" admin_enabled = true mtu = 1440 }">...</code> |
|
||
|
| *name* | The name of the vlan attachment | <code title="">string</code> | | <code title="">vlan-attachment</code> |
|
||
|
| *region* | Region where the router resides | <code title="">string</code> | | <code title="">europe-west1-b</code> |
|
||
|
| *router_config* | Router asn and custom advertisement configuration, ip_ranges is a map of address ranges and descriptions.. | <code title="object({ description = string asn = number advertise_config = object({ groups = list(string) ip_ranges = map(string) mode = string }) })">object({...})</code> | | <code title="{ description = null asn = 64514 advertise_config = null }">...</code> |
|
||
|
| *router_create* | Create router. | <code title="">bool</code> | | <code title="">true</code> |
|
||
|
| *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. | <code title="">string</code> | | <code title="">router-vlan-attachment</code> |
|
||
|
| *router_network* | A reference to the network to which this router belongs | <code title="">string</code> | | <code title="">null</code> |
|
||
|
|
||
|
## Outputs
|
||
|
|
||
|
| name | description | sensitive |
|
||
|
|---|---|:---:|
|
||
|
| bgpsession | bgp session | |
|
||
|
| interconnect_attachment | interconnect attachment | |
|
||
|
| router | Router resource (only if auto-created). | |
|
||
|
<!-- END TFDOC -->
|