1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# locals =====================================================================
data "aws_availability_zones" "available" {
state = "available"
}
data "aws_subnet" "instance" {
for_each = { for k, v in var.instances : k => v.subnet_id }
id = each.value
}
locals {
region_abbr = split("-", data.aws_availability_zones.available.zone_ids[0])[0]
az_name_to_zone_id = zipmap(
data.aws_availability_zones.available.names,
data.aws_availability_zones.available.zone_ids
)
instance_zone_id = {
for k, v in data.aws_subnet.instance : k => local.az_name_to_zone_id[v.availability_zone]
}
instance_names = {
for k, v in var.instances :
k => "${var.name_prefix}-${local.instance_zone_id[k]}-${v.name_suffix}"
}
module_tags = {
managed-by = "terraform"
module-name = "compute:ec2-node"
}
data_volume_map = {
for item in flatten([
for k, v in var.instances : [
for idx, vol in v.data_volumes : {
key = "${k}-data-vol-${format("%02d", idx + 1)}"
instance_key = k
idx = idx
vol = vol
}
]
]) : item.key => item
}
}
|