foundation-extension/3-networks-extension/envs/development/boa_vpc_fw.tf (126 lines of code) (raw):
/**
* Copyright 2021 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/******************************************
Base shared VPC
*****************************************/
module "base_shared_vpc" {
source = "../../modules/base_shared_vpc"
project_id = local.base_project_id
environment_code = local.environment_code
private_service_cidr = local.base_private_service_cidr
org_id = var.org_id
parent_folder = var.parent_folder
default_region1 = var.default_region1
default_region2 = var.default_region2
domain = var.domain
bgp_asn_subnet = local.bgp_asn_number
windows_activation_enabled = var.windows_activation_enabled
dns_enable_inbound_forwarding = var.dns_enable_inbound_forwarding
dns_enable_logging = var.dns_enable_logging
firewall_enable_logging = var.firewall_enable_logging
optional_fw_rules_enabled = var.optional_fw_rules_enabled
nat_enabled = var.nat_enabled
nat_bgp_asn = var.nat_bgp_asn
nat_num_addresses_region1 = var.nat_num_addresses_region1
nat_num_addresses_region2 = var.nat_num_addresses_region2
nat_num_addresses = var.nat_num_addresses
folder_prefix = var.folder_prefix
mode = local.mode
subnets = [
{
subnet_name = "mci-config-subnet"
subnet_ip = "10.0.64.0/29"
subnet_region = var.default_region1
subnet_private_access = "true"
subnet_flow_logs = var.subnetworks_enable_logging
description = "The mci config example subnet."
},
{
subnet_name = "gke-cluster1-subnet"
subnet_ip = "10.0.65.0/27"
subnet_region = var.default_region1
subnet_private_access = "true"
subnet_flow_logs = var.subnetworks_enable_logging
description = "The mci config example subnet."
},
{
subnet_name = "bastion-host-subnet"
subnet_ip = "10.0.66.0/29"
subnet_region = var.default_region2
subnet_private_access = "true"
subnet_flow_logs = var.subnetworks_enable_logging
description = "The bastion host example subnet."
},
{
subnet_name = "gke-cluster2-subnet"
subnet_ip = "10.1.64.0/27"
subnet_region = var.default_region2
subnet_private_access = "true"
subnet_flow_logs = var.subnetworks_enable_logging
description = "The bastion host example subnet."
},
]
secondary_ranges = {
mci-config-subnet = [
{
range_name = "pod-ip-range"
ip_cidr_range = "100.64.64.0/22"
},
{
range_name = "services-ip-range"
ip_cidr_range = "100.64.68.0/26"
}
]
gke-cluster1-subnet = [
{
range_name = "pod-ip-range"
ip_cidr_range = "100.64.72.0/22"
},
{
range_name = "services-ip-range"
ip_cidr_range = "100.64.76.0/26"
}
]
bastion-host-subnet = []
gke-cluster2-subnet = [
{
range_name = "pod-ip-range"
ip_cidr_range = "100.65.64.0/22"
},
{
range_name = "services-ip-range"
ip_cidr_range = "100.65.68.0/26"
}
]
}
allow_all_ingress_ranges = local.enable_transitivity ? local.base_hub_subnet_ranges : null
allow_all_egress_ranges = local.enable_transitivity ? local.base_subnet_aggregates : null
}
/******************************************
Firewall Rules
*****************************************/
module "boa_firewall_rules" {
source = "../../modules/fw-rules"
environment_code = local.environment_code
network_link = module.base_shared_vpc.network_self_link
fw_project_id = local.base_project_id
firewall_enable_logging = var.firewall_enable_logging
boa_gke_cluster1_master_cidr = "100.64.78.0/28"
boa_gke_cluster2_master_cidr = "100.65.70.0/28"
boa_gke_mci_master_cidr = "100.64.70.0/28"
boa_gke_cluster1_pod_range = "100.64.72.0/22"
boa_gke_cluster2_pod_range = "100.65.64.0/22"
}