1
1
locals {
2
2
all_domains = concat ([var . domain_name . domain ], [
3
- for v in var . subject_alternative_names : v . domain
3
+ for v in var . subject_alternative_names : v . domain
4
4
])
5
5
all_zones = concat ([var . domain_name . zone ], [
6
- for v in var . subject_alternative_names : v . zone
7
- ])
8
- distinct_zones = distinct (local. all_zones )
9
- distinct_domains = distinct ([
10
- for domain in local . all_domains : replace (domain, " *." , " " )
6
+ for v in var . subject_alternative_names : v . zone
11
7
])
8
+ distinct_zones = distinct (local. all_zones )
12
9
zone_name_to_id_map = zipmap (local. distinct_zones , data. aws_route53_zone . self [* ]. zone_id )
13
- domain_to_zone_map = zipmap (local. all_domains , local. all_zones )
10
+ domain_to_zone_map = zipmap (local. all_domains , local. all_zones )
14
11
15
12
cert_san = reverse (sort ([
16
- for v in var . subject_alternative_names : v . domain
13
+ for v in var . subject_alternative_names : v . domain
17
14
]))
18
15
cert_validation_domains = [
19
- for v in aws_acm_certificate . self . domain_validation_options : tomap (v) if contains (local . distinct_domains , replace (v . domain_name , " *. " , " " ) )
16
+ for v in aws_acm_certificate . self . domain_validation_options : tomap (v)
20
17
]
21
18
}
22
19
23
20
data "aws_route53_zone" "self" {
24
21
count = length (local. distinct_zones )
25
22
26
- name = local. distinct_zones [count . index ]
23
+ name = local. distinct_zones [count . index ]
27
24
private_zone = false
28
25
}
29
26
30
27
resource "aws_acm_certificate" "self" {
31
- domain_name = var. domain_name . domain
28
+ domain_name = var. domain_name . domain
32
29
subject_alternative_names = local. cert_san
33
- validation_method = " DNS"
30
+ validation_method = " DNS"
34
31
35
32
tags = var. tags
36
33
@@ -43,8 +40,8 @@ resource "aws_acm_certificate" "self" {
43
40
}
44
41
45
42
resource "aws_route53_record" "validation" {
46
- count = var. validation_set_records ? length (local. distinct_domains ) : 0
47
-
43
+ count = var. validation_set_records ? length (local. cert_validation_domains ) : 0
44
+
48
45
zone_id = lookup (local. zone_name_to_id_map , lookup (local. domain_to_zone_map , local. cert_validation_domains [count . index ][" domain_name" ]))
49
46
name = local. cert_validation_domains [count . index ][" resource_record_name" ]
50
47
type = local. cert_validation_domains [count . index ][" resource_record_type" ]
0 commit comments