|
15 | 15 | */
|
16 | 16 |
|
17 | 17 | locals {
|
18 |
| - environment_code = "d" |
19 |
| - env = "development" |
20 |
| - restricted_project_id = data.google_projects.restricted_host_project.projects[0].project_id |
21 |
| - restricted_project_number = data.google_project.restricted_host_project.number |
22 |
| - base_project_id = data.google_projects.base_host_project.projects[0].project_id |
23 |
| - parent_id = var.parent_folder != "" ? "folders/${var.parent_folder}" : "organizations/${var.org_id}" |
24 |
| - mode = var.enable_hub_and_spoke ? "spoke" : null |
25 |
| - bgp_asn_number = var.enable_partner_interconnect ? "16550" : "64514" |
26 |
| - enable_transitivity = var.enable_hub_and_spoke && var.enable_hub_and_spoke_transitivity |
| 18 | + env = "development" |
| 19 | + environment_code = substr(local.env, 0, 1) |
| 20 | + default_region1 = "us-west1" |
| 21 | + default_region2 = "us-central1" |
27 | 22 | /*
|
28 | 23 | * Base network ranges
|
29 | 24 | */
|
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 | 25 | base_private_service_cidr = "10.16.64.0/21"
|
33 | 26 | base_subnet_primary_ranges = {
|
34 |
| - (var.default_region1) = "10.0.64.0/21" |
35 |
| - (var.default_region2) = "10.1.64.0/21" |
| 27 | + (local.default_region1) = "10.0.64.0/21" |
| 28 | + (local.default_region2) = "10.1.64.0/21" |
36 | 29 | }
|
37 | 30 | base_subnet_secondary_ranges = {
|
38 |
| - (var.default_region1) = [ |
| 31 | + (local.default_region1) = [ |
39 | 32 | {
|
40 |
| - range_name = "rn-${local.environment_code}-shared-base-${var.default_region1}-gke-pod" |
| 33 | + range_name = "rn-${local.environment_code}-shared-base-${local.default_region1}-gke-pod" |
41 | 34 | ip_cidr_range = "100.64.64.0/21"
|
42 | 35 | },
|
43 | 36 | {
|
44 |
| - range_name = "rn-${local.environment_code}-shared-base-${var.default_region1}-gke-svc" |
| 37 | + range_name = "rn-${local.environment_code}-shared-base-${local.default_region1}-gke-svc" |
45 | 38 | ip_cidr_range = "100.64.72.0/21"
|
46 | 39 | }
|
47 | 40 | ]
|
48 | 41 | }
|
49 | 42 | /*
|
50 | 43 | * Restricted network ranges
|
51 | 44 | */
|
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 | 45 | restricted_private_service_cidr = "10.24.64.0/21"
|
55 | 46 | restricted_subnet_primary_ranges = {
|
56 |
| - (var.default_region1) = "10.8.64.0/21" |
57 |
| - (var.default_region2) = "10.9.64.0/21" |
| 47 | + (local.default_region1) = "10.8.64.0/21" |
| 48 | + (local.default_region2) = "10.9.64.0/21" |
58 | 49 | }
|
59 | 50 | restricted_subnet_secondary_ranges = {
|
60 |
| - (var.default_region1) = [ |
| 51 | + (local.default_region1) = [ |
61 | 52 | {
|
62 |
| - range_name = "rn-${local.environment_code}-shared-restricted-${var.default_region1}-gke-pod" |
| 53 | + range_name = "rn-${local.environment_code}-shared-restricted-${local.default_region1}-gke-pod" |
63 | 54 | ip_cidr_range = "100.72.64.0/21"
|
64 | 55 | },
|
65 | 56 | {
|
66 |
| - range_name = "rn-${local.environment_code}-shared-restricted-${var.default_region1}-gke-svc" |
| 57 | + range_name = "rn-${local.environment_code}-shared-restricted-${local.default_region1}-gke-svc" |
67 | 58 | ip_cidr_range = "100.72.72.0/21"
|
68 | 59 | }
|
69 | 60 | ]
|
70 | 61 | }
|
71 | 62 | }
|
72 | 63 |
|
73 |
| -data "google_active_folder" "env" { |
74 |
| - display_name = "${var.folder_prefix}-${local.env}" |
75 |
| - parent = local.parent_id |
76 |
| -} |
77 |
| - |
78 |
| -/****************************************** |
79 |
| - VPC Host Projects |
80 |
| -*****************************************/ |
81 |
| - |
82 |
| -data "google_projects" "restricted_host_project" { |
83 |
| - filter = "parent.id:${split("/", data.google_active_folder.env.name)[1]} labels.application_name=restricted-shared-vpc-host labels.environment=${local.env} lifecycleState=ACTIVE" |
84 |
| -} |
85 |
| - |
86 |
| -data "google_project" "restricted_host_project" { |
87 |
| - project_id = data.google_projects.restricted_host_project.projects[0].project_id |
88 |
| -} |
89 |
| - |
90 |
| -data "google_projects" "base_host_project" { |
91 |
| - filter = "parent.id:${split("/", data.google_active_folder.env.name)[1]} labels.application_name=base-shared-vpc-host labels.environment=${local.env} lifecycleState=ACTIVE" |
92 |
| -} |
93 |
| - |
94 |
| -/****************************************** |
95 |
| - Restricted shared VPC |
96 |
| -*****************************************/ |
97 |
| -module "restricted_shared_vpc" { |
98 |
| - source = "../../modules/restricted_shared_vpc" |
99 |
| - project_id = local.restricted_project_id |
100 |
| - project_number = local.restricted_project_number |
101 |
| - environment_code = local.environment_code |
102 |
| - access_context_manager_policy_id = var.access_context_manager_policy_id |
103 |
| - restricted_services = ["bigquery.googleapis.com", "storage.googleapis.com"] |
104 |
| - members = ["serviceAccount:${var.terraform_service_account}"] |
105 |
| - private_service_cidr = local.restricted_private_service_cidr |
106 |
| - org_id = var.org_id |
107 |
| - parent_folder = var.parent_folder |
108 |
| - bgp_asn_subnet = local.bgp_asn_number |
109 |
| - default_region1 = var.default_region1 |
110 |
| - default_region2 = var.default_region2 |
111 |
| - domain = var.domain |
112 |
| - dns_enable_inbound_forwarding = var.dns_enable_inbound_forwarding |
113 |
| - dns_enable_logging = var.dns_enable_logging |
114 |
| - firewall_enable_logging = var.firewall_enable_logging |
115 |
| - windows_activation_enabled = var.windows_activation_enabled |
116 |
| - nat_enabled = var.nat_enabled |
117 |
| - nat_bgp_asn = var.nat_bgp_asn |
118 |
| - nat_num_addresses_region1 = var.nat_num_addresses_region1 |
119 |
| - nat_num_addresses_region2 = var.nat_num_addresses_region2 |
120 |
| - folder_prefix = var.folder_prefix |
121 |
| - mode = local.mode |
| 64 | +module "base_env" { |
| 65 | + source = "../../modules/base_env" |
122 | 66 |
|
123 |
| - subnets = [ |
124 |
| - { |
125 |
| - subnet_name = "sb-${local.environment_code}-shared-restricted-${var.default_region1}" |
126 |
| - subnet_ip = local.restricted_subnet_primary_ranges[var.default_region1] |
127 |
| - subnet_region = var.default_region1 |
128 |
| - subnet_private_access = "true" |
129 |
| - subnet_flow_logs = var.subnetworks_enable_logging |
130 |
| - description = "First ${local.env} subnet example." |
131 |
| - }, |
132 |
| - { |
133 |
| - subnet_name = "sb-${local.environment_code}-shared-restricted-${var.default_region2}" |
134 |
| - subnet_ip = local.restricted_subnet_primary_ranges[var.default_region2] |
135 |
| - subnet_region = var.default_region2 |
136 |
| - subnet_private_access = "true" |
137 |
| - subnet_flow_logs = var.subnetworks_enable_logging |
138 |
| - description = "Second ${local.env} subnet example." |
139 |
| - } |
140 |
| - ] |
141 |
| - secondary_ranges = { |
142 |
| - "sb-${local.environment_code}-shared-restricted-${var.default_region1}" = local.restricted_subnet_secondary_ranges[var.default_region1] |
143 |
| - } |
144 |
| - allow_all_ingress_ranges = local.enable_transitivity ? local.restricted_hub_subnet_ranges : null |
145 |
| - allow_all_egress_ranges = local.enable_transitivity ? local.restricted_subnet_aggregates : null |
146 |
| -} |
| 67 | + env = local.env |
| 68 | + environment_code = local.environment_code |
| 69 | + org_id = var.org_id |
| 70 | + access_context_manager_policy_id = var.access_context_manager_policy_id |
| 71 | + terraform_service_account = var.terraform_service_account |
| 72 | + default_region1 = local.default_region1 |
| 73 | + default_region2 = local.default_region2 |
| 74 | + domain = var.domain |
| 75 | + parent_folder = var.parent_folder |
| 76 | + enable_hub_and_spoke = var.enable_hub_and_spoke |
| 77 | + enable_partner_interconnect = false |
| 78 | + enable_hub_and_spoke_transitivity = var.enable_hub_and_spoke_transitivity |
| 79 | + base_private_service_cidr = local.base_private_service_cidr |
| 80 | + base_subnet_primary_ranges = local.base_subnet_primary_ranges |
| 81 | + base_subnet_secondary_ranges = local.base_subnet_secondary_ranges |
| 82 | + restricted_private_service_cidr = local.restricted_private_service_cidr |
| 83 | + restricted_subnet_primary_ranges = local.restricted_subnet_primary_ranges |
| 84 | + restricted_subnet_secondary_ranges = local.restricted_subnet_secondary_ranges |
147 | 85 |
|
148 |
| -/****************************************** |
149 |
| - Base shared VPC |
150 |
| -*****************************************/ |
151 |
| - |
152 |
| -module "base_shared_vpc" { |
153 |
| - source = "../../modules/base_shared_vpc" |
154 |
| - project_id = local.base_project_id |
155 |
| - environment_code = local.environment_code |
156 |
| - private_service_cidr = local.base_private_service_cidr |
157 |
| - org_id = var.org_id |
158 |
| - parent_folder = var.parent_folder |
159 |
| - default_region1 = var.default_region1 |
160 |
| - default_region2 = var.default_region2 |
161 |
| - domain = var.domain |
162 |
| - bgp_asn_subnet = local.bgp_asn_number |
163 |
| - dns_enable_inbound_forwarding = var.dns_enable_inbound_forwarding |
164 |
| - dns_enable_logging = var.dns_enable_logging |
165 |
| - firewall_enable_logging = var.firewall_enable_logging |
166 |
| - windows_activation_enabled = var.windows_activation_enabled |
167 |
| - nat_enabled = var.nat_enabled |
168 |
| - nat_bgp_asn = var.nat_bgp_asn |
169 |
| - nat_num_addresses_region1 = var.nat_num_addresses_region1 |
170 |
| - nat_num_addresses_region2 = var.nat_num_addresses_region2 |
171 |
| - nat_num_addresses = var.nat_num_addresses |
172 |
| - folder_prefix = var.folder_prefix |
173 |
| - mode = local.mode |
174 |
| - |
175 |
| - subnets = [ |
176 |
| - { |
177 |
| - subnet_name = "sb-${local.environment_code}-shared-base-${var.default_region1}" |
178 |
| - subnet_ip = local.base_subnet_primary_ranges[var.default_region1] |
179 |
| - subnet_region = var.default_region1 |
180 |
| - subnet_private_access = "true" |
181 |
| - subnet_flow_logs = var.subnetworks_enable_logging |
182 |
| - description = "First ${local.env} subnet example." |
183 |
| - }, |
184 |
| - { |
185 |
| - subnet_name = "sb-${local.environment_code}-shared-base-${var.default_region2}" |
186 |
| - subnet_ip = local.base_subnet_primary_ranges[var.default_region2] |
187 |
| - subnet_region = var.default_region2 |
188 |
| - subnet_private_access = "true" |
189 |
| - subnet_flow_logs = var.subnetworks_enable_logging |
190 |
| - description = "Second ${local.env} subnet example." |
191 |
| - } |
192 |
| - ] |
193 |
| - secondary_ranges = { |
194 |
| - "sb-${local.environment_code}-shared-base-${var.default_region1}" = local.base_subnet_secondary_ranges[var.default_region1] |
195 |
| - } |
196 |
| - allow_all_ingress_ranges = local.enable_transitivity ? local.base_hub_subnet_ranges : null |
197 |
| - allow_all_egress_ranges = local.enable_transitivity ? local.base_subnet_aggregates : null |
198 | 86 | }
|
0 commit comments