UPD: module now supports more than 2 AZs. Still defaults to 2 for compatibility
This commit is contained in:
parent
14aedda9a9
commit
697ce226d2
@ -1,9 +1,3 @@
|
|||||||
data "aws_caller_identity" "this" {}
|
|
||||||
|
|
||||||
data "aws_availability_zones" "available-az" {
|
|
||||||
state = "available"
|
|
||||||
}
|
|
||||||
|
|
||||||
data "aws_default_tags" "this" {
|
data "aws_default_tags" "this" {
|
||||||
lifecycle {
|
lifecycle {
|
||||||
postcondition {
|
postcondition {
|
||||||
@ -13,29 +7,36 @@ data "aws_default_tags" "this" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data "aws_caller_identity" "this" {}
|
||||||
|
|
||||||
|
data "aws_availability_zones" "available-az" {
|
||||||
|
state = "available"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
locals {
|
locals {
|
||||||
no-az = 2 # hard-coding to 2AZ
|
vpc-cidr = var.vpc-cidr
|
||||||
vpc-cidr = var.vpc-cidr
|
enabled-az-names = slice(data.aws_availability_zones.available-az.names, 0, var.num_azs)
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "aws_subnet" "private-subnets" {
|
resource "aws_subnet" "private-subnets" {
|
||||||
count = length(var.private-subnet-cidrs)
|
count = length(var.private-subnet-cidrs)
|
||||||
vpc_id = aws_vpc.vpc.id
|
vpc_id = aws_vpc.vpc.id
|
||||||
availability_zone = element(data.aws_availability_zones.available-az.names, count.index % 2)
|
availability_zone = element(local.enabled-az-names, count.index)
|
||||||
cidr_block = var.private-subnet-cidrs[count.index]
|
cidr_block = var.private-subnet-cidrs[count.index]
|
||||||
tags = merge(data.aws_default_tags.this.tags, {
|
tags = {
|
||||||
Name = "${var.resource-prefix}-private-${split("-", element(data.aws_availability_zones.available-az.names, count.index))[2]}-${count.index + 1}"
|
Name = "${var.resource-prefix}-private-${split("-", element(local.enabled-az-names, count.index))[2]}-${count.index + 1}"
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "aws_subnet" "public-subnets" {
|
resource "aws_subnet" "public-subnets" {
|
||||||
count = length(var.public-subnet-cidrs)
|
count = length(var.public-subnet-cidrs)
|
||||||
vpc_id = aws_vpc.vpc.id
|
vpc_id = aws_vpc.vpc.id
|
||||||
availability_zone = element(data.aws_availability_zones.available-az.names, count.index % 2)
|
availability_zone = element(local.enabled-az-names, count.index)
|
||||||
cidr_block = var.public-subnet-cidrs[count.index]
|
cidr_block = var.public-subnet-cidrs[count.index]
|
||||||
tags = merge(data.aws_default_tags.this.tags, {
|
tags = {
|
||||||
Name = "${var.resource-prefix}-public-${split("-", element(data.aws_availability_zones.available-az.names, count.index))[2]}-${count.index + 1}"
|
Name = "${var.resource-prefix}-public-${split("-", element(local.enabled-az-names, count.index))[2]}-${count.index + 1}"
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "aws_vpc" "vpc" {
|
resource "aws_vpc" "vpc" {
|
||||||
|
@ -34,4 +34,10 @@ variable "secondary_cidr_blocks" {
|
|||||||
type = list(string)
|
type = list(string)
|
||||||
description = "Additional cidr blocks"
|
description = "Additional cidr blocks"
|
||||||
default = []
|
default = []
|
||||||
|
}
|
||||||
|
|
||||||
|
variable num_azs {
|
||||||
|
description = "By default, use 2 AZs for redundancy"
|
||||||
|
type = number
|
||||||
|
default = 2
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user