mirror of
https://github.com/2martens/terraform.git
synced 2026-10-17 17:06:52 +02:00
refactor: Support multiple mx records per domain
This commit is contained in:
@@ -29,17 +29,16 @@ resource "hcloud_zone_rrset" "aaaa" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
resource "hcloud_zone_rrset" "mx" {
|
resource "hcloud_zone_rrset" "mx" {
|
||||||
count = var.hasMXRecord ? 1 : 0
|
count = length(var.mxRecords) > 0 ? 1: 0
|
||||||
|
|
||||||
zone = var.domain
|
zone = var.domain
|
||||||
name = var.subdomain != "" ? var.subdomain : "@"
|
name = var.subdomain != "" ? var.subdomain : "@"
|
||||||
type = "MX"
|
type = "MX"
|
||||||
ttl = 3600
|
ttl = 3600
|
||||||
|
|
||||||
change_protection = true
|
|
||||||
|
|
||||||
records = [
|
records = [
|
||||||
{ value = format("%s %s.", var.mxPrio, var.hostName) }
|
for record in var.mxRecords:
|
||||||
|
{ value = format("%s %s.", record.prio, record.hostname) }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,24 +17,17 @@ variable "subdomain" {
|
|||||||
default = ""
|
default = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "hasMXRecord" {
|
|
||||||
type = bool
|
|
||||||
default = false
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "hasIPRecords" {
|
variable "hasIPRecords" {
|
||||||
type = bool
|
type = bool
|
||||||
default = true
|
default = true
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "hostName" {
|
variable "mxRecords" {
|
||||||
type = string
|
type = list(object({
|
||||||
default = ""
|
hostname: string,
|
||||||
}
|
prio: number
|
||||||
|
}))
|
||||||
variable "mxPrio" {
|
default = []
|
||||||
type = number
|
|
||||||
default = 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "txtValues" {
|
variable "txtValues" {
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ module "at_proto_domain" {
|
|||||||
domain = hcloud_zone.twomartens_de.name
|
domain = hcloud_zone.twomartens_de.name
|
||||||
subdomain = "_atproto"
|
subdomain = "_atproto"
|
||||||
hasIPRecords = false
|
hasIPRecords = false
|
||||||
hasMXRecord = false
|
|
||||||
txtValues = [
|
txtValues = [
|
||||||
"did=did:plc:dboupmredm5i3vktwci6nbip"
|
"did=did:plc:dboupmredm5i3vktwci6nbip"
|
||||||
]
|
]
|
||||||
|
|||||||
+22
-19
@@ -1,13 +1,14 @@
|
|||||||
// Identity management
|
// Identity management
|
||||||
module "keycloak_domain" {
|
module "keycloak_domain" {
|
||||||
source = "./modules/domain"
|
source = "./modules/domain"
|
||||||
domain = hcloud_zone.twomartens_de.name
|
domain = hcloud_zone.twomartens_de.name
|
||||||
subdomain = "id"
|
subdomain = "id"
|
||||||
ipv4 = "95.143.172.184"
|
ipv4 = "95.143.172.184"
|
||||||
ipv6 = "2001:1a50:11:0:98b3:92ff:fe3e:bba1"
|
ipv6 = "2001:1a50:11:0:98b3:92ff:fe3e:bba1"
|
||||||
hasMXRecord = true
|
mxRecords = [{
|
||||||
hostName = "monoceres.uberspace.de"
|
hostname : "monoceres.uberspace.de"
|
||||||
mxPrio = 0
|
prio : 0
|
||||||
|
}]
|
||||||
txtValues = ["v=spf1 include:spf.uberspace.de ~all"]
|
txtValues = ["v=spf1 include:spf.uberspace.de ~all"]
|
||||||
uberspaceDomainKey = "v=DKIM1;t=s;n=core;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqs3bFL8W77z7VJHCFbsJ3o68Y1uBbVsbIS1y35CMfRv6wp7si7aIG2ZeKqzdh2dTMsvtvSMaYVq1gT/EtRmTbU/BYC21ff8sqcVqn/ll5nNsk5jKWXTYAlTQp4LBQN7icw94ZNGr5/SDYcnv2nsBYFf2GUviObWXGHX4RaBFNj9NVUNWNin/HicvW+LsbfYq37QtlhjmUn9K96VCwKcTV1mx+Ek0osErYefcOVNawqWIlVRQDLkHZhk1StLsOpRqV+qEjhzTk4n4ZiNtLJG1D9CpHl24d5DKsQDyVFdEfqHimFTSNgiitlkuXg+i+NMiRA9G3gNJtvw8uvfN8f+stQIDAQAB"
|
uberspaceDomainKey = "v=DKIM1;t=s;n=core;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqs3bFL8W77z7VJHCFbsJ3o68Y1uBbVsbIS1y35CMfRv6wp7si7aIG2ZeKqzdh2dTMsvtvSMaYVq1gT/EtRmTbU/BYC21ff8sqcVqn/ll5nNsk5jKWXTYAlTQp4LBQN7icw94ZNGr5/SDYcnv2nsBYFf2GUviObWXGHX4RaBFNj9NVUNWNin/HicvW+LsbfYq37QtlhjmUn9K96VCwKcTV1mx+Ek0osErYefcOVNawqWIlVRQDLkHZhk1StLsOpRqV+qEjhzTk4n4ZiNtLJG1D9CpHl24d5DKsQDyVFdEfqHimFTSNgiitlkuXg+i+NMiRA9G3gNJtvw8uvfN8f+stQIDAQAB"
|
||||||
}
|
}
|
||||||
@@ -49,14 +50,15 @@ module "statping_domain" {
|
|||||||
|
|
||||||
// Personal Website
|
// Personal Website
|
||||||
module "personal_website_domain" {
|
module "personal_website_domain" {
|
||||||
source = "./modules/domain"
|
source = "./modules/domain"
|
||||||
domain = hcloud_zone.twomartens_de.name
|
domain = hcloud_zone.twomartens_de.name
|
||||||
subdomain = ""
|
subdomain = ""
|
||||||
ipv4 = "185.26.156.65"
|
ipv4 = "185.26.156.65"
|
||||||
ipv6 = "2a00:d0c0:200:0:b9:1a:9c:40"
|
ipv6 = "2a00:d0c0:200:0:b9:1a:9c:40"
|
||||||
hasMXRecord = true
|
mxRecords = [{
|
||||||
hostName = "howell.uberspace.de"
|
hostname : "howell.uberspace.de"
|
||||||
mxPrio = 0
|
prio : 0
|
||||||
|
}]
|
||||||
txtValues = [
|
txtValues = [
|
||||||
"openai-domain-verification=dv-EcR0SCNAnUYVquVZVgb21Wdt",
|
"openai-domain-verification=dv-EcR0SCNAnUYVquVZVgb21Wdt",
|
||||||
"google-site-verification=nUFiHQFxBpBMdX96ELH3TcfyIfXf2ZlwMFYtXjVq5lo",
|
"google-site-verification=nUFiHQFxBpBMdX96ELH3TcfyIfXf2ZlwMFYtXjVq5lo",
|
||||||
@@ -86,9 +88,10 @@ module "appreview_domain" {
|
|||||||
subdomain = "appreview"
|
subdomain = "appreview"
|
||||||
|
|
||||||
hasIPRecords = false
|
hasIPRecords = false
|
||||||
hasMXRecord = true
|
mxRecords = [{
|
||||||
hostName = "wolf.uberspace.de"
|
hostname : "wolf.uberspace.de"
|
||||||
mxPrio = 0
|
prio : 0
|
||||||
|
}]
|
||||||
txtValues = [
|
txtValues = [
|
||||||
"v=spf1 include:spf.uberspace.de ~all"
|
"v=spf1 include:spf.uberspace.de ~all"
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user