certificate.tf 2.5 KB

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