Skip to content

Commit 237ea79

Browse files
authored
Dedicated Interconnect update (#210)
* add candidate_subnets variable to interconnect * move interconnect code to separated file in each module * Update interconnect README * add vlan_tag8021q variable and filter by parent to find the interconnect project * add note about setting variables to null to get auto generated values * remove peer_ip_address from interconnect
1 parent 38ff44b commit 237ea79

File tree

12 files changed

+459
-303
lines changed

12 files changed

+459
-303
lines changed

3-networks/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ The purpose of this step is to :
1414

1515
## Usage
1616

17+
### Using Dedicated Interconnect
18+
19+
If you have the prerequisites listed in the [Dedicated Interconnect README](./modules/dedicated_interconnect/README.md) follow this steps to enable Dedicated Interconnect to access onprem.
20+
21+
1. Rename `interconnect.tf.example` to `interconnect.tf` in each environment folder in `3-networks/envs/<ENV>`
22+
1. Update the file `interconnect.tf` with values that are valid for your environment for the interconnects, locations, candidate subnetworks, vlan_tag8021q and peer info.
23+
1. The candidate subnetworks and vlan_tag8021q variables can be set to `null` to allow the interconnect module to auto generate these values.
24+
1725
### OPTIONAL - Using High Availability VPN
1826

1927
If you are not able to use dedicated interconnect, you can also use an HA VPN to access onprem.
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
/**
2+
* Copyright 2020 Google LLC
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
module "shared_restricted_interconnect" {
18+
source = "../../modules/dedicated_interconnect"
19+
20+
org_id = var.org_id
21+
parent_folder = var.parent_folder
22+
vpc_name = "${local.environment_code}-shared-restricted"
23+
24+
region1 = var.default_region1
25+
region1_router1_name = module.restricted_shared_vpc.region1_router1.router.name
26+
region1_interconnect1_candidate_subnets = ["169.254.0.160/29"]
27+
region1_interconnect1_vlan_tag8021q = "3901"
28+
region1_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-1"
29+
region1_interconnect1_location = "las-zone1-770"
30+
region1_router2_name = module.restricted_shared_vpc.region1_router2.router.name
31+
region1_interconnect2_candidate_subnets = ["169.254.0.168/29"]
32+
region1_interconnect2_vlan_tag8021q = "3902"
33+
region1_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-2"
34+
region1_interconnect2_location = "las-zone1-770"
35+
36+
region2 = var.default_region2
37+
region2_router1_name = module.restricted_shared_vpc.region2_router1.router.name
38+
region2_interconnect1_candidate_subnets = ["169.254.0.176/29"]
39+
region2_interconnect1_vlan_tag8021q = "3903"
40+
region2_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-3"
41+
region2_interconnect1_location = "lax-zone2-19"
42+
region2_router2_name = module.restricted_shared_vpc.region2_router2.router.name
43+
region2_interconnect2_candidate_subnets = ["169.254.0.184/29"]
44+
region2_interconnect2_vlan_tag8021q = "3904"
45+
region2_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-4"
46+
region2_interconnect2_location = "lax-zone1-403"
47+
48+
peer_asn = "64515"
49+
peer_name = "interconnect-peer"
50+
51+
cloud_router_labels = {
52+
vlan_1 = "cr5",
53+
vlan_2 = "cr6",
54+
vlan_3 = "cr7",
55+
vlan_4 = "cr8"
56+
}
57+
}
58+
59+
module "shared_base_interconnect" {
60+
source = "../../modules/dedicated_interconnect"
61+
62+
org_id = var.org_id
63+
parent_folder = var.parent_folder
64+
vpc_name = "${local.environment_code}-shared-base"
65+
66+
region1 = var.default_region1
67+
region1_router1_name = module.base_shared_vpc.region1_router1.router.name
68+
region1_interconnect1_candidate_subnets = ["169.254.0.192/29"]
69+
region1_interconnect1_vlan_tag8021q = "3905"
70+
region1_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-1"
71+
region1_interconnect1_location = "las-zone1-770"
72+
region1_router2_name = module.base_shared_vpc.region1_router2.router.name
73+
region1_interconnect2_candidate_subnets = ["169.254.0.200/29"]
74+
region1_interconnect2_vlan_tag8021q = "3906"
75+
region1_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-2"
76+
region1_interconnect2_location = "las-zone1-770"
77+
78+
region2 = var.default_region2
79+
region2_router1_name = module.base_shared_vpc.region2_router1.router.name
80+
region2_interconnect1_candidate_subnets = ["169.254.0.208/29"]
81+
region2_interconnect1_vlan_tag8021q = "3907"
82+
region2_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-3"
83+
region2_interconnect1_location = "lax-zone2-19"
84+
region2_router2_name = module.base_shared_vpc.region2_router2.router.name
85+
region2_interconnect2_candidate_subnets = ["169.254.0.216/29"]
86+
region2_interconnect2_vlan_tag8021q = "3908"
87+
region2_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-4"
88+
region2_interconnect2_location = "lax-zone1-403"
89+
90+
peer_asn = "64515"
91+
peer_name = "interconnect-peer"
92+
93+
cloud_router_labels = {
94+
vlan_1 = "cr1",
95+
vlan_2 = "cr2",
96+
vlan_3 = "cr3",
97+
vlan_4 = "cr4"
98+
}
99+
}

3-networks/envs/development/main.tf

Lines changed: 0 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -96,45 +96,6 @@ module "restricted_shared_vpc" {
9696
}
9797
}
9898

99-
/******************************************
100-
Interconnect for restricted shared VPC
101-
*****************************************/
102-
# uncommnet if you have done the requirement steps listed in ../../modules/dedicated_interconnect/README.md
103-
# update the interconnect, interconnect locations, and peer field with actual values.
104-
105-
# module "shared_restricted_interconnect" {
106-
# source = "../../modules/dedicated_interconnect"
107-
108-
# vpc_name = "${local.environment_code}-shared-restricted"
109-
110-
# region1 = var.default_region1
111-
# region1_router1_name = module.restricted_shared_vpc.region1_router1.router.name
112-
# region1_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-1"
113-
# region1_interconnect1_location = "las-zone1-770"
114-
# region1_router2_name = module.restricted_shared_vpc.region1_router2.router.name
115-
# region1_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-2"
116-
# region1_interconnect2_location = "las-zone1-770"
117-
118-
# region2 = var.default_region2
119-
# region2_router1_name = module.restricted_shared_vpc.region2_router1.router.name
120-
# region2_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-3"
121-
# region2_interconnect1_location = "lax-zone2-19"
122-
# region2_router2_name = module.restricted_shared_vpc.region2_router2.router.name
123-
# region2_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-4"
124-
# region2_interconnect2_location = "lax-zone1-403"
125-
126-
# peer_asn = "64515"
127-
# peer_ip_address = "8.8.8.8" # on-prem router ip address
128-
# peer_name = "interconnect-peer"
129-
130-
# cloud_router_labels = {
131-
# vlan_1 = "cr5",
132-
# vlan_2 = "cr6",
133-
# vlan_3 = "cr7",
134-
# vlan_4 = "cr8"
135-
# }
136-
# }
137-
13899
/******************************************
139100
Base shared VPC
140101
*****************************************/
@@ -183,43 +144,3 @@ module "base_shared_vpc" {
183144
]
184145
}
185146
}
186-
187-
/******************************************
188-
Interconnect for base shared VPC
189-
*****************************************/
190-
191-
# uncommnet if you have done the requirement steps listed in ../../modules/dedicated_interconnect/README.md
192-
# update the interconnect, interconnect locations, and peer field with actual values.
193-
194-
# module "shared_base_interconnect" {
195-
# source = "../../modules/dedicated_interconnect"
196-
197-
# vpc_name = "${local.environment_code}-shared-base"
198-
199-
# region1 = var.default_region1
200-
# region1_router1_name = module.base_shared_vpc.region1_router1.router.name
201-
# region1_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-1"
202-
# region1_interconnect1_location = "las-zone1-770"
203-
# region1_router2_name = module.base_shared_vpc.region1_router2.router.name
204-
# region1_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-2"
205-
# region1_interconnect2_location = "las-zone1-770"
206-
207-
# region2 = var.default_region2
208-
# region2_router1_name = module.base_shared_vpc.region2_router1.router.name
209-
# region2_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-3"
210-
# region2_interconnect1_location = "lax-zone2-19"
211-
# region2_router2_name = module.base_shared_vpc.region2_router2.router.name
212-
# region2_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-4"
213-
# region2_interconnect2_location = "lax-zone1-403"
214-
215-
# peer_asn = "64515"
216-
# peer_ip_address = "8.8.8.8" # on-prem router ip address
217-
# peer_name = "interconnect-peer"
218-
219-
# cloud_router_labels = {
220-
# vlan_1 = "cr1",
221-
# vlan_2 = "cr2",
222-
# vlan_3 = "cr3",
223-
# vlan_4 = "cr4"
224-
# }
225-
# }
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
/**
2+
* Copyright 2020 Google LLC
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
module "shared_restricted_interconnect" {
18+
source = "../../modules/dedicated_interconnect"
19+
20+
org_id = var.org_id
21+
parent_folder = var.parent_folder
22+
vpc_name = "${local.environment_code}-shared-restricted"
23+
24+
region1 = var.default_region1
25+
region1_router1_name = module.restricted_shared_vpc.region1_router1.router.name
26+
region1_interconnect1_candidate_subnets = ["169.254.0.96/29"]
27+
region1_interconnect1_vlan_tag8021q = "3911"
28+
region1_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-1"
29+
region1_interconnect1_location = "las-zone1-770"
30+
region1_router2_name = module.restricted_shared_vpc.region1_router2.router.name
31+
region1_interconnect2_candidate_subnets = ["169.254.0.104/29"]
32+
region1_interconnect2_vlan_tag8021q = "3912"
33+
region1_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-2"
34+
region1_interconnect2_location = "las-zone1-770"
35+
36+
region2 = var.default_region2
37+
region2_router1_name = module.restricted_shared_vpc.region2_router1.router.name
38+
region2_interconnect1_candidate_subnets = ["169.254.0.112/29"]
39+
region2_interconnect1_vlan_tag8021q = "3913"
40+
region2_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-3"
41+
region2_interconnect1_location = "lax-zone2-19"
42+
region2_router2_name = module.restricted_shared_vpc.region2_router2.router.name
43+
region2_interconnect2_candidate_subnets = ["169.254.0.120/29"]
44+
region2_interconnect2_vlan_tag8021q = "3914"
45+
region2_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-4"
46+
region2_interconnect2_location = "lax-zone1-403"
47+
48+
peer_asn = "64515"
49+
peer_name = "interconnect-peer"
50+
51+
cloud_router_labels = {
52+
vlan_1 = "cr5",
53+
vlan_2 = "cr6",
54+
vlan_3 = "cr7",
55+
vlan_4 = "cr8"
56+
}
57+
}
58+
59+
module "shared_base_interconnect" {
60+
source = "../../modules/dedicated_interconnect"
61+
62+
org_id = var.org_id
63+
parent_folder = var.parent_folder
64+
vpc_name = "${local.environment_code}-shared-base"
65+
66+
region1 = var.default_region1
67+
region1_router1_name = module.base_shared_vpc.region1_router1.router.name
68+
region1_interconnect1_candidate_subnets = ["169.254.0.128/29"]
69+
region1_interconnect1_vlan_tag8021q = "3915"
70+
region1_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-1"
71+
region1_interconnect1_location = "las-zone1-770"
72+
region1_router2_name = module.base_shared_vpc.region1_router2.router.name
73+
region1_interconnect2_candidate_subnets = ["169.254.0.136/29"]
74+
region1_interconnect2_vlan_tag8021q = "3916"
75+
region1_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-2"
76+
region1_interconnect2_location = "las-zone1-770"
77+
78+
region2 = var.default_region2
79+
region2_router1_name = module.base_shared_vpc.region2_router1.router.name
80+
region2_interconnect1_candidate_subnets = ["169.254.0.144/29"]
81+
region2_interconnect1_vlan_tag8021q = "3917"
82+
region2_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-3"
83+
region2_interconnect1_location = "lax-zone2-19"
84+
region2_router2_name = module.base_shared_vpc.region2_router2.router.name
85+
region2_interconnect2_candidate_subnets = ["169.254.0.152/29"]
86+
region2_interconnect2_vlan_tag8021q = "3918"
87+
region2_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-4"
88+
region2_interconnect2_location = "lax-zone1-403"
89+
90+
peer_asn = "64515"
91+
peer_name = "interconnect-peer"
92+
93+
cloud_router_labels = {
94+
vlan_1 = "cr1",
95+
vlan_2 = "cr2",
96+
vlan_3 = "cr3",
97+
vlan_4 = "cr4"
98+
}
99+
}

3-networks/envs/non-production/main.tf

Lines changed: 0 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -97,45 +97,6 @@ module "restricted_shared_vpc" {
9797
}
9898
}
9999

100-
/******************************************
101-
Interconnect for restricted shared VPC
102-
*****************************************/
103-
# uncommnet if you have done the requirement steps listed in ../../modules/dedicated_interconnect/README.md
104-
# update the interconnect, interconnect locations, and peer field with actual values.
105-
106-
# module "shared_restricted_interconnect" {
107-
# source = "../../modules/dedicated_interconnect"
108-
109-
# vpc_name = "${local.environment_code}-shared-restricted"
110-
111-
# region1 = var.default_region1
112-
# region1_router1_name = module.restricted_shared_vpc.region1_router1.router.name
113-
# region1_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-1"
114-
# region1_interconnect1_location = "las-zone1-770"
115-
# region1_router2_name = module.restricted_shared_vpc.region1_router2.router.name
116-
# region1_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-2"
117-
# region1_interconnect2_location = "las-zone1-770"
118-
119-
# region2 = var.default_region2
120-
# region2_router1_name = module.restricted_shared_vpc.region2_router1.router.name
121-
# region2_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-3"
122-
# region2_interconnect1_location = "lax-zone2-19"
123-
# region2_router2_name = module.restricted_shared_vpc.region2_router2.router.name
124-
# region2_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-4"
125-
# region2_interconnect2_location = "lax-zone1-403"
126-
127-
# peer_asn = "64515"
128-
# peer_ip_address = "8.8.8.8" # on-prem router ip address
129-
# peer_name = "interconnect-peer"
130-
131-
# cloud_router_labels = {
132-
# vlan_1 = "cr5",
133-
# vlan_2 = "cr6",
134-
# vlan_3 = "cr7",
135-
# vlan_4 = "cr8"
136-
# }
137-
# }
138-
139100
/******************************************
140101
Private shared VPC
141102
*****************************************/
@@ -186,43 +147,3 @@ module "base_shared_vpc" {
186147
]
187148
}
188149
}
189-
190-
/******************************************
191-
Interconnect for base shared VPC
192-
*****************************************/
193-
194-
# uncommnet if you have done the requirement steps listed in ../../modules/dedicated_interconnect/README.md
195-
# update the interconnect, interconnect locations, and peer field with actual values.
196-
197-
# module "shared_base_interconnect" {
198-
# source = "../../modules/dedicated_interconnect"
199-
200-
# vpc_name = "${local.environment_code}-shared-base"
201-
202-
# region1 = var.default_region1
203-
# region1_router1_name = module.base_shared_vpc.region1_router1.router.name
204-
# region1_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-1"
205-
# region1_interconnect1_location = "las-zone1-770"
206-
# region1_router2_name = module.base_shared_vpc.region1_router2.router.name
207-
# region1_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-2"
208-
# region1_interconnect2_location = "las-zone1-770"
209-
210-
# region2 = var.default_region2
211-
# region2_router1_name = module.base_shared_vpc.region2_router1.router.name
212-
# region2_interconnect1 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-3"
213-
# region2_interconnect1_location = "lax-zone2-19"
214-
# region2_router2_name = module.base_shared_vpc.region2_router2.router.name
215-
# region2_interconnect2 = "https://www.googleapis.com/compute/v1/projects/example-interconnect-project/global/interconnects/example-interconnect-4"
216-
# region2_interconnect2_location = "lax-zone1-403"
217-
218-
# peer_asn = "64515"
219-
# peer_ip_address = "8.8.8.8" # on-prem router ip address
220-
# peer_name = "interconnect-peer"
221-
222-
# cloud_router_labels = {
223-
# vlan_1 = "cr1",
224-
# vlan_2 = "cr2",
225-
# vlan_3 = "cr3",
226-
# vlan_4 = "cr4"
227-
# }
228-
# }

0 commit comments

Comments
 (0)