certificate.tf 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. lifecycle {
  8. create_before_destroy = true
  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 = "sensu.${var.dns_info["public"]["zone"]}"
  37. validation_method = "DNS"
  38. lifecycle {
  39. create_before_destroy = true
  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. }