From 2185af67c5ab0b719ceaa7308fe6ec501c539a54 Mon Sep 17 00:00:00 2001 From: Philippe Caseiro Date: Thu, 19 Jan 2023 14:14:52 +0100 Subject: [PATCH] feat(module): adding DNS module This module create entries on a DNS Server with DNSUPDATE. extracted from "Cadoles Production v2 project" --- modules/cadolesDNS/main.tf | 28 ++++++++++++++++++++++++++++ modules/cadolesDNS/outputs.tf | 0 modules/cadolesDNS/variables.tf | 23 +++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 modules/cadolesDNS/main.tf create mode 100644 modules/cadolesDNS/outputs.tf create mode 100644 modules/cadolesDNS/variables.tf diff --git a/modules/cadolesDNS/main.tf b/modules/cadolesDNS/main.tf new file mode 100644 index 0000000..777b588 --- /dev/null +++ b/modules/cadolesDNS/main.tf @@ -0,0 +1,28 @@ +// Dependencies management +resource "null_resource" "depends_on" { + triggers = { + depends_on = join("", var.depends) + } +} + +resource "dns_a_record_set" "a_records" { + for_each = var.dns_a_records + + zone = var.dns_domain + name = each.key + ttl = 300 + + addresses = each.value + depends_on = [ null_resource.depends_on ] +} + +resource "dns_cname_record" "cname_records" { + for_each = var.dns_cname_records + + zone = var.dns_domain + name = each.key + cname = each.value + ttl = 300 + + depends_on = [ null_resource.depends_on ] +} diff --git a/modules/cadolesDNS/outputs.tf b/modules/cadolesDNS/outputs.tf new file mode 100644 index 0000000..e69de29 diff --git a/modules/cadolesDNS/variables.tf b/modules/cadolesDNS/variables.tf new file mode 100644 index 0000000..9f9f51c --- /dev/null +++ b/modules/cadolesDNS/variables.tf @@ -0,0 +1,23 @@ +variable "dns_domain" { + description = "DNS Domain name (FQDN)" + type = string + default = "cadoles.com." +} + +variable "dns_a_records" { + description = "List of dns A records to create" + type = map + default = {} +} + +variable "dns_cname_records" { + description = "List of CNAME entires" + type = map + default = {} +} + +variable "depends" { + description = "List of output_variables for dependences management" + type = list + default = [] +} \ No newline at end of file