-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tf
37 lines (30 loc) · 1.27 KB
/
main.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
36
37
# create zone and non alb/cloudfront dns records
module "zone_and_records" {
source = "./modules/route53"
zone = var.zone
create_zone = var.create_zone
private_zone = var.private_zone
records = [for record in var.records : {
name = record.name
type = lookup(record, "type", "A")
value = coalesce(lookup(record, "value", null), [])
} if !contains(["alb", "cdn"], record.target_type)]
}
# alb records
module "alb_records" {
source = "./modules/record-alias-alb"
for_each = { for record in var.records : "${record.name}-${record.set_identifier == null ? "primary" : record.set_identifier}" => record if record.target_type == "alb" }
zone_id = module.zone_and_records.zone_id
name = each.value.name
alb = each.value.alb
geolocation_routing_policy = try(each.value.geolocation_routing_policy, {})
set_identifier = try(each.value.set_identifier, null)
}
# cloudfront records
module "cdn_records" {
source = "./modules/record-alias-cdn"
for_each = { for record in var.records : record.name => record if record.target_type == "cdn" }
zone_id = module.zone_and_records.zone_id
name = each.value.name
distribution_id = each.value.distribution_id
}