certificate.tf 2.2 KB

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