diff --git a/examples/selectvpc/main.tf b/examples/selectvpc/main.tf index 05bcf9b..6ad4529 100644 --- a/examples/selectvpc/main.tf +++ b/examples/selectvpc/main.tf @@ -22,7 +22,7 @@ locals { module "setup" { source = "../../" vpc_name = "${local.project_name}-vpc" - vpc_cidr = "10.0.255.0/24" + vpc_cidr = "10.0.0.0/16" subnet_use_strategy = "skip" } diff --git a/main.tf b/main.tf index 36b6aff..21f6214 100644 --- a/main.tf +++ b/main.tf @@ -47,11 +47,18 @@ locals { vpc_cidr = var.vpc_cidr # subnet - subnets = var.subnets - subnet_names = keys(local.subnets) - subnet_count = length(local.subnets) - newbits = (local.subnet_count > 1 ? ceil(log(local.subnet_count, 2)) : 1) - vpc_cidr_split = [for i in range(local.subnet_count) : cidrsubnet(local.vpc_cidr, local.newbits, i)] + subnets = var.subnets + subnet_names = keys(local.subnets) + subnet_count = length(local.subnets) + newbits = (local.subnet_count > 1 ? ceil(log(local.subnet_count, 2)) : 1) + vpc_cidr_split = [ + for i in range(local.subnet_count) : + cidrsubnet( + (local.vpc_mod == 1 ? module.vpc[0].cidr : local.vpc_cidr), + local.newbits, + i + ) + ] potential_regional_subnets = { for i in range(local.subnet_count) : local.subnet_names[i] => local.vpc_cidr_split[i] } zones = tolist(data.aws_availability_zones.available.names) diff --git a/modules/vpc/outputs.tf b/modules/vpc/outputs.tf index c0b48f1..33770ca 100644 --- a/modules/vpc/outputs.tf +++ b/modules/vpc/outputs.tf @@ -3,4 +3,7 @@ output "id" { } output "vpc" { value = (local.select == 1 ? data.aws_vpc.selected[0] : aws_vpc.new[0]) -} \ No newline at end of file +} +output "cidr" { + value = (local.select == 1 ? data.aws_vpc.selected[0].cidr_block : aws_vpc.new[0].cidr_block) +}