@@ -23,6 +23,51 @@ locals {
23
23
parent_id = var. parent_folder != " " ? " folders/${ var . parent_folder } " : " organizations/${ var . org_id } "
24
24
mode = var. enable_hub_and_spoke ? " spoke" : null
25
25
bgp_asn_number = var. enable_partner_interconnect ? " 16550" : " 64514"
26
+ enable_transitivity = var. enable_hub_and_spoke && var. enable_hub_and_spoke_transitivity
27
+ /*
28
+ * Base network ranges
29
+ */
30
+ base_subnet_aggregates = [" 10.0.0.0/16" , " 10.1.0.0/16" , " 100.64.0.0/16" , " 100.65.0.0/16" ]
31
+ base_hub_subnet_ranges = [" 10.0.0.0/24" , " 10.1.0.0/24" ]
32
+ base_private_service_cidr = " 10.16.128.0/21"
33
+ base_subnet_primary_ranges = {
34
+ (var. default_region1 ) = " 10.0.128.0/21"
35
+ (var. default_region2 ) = " 10.1.128.0/21"
36
+ }
37
+ base_subnet_secondary_ranges = {
38
+ (var. default_region1 ) = [
39
+ {
40
+ range_name = " rn-${ local . environment_code } -shared-base-${ var . default_region1 } -gke-pod"
41
+ ip_cidr_range = " 100.64.128.0/21"
42
+ },
43
+ {
44
+ range_name = " rn-${ local . environment_code } -shared-base-${ var . default_region1 } -gke-svc"
45
+ ip_cidr_range = " 100.64.136.0/21"
46
+ }
47
+ ]
48
+ }
49
+ /*
50
+ * Restricted network ranges
51
+ */
52
+ restricted_subnet_aggregates = [" 10.8.0.0/16" , " 10.9.0.0/16" , " 100.72.0.0/16" , " 100.73.0.0/16" ]
53
+ restricted_hub_subnet_ranges = [" 10.8.0.0/24" , " 10.9.0.0/24" ]
54
+ restricted_private_service_cidr = " 10.24.128.0/21"
55
+ restricted_subnet_primary_ranges = {
56
+ (var. default_region1 ) = " 10.8.128.0/21"
57
+ (var. default_region2 ) = " 10.9.128.0/21"
58
+ }
59
+ restricted_subnet_secondary_ranges = {
60
+ (var. default_region1 ) = [
61
+ {
62
+ range_name = " rn-${ local . environment_code } -shared-restricted-${ var . default_region1 } -gke-pod"
63
+ ip_cidr_range = " 100.72.128.0/21"
64
+ },
65
+ {
66
+ range_name = " rn-${ local . environment_code } -shared-restricted-${ var . default_region1 } -gke-svc"
67
+ ip_cidr_range = " 100.72.136.0/21"
68
+ }
69
+ ]
70
+ }
26
71
}
27
72
28
73
data "google_active_folder" "env" {
@@ -57,7 +102,7 @@ module "restricted_shared_vpc" {
57
102
access_context_manager_policy_id = var. access_context_manager_policy_id
58
103
restricted_services = [" bigquery.googleapis.com" , " storage.googleapis.com" ]
59
104
members = [" serviceAccount:${ var . terraform_service_account } " ]
60
- private_service_cidr = " 10.0.112.0/20 "
105
+ private_service_cidr = local . restricted_private_service_cidr
61
106
org_id = var. org_id
62
107
parent_folder = var. parent_folder
63
108
bgp_asn_subnet = local. bgp_asn_number
@@ -79,33 +124,26 @@ module "restricted_shared_vpc" {
79
124
subnets = [
80
125
{
81
126
subnet_name = " sb-${ local . environment_code } -shared-restricted-${ var . default_region1 } "
82
- subnet_ip = " 10.0.96.0/21 "
127
+ subnet_ip = local.restricted_subnet_primary_ranges[var.default_region1]
83
128
subnet_region = var.default_region1
84
129
subnet_private_access = " true"
85
130
subnet_flow_logs = var.subnetworks_enable_logging
86
131
description = " First ${ local . env } subnet example."
87
132
},
88
133
{
89
134
subnet_name = " sb-${ local . environment_code } -shared-restricted-${ var . default_region2 } "
90
- subnet_ip = " 10.0.104.0/21 "
135
+ subnet_ip = local.restricted_subnet_primary_ranges[var.default_region2]
91
136
subnet_region = var.default_region2
92
137
subnet_private_access = " true"
93
138
subnet_flow_logs = var.subnetworks_enable_logging
94
139
description = " Second ${ local . env } subnet example."
95
140
}
96
141
]
97
142
secondary_ranges = {
98
- " sb-${local.environment_code}-shared-restricted-${var.default_region1}" = [
99
- {
100
- range_name = " rn-${ local . environment_code } -shared-restricted-${ var . default_region1 } -gke-pod"
101
- ip_cidr_range = " 192.168.32.0/21"
102
- },
103
- {
104
- range_name = " rn-${ local . environment_code } -shared-restricted-${ var . default_region1 } -gke-svc"
105
- ip_cidr_range = " 192.168.40.0/21"
106
- }
107
- ]
143
+ " sb-${local.environment_code}-shared-restricted-${var.default_region1}" = local.restricted_subnet_secondary_ranges[var.default_region1]
108
144
}
145
+ allow_all_ingress_ranges = local. enable_transitivity ? local. restricted_hub_subnet_ranges : null
146
+ allow_all_egress_ranges = local. enable_transitivity ? local. restricted_subnet_aggregates : null
109
147
}
110
148
111
149
/* *****************************************
@@ -116,7 +154,7 @@ module "base_shared_vpc" {
116
154
source = " ../../modules/base_shared_vpc"
117
155
project_id = local. base_project_id
118
156
environment_code = local. environment_code
119
- private_service_cidr = " 10.0.80.0/20 "
157
+ private_service_cidr = local . base_private_service_cidr
120
158
org_id = var. org_id
121
159
parent_folder = var. parent_folder
122
160
default_region1 = var. default_region1
@@ -139,31 +177,24 @@ module "base_shared_vpc" {
139
177
subnets = [
140
178
{
141
179
subnet_name = " sb-${ local . environment_code } -shared-base-${ var . default_region1 } "
142
- subnet_ip = " 10.0.64.0/21 "
180
+ subnet_ip = local.base_subnet_primary_ranges[var.default_region1]
143
181
subnet_region = var.default_region1
144
182
subnet_private_access = " true"
145
183
subnet_flow_logs = var.subnetworks_enable_logging
146
184
description = " First ${ local . env } subnet example."
147
185
},
148
186
{
149
187
subnet_name = " sb-${ local . environment_code } -shared-base-${ var . default_region2 } "
150
- subnet_ip = " 10.0.72.0/21 "
188
+ subnet_ip = local.base_subnet_primary_ranges[var.default_region2]
151
189
subnet_region = var.default_region2
152
190
subnet_private_access = " true"
153
191
subnet_flow_logs = var.subnetworks_enable_logging
154
192
description = " Second ${ local . env } subnet example."
155
193
}
156
194
]
157
195
secondary_ranges = {
158
- " sb-${local.environment_code}-shared-base-${var.default_region1}" = [
159
- {
160
- range_name = " rn-${ local . environment_code } -shared-base-${ var . default_region1 } -gke-pod"
161
- ip_cidr_range = " 192.168.48.0/21"
162
- },
163
- {
164
- range_name = " rn-${ local . environment_code } -shared-base-${ var . default_region1 } -gke-svc"
165
- ip_cidr_range = " 192.168.56.0/21"
166
- }
167
- ]
196
+ " sb-${local.environment_code}-shared-base-${var.default_region1}" = local.base_subnet_secondary_ranges[var.default_region1]
168
197
}
198
+ allow_all_ingress_ranges = local. enable_transitivity ? local. base_hub_subnet_ranges : null
199
+ allow_all_egress_ranges = local. enable_transitivity ? local. base_subnet_aggregates : null
169
200
}
0 commit comments