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
|
# locals =====================================================================
data "aws_availability_zones" "available" {
state = "available"
}
locals {
region_abbr = split("-", data.aws_availability_zones.available.zone_ids[0])[0]
is_alb = var.load_balancer_type == "application"
is_nlb = var.load_balancer_type == "network"
lb_name = "${var.name_prefix}-${local.region_abbr}-${var.load_balancer_type == "application" ? "alb" : "nlb"}-${var.name_suffix}"
module_tags = {
managed-by = "terraform"
module-name = "compute:lb-standard"
}
target_group_names = {
for k, v in var.target_groups :
k => "${var.name_prefix}-${local.region_abbr}-tg-${v.name_suffix}"
}
listener_keys = {
for k, v in var.listeners :
k => "${local.lb_name}-listener-${v.port}"
}
target_attachments = {
for item in flatten([
for tg_key, tg in var.target_groups : [
for target_key, target in tg.targets : {
key = "${tg_key}-${target_key}"
target_group_key = tg_key
target_id = target.id
port = target.port
}
]
]) : item.key => item
}
}
|