53 lines
1.1 KiB
HCL
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}"
|
|
} |