Skip to content

Commit 654205a

Browse files
committed
make subnet cidr block assignment reproducible
1 parent f17d7eb commit 654205a

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

main.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
locals {
2-
all_pub_subnets = merge({"management" = data.aws_availability_zones.available.names[0]}, {for pair in setproduct(var.environments, data.aws_availability_zones.available.names) : "${pair[0]}-${pair[1]}" => pair[1]})
3-
all_priv_subnets = {for pair in setproduct(var.environments, data.aws_availability_zones.available.names) : "${pair[0]}-${pair[1]}" => pair[1]}
2+
all_pub_subnets = merge({"management" = {env = "management", az = data.aws_availability_zones.available.names[0], cidr_block_index = 0}}, {for pair in setproduct(var.environments, data.aws_availability_zones.available.names) : "${pair[0]}-${pair[1]}" => {env = pair[0], az = pair[1], cidr_block_index = 1 + index(data.aws_availability_zones.available.names, pair[1]) + (var.cidr_block_index[pair[0]]) * length(data.aws_availability_zones.available.names)}})
3+
all_priv_subnets = {for pair in setproduct(var.environments, data.aws_availability_zones.available.names) : "${pair[0]}-${pair[1]}" => {env = pair[0], az = pair[1], cidr_block_index = index(data.aws_availability_zones.available.names, pair[1]) + (var.cidr_block_index[pair[0]]) * length(data.aws_availability_zones.available.names)}}
44
}
55

66
module "ubuntu-bionic-ami" {

modules/named-subnets/private.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ module "private_label" {
1515
resource "aws_subnet" "private" {
1616
for_each = local.private_subnet_az_map
1717
vpc_id = var.vpc_id
18-
availability_zone = each.value
19-
cidr_block = cidrsubnet(var.cidr_block, ceil(log(var.max_subnets, 2)), index(keys(local.private_subnet_az_map), each.key))
18+
availability_zone = each.value.az
19+
cidr_block = cidrsubnet(var.cidr_block, ceil(log(var.max_subnets, 2)), each.value.cidr_block_index)
2020

2121
tags = {
2222
"Name" = "${module.private_label.id}${var.delimiter}${each.key}"

modules/named-subnets/public.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ module "public_label" {
1717
resource "aws_subnet" "public" {
1818
for_each = local.public_subnet_az_map
1919
vpc_id = var.vpc_id
20-
availability_zone = each.value
21-
cidr_block = cidrsubnet(var.cidr_block, ceil(log(var.max_subnets, 2)), index(keys(local.public_subnet_az_map), each.key))
20+
availability_zone = each.value.az
21+
cidr_block = cidrsubnet(var.cidr_block, ceil(log(var.max_subnets, 2)), each.value.cidr_block_index)
2222

2323
tags = {
2424
"Name" = "${module.public_label.id}${var.delimiter}${each.key}"

variables.tf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,14 @@ variable "environments" {
7070
default = ["dev"]
7171
}
7272

73+
variable "cidr_block_index" {
74+
description = "map of environments for the tenatn. Each environment will contain an instance of Mojaloop and associated services."
75+
type = map(number)
76+
default = {
77+
"dev" = 0
78+
}
79+
}
80+
7381
variable "public_subnets" {
7482
default = ["gateway", "management", "simulators"]
7583
type = list(string)

0 commit comments

Comments
 (0)