certificate.tf 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #----------------------------------------------------------------------------
  2. # Private DNS Certificate
  3. #----------------------------------------------------------------------------
  4. resource "aws_acm_certificate" "cert" {
  5. domain_name = "*.github.${var.dns_info["private"]["zone"]}"
  6. validation_method = "DNS"
  7. subject_alternative_names = [
  8. "github.${var.dns_info["private"]["zone"]}"
  9. ]
  10. tags = merge(var.standard_tags, var.tags)
  11. }
  12. resource "aws_acm_certificate_validation" "cert" {
  13. certificate_arn = aws_acm_certificate.cert.arn
  14. validation_record_fqdns = [for record in aws_route53_record.cert_validation: record.fqdn]
  15. }
  16. resource "aws_route53_record" "cert_validation" {
  17. provider = aws.mdr-common-services-commercial
  18. for_each = {
  19. for dvo in aws_acm_certificate.cert.domain_validation_options : dvo.domain_name => {
  20. name = dvo.resource_record_name
  21. record = dvo.resource_record_value
  22. type = dvo.resource_record_type
  23. }
  24. }
  25. allow_overwrite = true
  26. name = each.value.name
  27. records = [each.value.record]
  28. ttl = 60
  29. type = each.value.type
  30. zone_id = var.dns_info["public"]["zone_id"]
  31. }
  32. #----------------------------------------------------------------------------
  33. # Public DNS Certificate
  34. #----------------------------------------------------------------------------
  35. resource "aws_acm_certificate" "cert_public" {
  36. domain_name = "*.github.${var.dns_info["public"]["zone"]}"
  37. validation_method = "DNS"
  38. subject_alternative_names = [
  39. "github.${var.dns_info["public"]["zone"]}"
  40. ]
  41. tags = merge(var.standard_tags, var.tags)
  42. }
  43. resource "aws_acm_certificate_validation" "cert_public" {
  44. certificate_arn = aws_acm_certificate.cert_public.arn
  45. validation_record_fqdns = [for record in aws_route53_record.cert_validation_public: record.fqdn]
  46. }
  47. resource "aws_route53_record" "cert_validation_public" {
  48. provider = aws.mdr-common-services-commercial
  49. for_each = {
  50. for dvo in aws_acm_certificate.cert_public.domain_validation_options : dvo.domain_name => {
  51. name = dvo.resource_record_name
  52. record = dvo.resource_record_value
  53. type = dvo.resource_record_type
  54. }
  55. }
  56. allow_overwrite = true
  57. name = each.value.name
  58. records = [each.value.record]
  59. ttl = 60
  60. type = each.value.type
  61. zone_id = var.dns_info["public"]["zone_id"]
  62. }