From 6ac661b664921a1271a42f7f6b93af53fe061b22 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Fri, 19 Dec 2025 13:49:40 -0600 Subject: [PATCH] update --- terraform/dns_dnsimple_zones.tf | 14 +- terraform/dns_manero.tf | 129 +++++++------- terraform/dns_mcintire.tf | 18 -- terraform/dns_mcintire_dnsimple_TEMP.tf | 118 ------------- terraform/dns_powerdns_zones.tf | 9 +- terraform/dns_vntx_net.tf | 10 ++ terraform/dns_vntx_net_porkbun_TEMP.tf | 85 --------- terraform/dns_vntx_org.tf | 12 ++ terraform/dns_w5isp.tf | 56 +++--- terraform/dns_w5isp_dnsimple_TEMP.tf | 226 ------------------------ terraform/w5isp.tfplan | Bin 64712 -> 0 bytes 11 files changed, 126 insertions(+), 551 deletions(-) delete mode 100644 terraform/dns_mcintire_dnsimple_TEMP.tf delete mode 100644 terraform/dns_vntx_net_porkbun_TEMP.tf create mode 100644 terraform/dns_vntx_org.tf delete mode 100644 terraform/dns_w5isp_dnsimple_TEMP.tf delete mode 100644 terraform/w5isp.tfplan diff --git a/terraform/dns_dnsimple_zones.tf b/terraform/dns_dnsimple_zones.tf index 9fb2ad6..3d150f0 100644 --- a/terraform/dns_dnsimple_zones.tf +++ b/terraform/dns_dnsimple_zones.tf @@ -3,18 +3,10 @@ resource "dnsimple_zone" "gridmap_org" { name = "gridmap.org" } -resource "dnsimple_zone" "manero_org" { - name = "manero.org" -} - -resource "dnsimple_zone" "mcintire_me" { - name = "mcintire.me" -} +# resource "dnsimple_zone" "mcintire_me" { +# name = "mcintire.me" +# } resource "dnsimple_zone" "vntx_net" { name = "vntx.net" } - -resource "dnsimple_zone" "vntx_org" { - name = "vntx.org" -} diff --git a/terraform/dns_manero.tf b/terraform/dns_manero.tf index b4424ec..d02f8b3 100644 --- a/terraform/dns_manero.tf +++ b/terraform/dns_manero.tf @@ -1,79 +1,80 @@ -resource "dnsimple_zone_record" "manero_root_a_1" { - zone_name = "manero.org" - name = "@" - value = "185.199.108.153" - type = "A" - ttl = 3600 +# PowerDNS records for manero.org +# Zone defined in dns_powerdns_zones.tf + +resource "powerdns_record" "manero_soa" { + depends_on = [powerdns_zone.manero_org] + zone = "manero.org." + name = "manero.org." + type = "SOA" + ttl = 3600 + records = ["ns1.as393837.net. graham.mcintire.me. 0 10800 3600 604800 3600"] } -resource "dnsimple_zone_record" "manero_root_a_2" { - zone_name = "manero.org" - name = "@" - value = "185.199.109.153" - type = "A" - ttl = 3600 +# Root A records (GitHub Pages) +resource "powerdns_record" "manero_root_a" { + depends_on = [powerdns_zone.manero_org] + zone = "manero.org." + name = "manero.org." + type = "A" + ttl = 3600 + records = [ + "185.199.108.153", + "185.199.109.153", + "185.199.110.153", + "185.199.111.153" + ] } -resource "dnsimple_zone_record" "manero_root_a_3" { - zone_name = "manero.org" - name = "@" - value = "185.199.110.153" - type = "A" - ttl = 3600 +resource "powerdns_record" "manero_irc_a" { + depends_on = [powerdns_zone.manero_org] + zone = "manero.org." + name = "irc.manero.org." + type = "A" + ttl = 3600 + records = ["149.28.242.178"] } -resource "dnsimple_zone_record" "manero_root_a_4" { - zone_name = "manero.org" - name = "@" - value = "185.199.111.153" - type = "A" - ttl = 3600 +resource "powerdns_record" "manero_us_a" { + depends_on = [powerdns_zone.manero_org] + zone = "manero.org." + name = "us.manero.org." + type = "A" + ttl = 3600 + records = ["149.28.242.178"] } -resource "dnsimple_zone_record" "manero_irc_a" { - zone_name = "manero.org" - name = "irc" - value = "149.28.242.178" - type = "A" - ttl = 3600 +resource "powerdns_record" "manero_us_aaaa" { + depends_on = [powerdns_zone.manero_org] + zone = "manero.org." + name = "us.manero.org." + type = "AAAA" + ttl = 3600 + records = ["2001:19f0:6401:19e6:5400:5ff:fe45:5701"] } -resource "dnsimple_zone_record" "manero_us_a" { - zone_name = "manero.org" - name = "us" - value = "149.28.242.178" - type = "A" - ttl = 3600 +resource "powerdns_record" "manero_ca_a" { + depends_on = [powerdns_zone.manero_org] + zone = "manero.org." + name = "ca.manero.org." + type = "A" + ttl = 3600 + records = ["167.114.209.151"] } -resource "dnsimple_zone_record" "manero_us_aaaa" { - zone_name = "manero.org" - name = "us" - value = "2001:19f0:6401:19e6:5400:5ff:fe45:5701" - type = "AAAA" - ttl = 3600 +resource "powerdns_record" "manero_tankfox_a" { + depends_on = [powerdns_zone.manero_org] + zone = "manero.org." + name = "tankfox.manero.org." + type = "A" + ttl = 3600 + records = ["137.184.202.89"] } -resource "dnsimple_zone_record" "manero_ca_a" { - zone_name = "manero.org" - name = "ca" - value = "167.114.209.151" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "manero_tankfox_a" { - zone_name = "manero.org" - name = "tankfox" - value = "137.184.202.89" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "manero_404" { - zone_name = "manero.org" - name = "404" - value = "404.al" - type = "CNAME" - ttl = 3600 +resource "powerdns_record" "manero_404_cname" { + depends_on = [powerdns_zone.manero_org] + zone = "manero.org." + name = "404.manero.org." + type = "CNAME" + ttl = 3600 + records = ["404.al."] } diff --git a/terraform/dns_mcintire.tf b/terraform/dns_mcintire.tf index 7058664..9eb1058 100644 --- a/terraform/dns_mcintire.tf +++ b/terraform/dns_mcintire.tf @@ -116,21 +116,3 @@ resource "powerdns_record" "mcintire_photos" { ttl = 3600 records = ["204.110.191.8"] } - -resource "powerdns_record" "mcintire_headscale" { - depends_on = [powerdns_zone.mcintire_me] - zone = "mcintire.me." - name = "headscale.mcintire.me." - type = "A" - ttl = 3600 - records = ["66.206.18.166"] -} - -resource "powerdns_record" "mcintire_hs" { - depends_on = [powerdns_zone.mcintire_me] - zone = "mcintire.me." - name = "hs.mcintire.me." - type = "A" - ttl = 3600 - records = ["66.206.18.166"] -} diff --git a/terraform/dns_mcintire_dnsimple_TEMP.tf b/terraform/dns_mcintire_dnsimple_TEMP.tf deleted file mode 100644 index e35d743..0000000 --- a/terraform/dns_mcintire_dnsimple_TEMP.tf +++ /dev/null @@ -1,118 +0,0 @@ -# DNS configuration for mcintire.me domain (DNSimple) -# Mail records point to Mailcow on mail.w5isp.com - -# Note: DNSimple manages SOA automatically, no need to define it - -# Mailcow MX records -resource "dnsimple_zone_record" "mcintire_mx_mailcow" { - zone_name = "mcintire.me" - name = "" - value = "mail.w5isp.com." - type = "MX" - ttl = 3600 - priority = 10 -} - -resource "dnsimple_zone_record" "mcintire_mx_backup" { - zone_name = "mcintire.me" - name = "" - value = "mail.nsnw.ca." - type = "MX" - ttl = 3600 - priority = 20 -} - -resource "dnsimple_zone_record" "mcintire_cname_test" { - zone_name = "mcintire.me" - name = "*.test" - value = "cname.bookappt.link." - type = "CNAME" - ttl = 14400 -} - -# Mail server -resource "dnsimple_zone_record" "mcintire_mail" { - zone_name = "mcintire.me" - name = "mail" - value = "204.110.191.5" - type = "A" - ttl = 3600 -} - -# Autodiscover for mail clients -resource "dnsimple_zone_record" "mcintire_autodiscover" { - zone_name = "mcintire.me" - name = "autodiscover" - value = "mail.w5isp.com." - type = "CNAME" - ttl = 3600 -} - -# Autodiscover SRV record -resource "dnsimple_zone_record" "mcintire_autodiscover_srv" { - zone_name = "mcintire.me" - name = "_autodiscover._tcp" - value = "0 0 443 mail.w5isp.com." - type = "SRV" - ttl = 3600 -} - -# Autoconfig for mail clients -resource "dnsimple_zone_record" "mcintire_autoconfig" { - zone_name = "mcintire.me" - name = "autoconfig" - value = "mail.w5isp.com." - type = "CNAME" - ttl = 3600 -} - -# SPF record for Mailcow -resource "dnsimple_zone_record" "mcintire_spf_mailcow" { - zone_name = "mcintire.me" - name = "" - value = "v=spf1 mx a ip4:204.110.191.5 ~all" - type = "TXT" - ttl = 3600 -} - -# DMARC record for Mailcow -resource "dnsimple_zone_record" "mcintire_dmarc_mailcow" { - zone_name = "mcintire.me" - name = "_dmarc" - value = "v=DMARC1; p=quarantine; rua=mailto:postmaster@mcintire.me; ruf=mailto:postmaster@mcintire.me; fo=1" - type = "TXT" - ttl = 3600 -} - -# DKIM record from Mailcow -resource "dnsimple_zone_record" "mcintire_dkim_mailcow" { - zone_name = "mcintire.me" - name = "dkim._domainkey" - value = "v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0rQie7Hz5AmDbVUX+rKNgp6Hf7crtWyfy6qKbqnrxmmernz1rQ6HyOrHhFAlc8nVLNKr8XP2DOROb1jAnrjndZo9I/ymbrrrCBsi9w6zAht2BheijO/R9k5CDRjeSafm6bg0oMKihtNMIdXvEj9ND8hDpZZKxtOrKFH7zLm4CPmm7jf0gqZH2yK+AA3OYUGSYa1OT0LtdMXadk0IVOI2VYf37Hzb3RUvGOYMVkT0xi+23DiyFk7AyCiyv3LQVBMT+/bwyd4k3yVVn2cr9+Nor+HXVjqASLtqcFLMf1SuX0ezSAjBG7BbqQr5G6Jz+n5YglqEIUKVYzJFE7JdDmqQYQIDAQAB" - type = "TXT" - ttl = 3600 -} - -resource "dnsimple_zone_record" "mcintire_photos" { - zone_name = "mcintire.me" - name = "photos" - value = "204.110.191.8" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "mcintire_headscale" { - zone_name = "mcintire.me" - name = "headscale" - value = "66.206.18.166" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "mcintire_hs" { - zone_name = "mcintire.me" - name = "hs" - value = "66.206.18.166" - type = "A" - ttl = 3600 -} diff --git a/terraform/dns_powerdns_zones.tf b/terraform/dns_powerdns_zones.tf index a34964b..8db611d 100644 --- a/terraform/dns_powerdns_zones.tf +++ b/terraform/dns_powerdns_zones.tf @@ -1,7 +1,7 @@ # Vultr PowerDNS Zones # All zones managed on the Vultr PowerDNS instance -resource "powerdns_zone" "w5isp" { +resource "powerdns_zone" "w5isp_com" { name = "w5isp.com." kind = "Native" soa_edit_api = "DEFAULT" @@ -64,3 +64,10 @@ resource "powerdns_zone" "vntx_org" { soa_edit_api = "DEFAULT" nameservers = ["ns1.as393837.net.", "ns-global.kjsl.com."] } + +resource "powerdns_zone" "manero_org" { + name = "manero.org." + kind = "Native" + soa_edit_api = "DEFAULT" + nameservers = ["ns1.as393837.net.", "ns-global.kjsl.com."] +} diff --git a/terraform/dns_vntx_net.tf b/terraform/dns_vntx_net.tf index 1f4b374..7e8c8c8 100644 --- a/terraform/dns_vntx_net.tf +++ b/terraform/dns_vntx_net.tf @@ -1,3 +1,13 @@ +# SOA record for vntx.net +resource "powerdns_record" "vntx_net_soa" { + depends_on = [powerdns_zone.vntx_net] + zone = "vntx.net." + name = "vntx.net." + type = "SOA" + ttl = 3600 + records = ["ns1.as393837.net. graham.mcintire.me. 0 10800 3600 604800 3600"] +} + resource "powerdns_record" "vntx_a_records" { for_each = { # Subnet: 204.110.188.0/24 diff --git a/terraform/dns_vntx_net_porkbun_TEMP.tf b/terraform/dns_vntx_net_porkbun_TEMP.tf deleted file mode 100644 index ad9f4c4..0000000 --- a/terraform/dns_vntx_net_porkbun_TEMP.tf +++ /dev/null @@ -1,85 +0,0 @@ -# TEMPORARY FILE - vntx.net Porkbun configuration -# Forward records for reverse DNS zones removed (*.client A records) -# Contains TXT and CNAME records only - -resource "porkbun_dns_record" "vntx_txt_records" { - for_each = { - "_twilio" = "twilio-domain-verification=12bf63d61b86412618bdb4ab6c2b287a" - "_dmarc" = "v=DMARC1; p=none" - "_updown" = "updown-page=p/34yuc" - "_github-challenge-vntx" = "34ea2705e4" - "_github-pages-challenge-gmcintire" = "d125f4244edd0120ee0fa073d3acf1" - "krs._domainkey.mg" = "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHbWtJ5uPGEOPmJrT36WBXKxVL0b4fqjIM4n6oXK4zaUucqYp7jeoKG+FTO5XEjyja7hsP9WahntUrVb8WI5V6Cj0CznesMrM7oQRntcyuy8mSD1zilmZe4q2Kc65gj2MRrkg3tkJfogXHNz2rxmquNu/DxsFLeQP8a2E5tYXVFwIDAQAB" - "mandrill._domainkey" = "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrLHiExVd55zd/IQ/J/mRwSRMAocV/hMB3jXwaHH36d9NaVynQFYV8NaWi69c1veUtRzGt7yAioXqLj7Z4TeEUoOLgrKsn8YnckGs9i3B3tVFB+Ch/4mPhXWiNfNdynHWBcPcbJ8kjEQ2U8y78dHZj1YeRXXVvWob2OaKynO8/lQIDAQAB;" - "mg" = "v=spf1 include:mailgun.org ~all" - "o365" = "v=spf1 include:spf.protection.outlook.com -all" - "spf" = "v=spf1 include:_spf.google.com include:spf.mandrillapp.com ~all" - "@" = "google-site-verification=RD-gYkKRPw1TSIzHRAuJljZ7Xee6uDGGkFvL6XmSjs0" - "detectify-verification" = "7c06e001f2f39c59564baabd497360e2" - "keybase-site-verification" = "xNV8FawC3MsGF70UNFKaKQUUOyQvjeL0DMK_RMQQ-_Q" - "MS" = "ms84271221" - "have-i-been-pwned-verification" = "beb9c178a27aaaaa007c4c84d64dccf5" - } - - domain = "vntx.net" - name = each.key - content = each.value - type = "TXT" - ttl = 3600 - priority = 0 -} - -# resource "porkbun_dns_record" "vntx_srv1" { -# domain = "vntx.net" -# name = "_sipfederationtls._tcp.o365" -# type = "SRV" -# priority = 100 -# content = "5061 sipfed.online.lync.com." -# ttl = 3600 -# } - - -# SRV("_sip._tls.o365", 100, 1, 443, "sipdir.online.lync.com.", TTL(3600)), - -resource "porkbun_dns_record" "vntx_cname_records" { - for_each = { - "mte1._domainkey" = "dkim1.mandrillapp.com." - "mte2._domainkey" = "dkim2.mandrillapp.com." - "em924886" = "return.smtp2go.net." - "s924886._domainkey" = "dkim.smtp2go.net." - "link" = "track.smtp2go.net." - "_83337805c305955c6823504cc5e6ca29" = "_baf97cdcc7b6458fa5719e4261e9932f.sdgjtdhdhz.acm-validations.aws." - "activate" = "verona-networks-checkout.gaiia-consumer.com." - "portal" = "verona-networks-clientportal.gaiia-consumer.com." - "url9812" = "sendgrid.net." - "url62" = "sendgrid.net." - "177982" = "sendgrid.net." - "_4080c249b6e72dd04f2a9508aa1a1b7f.kivrak" = "_de3e5d511f3869bbd271b935a3b4f973.tljzshvwok.acm-validations.aws." - "4809fce066c3da4d14197c7276ba083f.irc" = "b58bf151af520d34d8fad99d05274cb536893031.comodoca.com." - "9p83fpanfdgs8xdgcnzd" = "verify.squarespace.com." - "autodiscover.o365" = "autodiscover.outlook.com." - "autodiscover" = "autodiscover.outlook.com." - "_bc1077259b1fbbb11c1e16756e1883f9.irc" = "793f217a963b25f361ec1975e0fd7d54.dc2ec86a36550aed25a0011c0b2b044b.62f7abe714ec1.comodoca.com." - "em9279" = "u177982.wl233.sendgrid.net." - "email.mg" = "mailgun.org." - "email" = "mandrillapp.com." - "enterpriseenrollment.o365" = "enterpriseenrollment.manage.microsoft.com." - "enterpriseregistration.o365" = "enterpriseregistration.windows.net." - "lyncdiscover.o365" = "webdir.online.lync.com." - "s1._domainkey" = "s1.domainkey.u177982.wl233.sendgrid.net." - "s2._domainkey" = "s2.domainkey.u177982.wl233.sendgrid.net." - "sip.o365" = "sipdir.online.lync.com." - "www" = "ext-cust.squarespace.com." - "uptime" = "page.updown.io." - "status" = "stats.uptimerobot.com." - "ntp" = "0.us.pool.ntp.org." - "iptrack" = "dokku.w5isp.com." - } - - domain = "vntx.net" - name = each.key - content = each.value - type = "CNAME" - ttl = 3600 - priority = 0 -} diff --git a/terraform/dns_vntx_org.tf b/terraform/dns_vntx_org.tf new file mode 100644 index 0000000..b5ff35a --- /dev/null +++ b/terraform/dns_vntx_org.tf @@ -0,0 +1,12 @@ +# DNS records for vntx.org domain +# Zone defined in dns_powerdns_zones.tf + +# SOA record for vntx.org +resource "powerdns_record" "vntx_org_soa" { + depends_on = [powerdns_zone.vntx_org] + zone = "vntx.org." + name = "vntx.org." + type = "SOA" + ttl = 3600 + records = ["ns1.as393837.net. graham.mcintire.me. 0 10800 3600 604800 3600"] +} diff --git a/terraform/dns_w5isp.tf b/terraform/dns_w5isp.tf index d04ae7c..080119b 100644 --- a/terraform/dns_w5isp.tf +++ b/terraform/dns_w5isp.tf @@ -1,5 +1,5 @@ resource "powerdns_record" "w5isp_soa" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "w5isp.com." type = "SOA" @@ -8,7 +8,7 @@ resource "powerdns_record" "w5isp_soa" { } resource "powerdns_record" "w5isp_root" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "w5isp.com." type = "A" @@ -17,7 +17,7 @@ resource "powerdns_record" "w5isp_root" { } resource "powerdns_record" "w5isp_git" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "git.w5isp.com." type = "A" @@ -26,7 +26,7 @@ resource "powerdns_record" "w5isp_git" { } resource "powerdns_record" "w5isp_home" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "home.w5isp.com." type = "A" @@ -35,7 +35,7 @@ resource "powerdns_record" "w5isp_home" { } resource "powerdns_record" "w5isp_photos" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "photos.w5isp.com." type = "A" @@ -44,7 +44,7 @@ resource "powerdns_record" "w5isp_photos" { } resource "powerdns_record" "w5isp_skippy" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "skippy.w5isp.com." type = "A" @@ -53,7 +53,7 @@ resource "powerdns_record" "w5isp_skippy" { } resource "powerdns_record" "w5isp_ha" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "ha.w5isp.com." type = "CNAME" @@ -62,7 +62,7 @@ resource "powerdns_record" "w5isp_ha" { } resource "powerdns_record" "w5isp_mx1" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "w5isp.com." type = "MX" @@ -71,7 +71,7 @@ resource "powerdns_record" "w5isp_mx1" { } resource "powerdns_record" "w5isp_txt" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "w5isp.com." type = "TXT" @@ -81,7 +81,7 @@ resource "powerdns_record" "w5isp_txt" { # DKIM record resource "powerdns_record" "w5isp_dkim" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "dkim._domainkey.w5isp.com." type = "TXT" @@ -90,7 +90,7 @@ resource "powerdns_record" "w5isp_dkim" { } resource "powerdns_record" "w5isp_g" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "g.w5isp.com." type = "A" @@ -99,7 +99,7 @@ resource "powerdns_record" "w5isp_g" { } resource "powerdns_record" "w5isp_truck" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "truck.w5isp.com." type = "CNAME" @@ -108,7 +108,7 @@ resource "powerdns_record" "w5isp_truck" { } resource "powerdns_record" "w5isp_sendgrid1" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "em40.w5isp.com." type = "CNAME" @@ -117,7 +117,7 @@ resource "powerdns_record" "w5isp_sendgrid1" { } resource "powerdns_record" "w5isp_sendgrid2" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "s1._domainkey.w5isp.com." type = "CNAME" @@ -126,7 +126,7 @@ resource "powerdns_record" "w5isp_sendgrid2" { } resource "powerdns_record" "w5isp_sendgrid3" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "s2._domainkey.w5isp.com." type = "CNAME" @@ -135,7 +135,7 @@ resource "powerdns_record" "w5isp_sendgrid3" { } resource "powerdns_record" "w5isp_dmarc" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "_dmarc.w5isp.com." type = "TXT" @@ -145,7 +145,7 @@ resource "powerdns_record" "w5isp_dmarc" { # Mail server resource "powerdns_record" "w5isp_mail" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "mail.w5isp.com." type = "A" @@ -154,7 +154,7 @@ resource "powerdns_record" "w5isp_mail" { } resource "powerdns_record" "w5isp_sync" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "sync.w5isp.com." type = "A" @@ -163,7 +163,7 @@ resource "powerdns_record" "w5isp_sync" { } resource "powerdns_record" "w5isp_log" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "log.w5isp.com." type = "CNAME" @@ -172,7 +172,7 @@ resource "powerdns_record" "w5isp_log" { } resource "powerdns_record" "w5isp_autodiscover" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "autodiscover.w5isp.com." type = "CNAME" @@ -181,7 +181,7 @@ resource "powerdns_record" "w5isp_autodiscover" { } resource "powerdns_record" "w5isp_autodiscover_srv" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "_autodiscover._tcp.w5isp.com." type = "SRV" @@ -190,7 +190,7 @@ resource "powerdns_record" "w5isp_autodiscover_srv" { } resource "powerdns_record" "w5isp_autoconfig" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "autoconfig.w5isp.com." type = "CNAME" @@ -199,7 +199,7 @@ resource "powerdns_record" "w5isp_autoconfig" { } resource "powerdns_record" "w5isp_n8n" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "n8n.w5isp.com." type = "A" @@ -208,7 +208,7 @@ resource "powerdns_record" "w5isp_n8n" { } resource "powerdns_record" "w5isp_nodered" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "nodered.w5isp.com." type = "A" @@ -217,7 +217,7 @@ resource "powerdns_record" "w5isp_nodered" { } resource "powerdns_record" "w5isp_headscale" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "headscale.w5isp.com." type = "A" @@ -226,7 +226,7 @@ resource "powerdns_record" "w5isp_headscale" { } resource "powerdns_record" "w5isp_hs" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "hs.w5isp.com." type = "A" @@ -235,7 +235,7 @@ resource "powerdns_record" "w5isp_hs" { } resource "powerdns_record" "w5isp_dokku" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "dokku.w5isp.com." type = "A" @@ -244,7 +244,7 @@ resource "powerdns_record" "w5isp_dokku" { } resource "powerdns_record" "w5isp_camper" { - depends_on = [powerdns_zone.w5isp] + depends_on = [powerdns_zone.w5isp_com] zone = "w5isp.com." name = "camper.w5isp.com." type = "CNAME" diff --git a/terraform/dns_w5isp_dnsimple_TEMP.tf b/terraform/dns_w5isp_dnsimple_TEMP.tf deleted file mode 100644 index b6abf40..0000000 --- a/terraform/dns_w5isp_dnsimple_TEMP.tf +++ /dev/null @@ -1,226 +0,0 @@ -# TEMPORARY FILE - w5isp.com DNSimple configuration -# This is a backup/reference of w5isp.com in DNSimple format - -resource "dnsimple_zone" "w5isp_com" { - name = "w5isp.com" -} - -resource "dnsimple_zone_record" "w5isp_root" { - zone_name = "w5isp.com" - name = "" - value = "204.110.191.5" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_git" { - zone_name = "w5isp.com" - name = "git" - value = "66.206.18.163" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_home" { - zone_name = "w5isp.com" - name = "home" - value = "204.110.191.1" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_photos" { - zone_name = "w5isp.com" - name = "photos" - value = "204.110.191.8" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_skippy" { - zone_name = "w5isp.com" - name = "skippy" - value = "204.110.191.8" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_ha" { - zone_name = "w5isp.com" - name = "ha" - value = "q1l09qiycnaagngmjsg1qas0rhqcfoou.ui.nabu.casa" - type = "CNAME" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_mx1" { - zone_name = "w5isp.com" - name = "" - priority = 10 - value = "mail.w5isp.com" - type = "MX" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_txt" { - zone_name = "w5isp.com" - name = "" - value = "v=spf1 mx a ip4:204.110.191.5 ~all" - type = "TXT" - ttl = 3600 -} - -# DKIM record -resource "dnsimple_zone_record" "w5isp_dkim" { - zone_name = "w5isp.com" - name = "dkim._domainkey" - value = "v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxti2t8TvzIqKF9BpKn3rQExKg3sS1SyQuwtQgL0r/ELEJ0D9cKU/iM+eB1ROJctKHoMqKDJoRCMP6eibFcgq2kLKqf+aceEOIBx2OK2WCXML+CNqQZA6yO+A8/Jq7iFZPq8D5FmOoxbwRZkso7CkSennSz/+F7nBPI/OfyEiiI4xJzWH3t8SaAkkcy46O+1K0iCkTpsthon7E2PHa3SPkrjbep/5NImTJLK5LuffiLJtLsiK+73mvsAYCDmrNxPTaDjXkj0TWdKl/d/TnlVJl+YloqWIDt/7LtZQM0C7GZ9flIr7z9hHpSWERXAA5Gj5NQ0/hcY3nF4dPoqWs3VeeQIDAQAB" - type = "TXT" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_g" { - zone_name = "w5isp.com" - name = "g" - value = "204.110.191.5" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_truck" { - zone_name = "w5isp.com" - name = "truck" - value = "g.w5isp.com." - type = "CNAME" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_sendgrid1" { - zone_name = "w5isp.com" - name = "em40" - value = "u177982.wl233.sendgrid.net" - type = "CNAME" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_sendgrid2" { - zone_name = "w5isp.com" - name = "s1._domainkey" - value = "s1.domainkey.u177982.wl233.sendgrid.net." - type = "CNAME" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_sendgrid3" { - zone_name = "w5isp.com" - name = "s2._domainkey" - value = "s2.domainkey.u177982.wl233.sendgrid.net." - type = "CNAME" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_dmarc" { - zone_name = "w5isp.com" - name = "_dmarc" - value = "v=DMARC1; p=quarantine; rua=mailto:postmaster@w5isp.com; ruf=mailto:postmaster@w5isp.com; fo=1" - type = "TXT" - ttl = 3600 -} - -# Mail server -resource "dnsimple_zone_record" "w5isp_mail" { - zone_name = "w5isp.com" - name = "mail" - value = "204.110.191.5" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_sync" { - zone_name = "w5isp.com" - name = "sync" - value = "204.110.191.216" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_log" { - zone_name = "w5isp.com" - name = "log" - value = "g.w5isp.com" - type = "CNAME" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_autodiscover" { - zone_name = "w5isp.com" - name = "autodiscover" - value = "mail.w5isp.com" - type = "CNAME" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_autodiscover_srv" { - zone_name = "w5isp.com" - name = "_autodiscover._tcp" - value = "0 443 mail.w5isp.com" - type = "SRV" - priority = 0 - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_autoconfig" { - zone_name = "w5isp.com" - name = "autoconfig" - value = "mail.w5isp.com" - type = "CNAME" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_n8n" { - zone_name = "w5isp.com" - name = "n8n" - value = "204.110.191.2" # Traefik ingress on k3s cluster - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_nodered" { - zone_name = "w5isp.com" - name = "nodered" - value = "204.110.191.2" # Node-RED via Traefik on k3s cluster - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_headscale" { - zone_name = "w5isp.com" - name = "headscale" - value = "66.206.18.166" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_hs" { - zone_name = "w5isp.com" - name = "hs" - value = "66.206.18.166" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_dokku" { - zone_name = "w5isp.com" - name = "dokku" - value = "204.110.191.218" - type = "A" - ttl = 3600 -} - -resource "dnsimple_zone_record" "w5isp_camper" { - zone_name = "w5isp.com" - name = "camper" - value = "skippy.w5isp.com." - type = "CNAME" - ttl = 3600 -} diff --git a/terraform/w5isp.tfplan b/terraform/w5isp.tfplan deleted file mode 100644 index a09680d0c04a08e7504f360f6836c8de245f10ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64712 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 H5upDEG{-5h