devops/quadlets/modules/hetzner/dns/main.tf

53 lines
1.1 KiB
HCL

variable "hdns_token" {}
variable "zone" { default = "fourlights.dev" }
variable "ipv4_address" {}
variable "ipv6_address" {}
variable "root" {}
terraform {
required_providers {
hetznerdns = {
source = "timohirt/hetznerdns"
version = "2.2.0"
}
}
}
provider "hetznerdns" {
apitoken = var.hdns_token
}
resource "hetznerdns_zone" "zone" {
name = var.zone
ttl = 300
}
resource "hetznerdns_record" "server_root_ipv4" {
zone_id = hetznerdns_zone.zone.id
name = var.root == null || var.root == "" ? "@" : var.root
value = var.ipv4_address
type = "A"
}
resource "hetznerdns_record" "server_root_ipv6" {
zone_id = hetznerdns_zone.zone.id
name = var.root == null || var.root == "" ? "@" : var.root
value = var.ipv6_address
type = "AAAA"
}
resource "hetznerdns_record" "server_wildcard" {
zone_id = hetznerdns_zone.zone.id
name = var.root == null || var.root == "" ? "*" : "*.${var.root}"
value = var.root
type = "CNAME"
}
locals {
root_suffix = var.root == null || var.root == "" ? "" : "."
}
output "server_domain" {
value = "${var.root}${local.root_suffix}${var.zone}"
}