terraform/namecheap.tf

52 lines
1.1 KiB
Terraform
Raw Normal View History

2022-08-18 18:16:44 +02:00
// https://registry.terraform.io/providers/namecheap/namecheap/latest/docs
2022-08-23 17:16:47 +02:00
variable "caladan-ips" {
type = object({
v4 = string
v6 = string
})
default = {
v4 = "139.162.137.29"
v6 = "2a01:7e01::f03c:92ff:fea2:5d7c"
}
2022-08-18 18:16:44 +02:00
}
2022-08-23 17:19:09 +02:00
// these are subdomains for services hosted on the host named `caladan`
// both A and AAAA records should be made for them pointing to caladan's ipv4
// and ipv6 respectively
variable "caladan-hostnames" {
type = set(string)
default = ["@"]
}
2022-08-18 18:16:44 +02:00
provider "namecheap" {
user_name = "gthar"
api_user = "gthar"
2022-08-23 17:16:47 +02:00
client_ip = var.caladan-ips.v4
2022-08-18 18:16:44 +02:00
use_sandbox = false
}
resource "namecheap_domain_records" "monotremata-xyz" {
domain = "monotremata.xyz"
mode = "MERGE" // maybe eventually move to OVERWRITE
dynamic "record" {
for_each = var.caladan-hostnames
content {
hostname = record.value
type = "A"
2022-08-23 17:16:47 +02:00
address = var.caladan-ips.v4
}
2022-08-18 18:16:44 +02:00
}
2022-08-23 17:16:47 +02:00
dynamic "record" {
for_each = var.caladan-hostnames
content {
hostname = record.value
type = "AAAA"
address = var.caladan-ips.v6
}
}
2022-08-18 18:16:44 +02:00
}