-
Notifications
You must be signed in to change notification settings - Fork 2
/
template_port_mapping.tf
35 lines (34 loc) · 1.36 KB
/
template_port_mapping.tf
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
data "template_file" "_port_mappings" {
# depends_on = ["data.template_file._port_mapping"]
template = <<JSON
$${val}
JSON
#host_port == "__NOT_DEFINED__" && container_port == "__NOT_DEFINED__" && protocol == "__NOT_DEFINED__" ? $${ jsonencode([])} : $${val}
vars {
val = "${join(",\n", data.template_file._port_mapping.*.rendered)}"
host_port = "${ lookup(var.port_mappings[0], "hostPort", "") }"
container_port = "${ lookup(var.port_mappings[0], "containerPort") }"
protocol = "${ lookup(var.port_mappings[0], "protocol", "") }"
}
}
data "template_file" "_port_mapping" {
count = "${ lookup(var.port_mappings[0], "containerPort") == "__NOT_DEFINED__" ? 0 : length(var.port_mappings) }"
template = <<JSON
{
$${join(",\n",
compact(
list(
host_port == "" || host_port == "__NOT_DEFINED__" ? "" : "$${ jsonencode("hostPort") }: $${host_port}",
container_port == "" || container_port == "__NOT_DEFINED__" ? "" : "$${jsonencode("containerPort")}: $${container_port}",
protocol == "" || protocol == "__NOT_DEFINED__" ? "" : "$${ jsonencode("protocol") }: $${jsonencode(protocol)}"
)
)
)}
}
JSON
vars {
host_port = "${ lookup(var.port_mappings[count.index], "hostPort", "") }"
container_port = "${ lookup(var.port_mappings[count.index], "containerPort") }"
protocol = "${ lookup(var.port_mappings[count.index], "protocol", "") }"
}
}