diff --git a/dns-functionalidiot.com.tf b/dns-functionalidiot.com.tf new file mode 100644 index 0000000..9dc8d54 --- /dev/null +++ b/dns-functionalidiot.com.tf @@ -0,0 +1,192 @@ +variable "cloudflare_functionalidiot_com_zoneid" { + type = string +} + +resource "cloudflare_record" "ns1_functionalidiot_com" { + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "@" + value = "mitch.ns.cloudflare.com" + type = "NS" +} + +resource "cloudflare_record" "ns2_functionalidiot_com" { + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "@" + value = "tegan.ns.cloudflare.com" + type = "NS" +} + +resource "cloudflare_record" "root_functionalidiot_com" { + depends_on = [ + linode_instance.prod, + cloudflare_record.ns1_functionalidiot_com, + cloudflare_record.ns2_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "@" + value = linode_instance.prod.ip_address + type = "A" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "splat_functionalidiot_com" { + depends_on = [ + linode_instance.prod, + cloudflare_record.ns1_functionalidiot_com, + cloudflare_record.ns2_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "*" + value = linode_instance.prod.ip_address + type = "A" + ttl = local.dns_ttl +} + +# resource "cloudflare_record" "root6_functionalidiot_com" { +# depends_on = [ +# linode_instance.prod, +# cloudflare_record.ns1_functionalidiot_com, +# cloudflare_record.ns2_functionalidiot_com ] +# zone_id = var.cloudflare_functionalidiot_com_zoneid +# name = "@" +# value = local.ipv6 +# type = "AAAA" +# ttl = local.dns_ttl +# } + +# resource "cloudflare_record" "splat6_functionalidiot_com" { +# depends_on = [ +# linode_instance.prod, +# cloudflare_record.ns1_functionalidiot_com, +# cloudflare_record.ns2_functionalidiot_com ] +# zone_id = var.cloudflare_functionalidiot_com_zoneid +# name = "*" +# value = local.ipv6 +# type = "AAAA" +# ttl = local.dns_ttl +# proxied = true +# } + +resource "cloudflare_record" "www_functionalidiot_com" { + depends_on = [ + cloudflare_record.root_functionalidiot_com, + cloudflare_record.splat_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "www" + value = "functionalidiot.com" + type = "CNAME" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "git_functionalidiot_com" { + depends_on = [ + cloudflare_record.root_functionalidiot_com, + cloudflare_record.splat_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "git" + value = "functionalidiot.com" + type = "CNAME" + ttl = local.dns_ttl +} + +# MX record setup for fastmail dkim/spf on root and all subdomains +resource "cloudflare_record" "mx_cname_1_functionalidiot_com" { + depends_on = [ + cloudflare_record.root_functionalidiot_com, + cloudflare_record.splat_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "fm1._domainkey" + value = "fm1.functionalidiot.com.dkim.fmhosted.com" + type = "CNAME" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx_cname_2_functionalidiot_com" { + depends_on = [ + cloudflare_record.root_functionalidiot_com, + cloudflare_record.splat_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "fm2._domainkey" + value = "fm2.functionalidiot.com.dkim.fmhosted.com" + type = "CNAME" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx_cname_3_functionalidiot_com" { + depends_on = [ + cloudflare_record.root_functionalidiot_com, + cloudflare_record.splat_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "fm3._domainkey" + value = "fm3.functionalidiot.com.dkim.fmhosted.com" + type = "CNAME" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx_10_root_functionalidiot_com" { + depends_on = [ + cloudflare_record.root_functionalidiot_com, + cloudflare_record.splat_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "@" + value = "in1-smtp.messagingengine.com" + type = "MX" + priority = "10" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx_20_root_functionalidiot_com" { + depends_on = [ + cloudflare_record.root_functionalidiot_com, + cloudflare_record.splat_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "@" + value = "in2-smtp.messagingengine.com" + type = "MX" + priority = "20" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx-10-splat_functionalidiot_com" { + depends_on = [ + cloudflare_record.root_functionalidiot_com, + cloudflare_record.splat_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "*" + value = "in1-smtp.messagingengine.com" + type = "MX" + priority = "10" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx_20_splat_functionalidiot_com" { + depends_on = [ + cloudflare_record.root_functionalidiot_com, + cloudflare_record.splat_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "*" + value = "in2-smtp.messagingengine.com" + type = "MX" + priority = "20" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "txt_mx_root_functionalidiot_com" { + depends_on = [ + cloudflare_record.root_functionalidiot_com, + cloudflare_record.splat_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "@" + value = "v=spf1 include:spf.messagingengine.com ?all" + type = "TXT" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "txt_mx_splat_functionalidiot_com" { + depends_on = [ + cloudflare_record.root_functionalidiot_com, + cloudflare_record.splat_functionalidiot_com ] + zone_id = var.cloudflare_functionalidiot_com_zoneid + name = "*" + value = "v=spf1 include:spf.messagingengine.com ?all" + type = "TXT" + ttl = local.dns_ttl +} \ No newline at end of file diff --git a/dns-mitchty.com.tf b/dns-mitchty.com.tf new file mode 100644 index 0000000..eaad9ff --- /dev/null +++ b/dns-mitchty.com.tf @@ -0,0 +1,192 @@ +variable "cloudflare_mitchty_com_zoneid" { + type = string +} + +resource "cloudflare_record" "ns1_mitchty_com" { + zone_id = var.cloudflare_mitchty_com_zoneid + name = "@" + value = "mitch.ns.cloudflare.com" + type = "NS" +} + +resource "cloudflare_record" "ns2_mitchty_com" { + zone_id = var.cloudflare_mitchty_com_zoneid + name = "@" + value = "tegan.ns.cloudflare.com" + type = "NS" +} + +resource "cloudflare_record" "root_mitchty_com" { + depends_on = [ + linode_instance.prod, + cloudflare_record.ns1_mitchty_com, + cloudflare_record.ns2_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "@" + value = linode_instance.prod.ip_address + type = "A" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "splat_mitchty_com" { + depends_on = [ + linode_instance.prod, + cloudflare_record.ns1_mitchty_com, + cloudflare_record.ns2_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "*" + value = linode_instance.prod.ip_address + type = "A" + ttl = local.dns_ttl +} + +# resource "cloudflare_record" "root6_mitchty_com" { +# depends_on = [ +# linode_instance.prod, +# cloudflare_record.ns1_mitchty_com, +# cloudflare_record.ns2_mitchty_com ] +# zone_id = var.cloudflare_mitchty_com_zoneid +# name = "@" +# value = local.ipv6 +# type = "AAAA" +# ttl = local.dns_ttl +# } + +# resource "cloudflare_record" "splat6_mitchty_com" { +# depends_on = [ +# linode_instance.prod, +# cloudflare_record.ns1_mitchty_com, +# cloudflare_record.ns2_mitchty_com ] +# zone_id = var.cloudflare_mitchty_com_zoneid +# name = "*" +# value = local.ipv6 +# type = "AAAA" +# ttl = local.dns_ttl +# proxied = true +# } + +resource "cloudflare_record" "www_mitchty_com" { + depends_on = [ + cloudflare_record.root_mitchty_com, + cloudflare_record.splat_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "www" + value = "mitchty.com" + type = "CNAME" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "git_mitchty_com" { + depends_on = [ + cloudflare_record.root_mitchty_com, + cloudflare_record.splat_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "git" + value = "mitchty.com" + type = "CNAME" + ttl = local.dns_ttl +} + +# MX record setup for fastmail dkim/spf on root and all subdomains +resource "cloudflare_record" "mx_cname_1_mitchty_com" { + depends_on = [ + cloudflare_record.root_mitchty_com, + cloudflare_record.splat_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "fm1._domainkey" + value = "fm1.mitchty.com.dkim.fmhosted.com" + type = "CNAME" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx_cname_2_mitchty_com" { + depends_on = [ + cloudflare_record.root_mitchty_com, + cloudflare_record.splat_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "fm2._domainkey" + value = "fm2.mitchty.com.dkim.fmhosted.com" + type = "CNAME" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx_cname_3_mitchty_com" { + depends_on = [ + cloudflare_record.root_mitchty_com, + cloudflare_record.splat_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "fm3._domainkey" + value = "fm3.mitchty.com.dkim.fmhosted.com" + type = "CNAME" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx_10_root_mitchty_com" { + depends_on = [ + cloudflare_record.root_mitchty_com, + cloudflare_record.splat_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "@" + value = "in1-smtp.messagingengine.com" + type = "MX" + priority = "10" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx_20_root_mitchty_com" { + depends_on = [ + cloudflare_record.root_mitchty_com, + cloudflare_record.splat_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "@" + value = "in2-smtp.messagingengine.com" + type = "MX" + priority = "20" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx_10_splat_mitchty_com" { + depends_on = [ + cloudflare_record.root_mitchty_com, + cloudflare_record.splat_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "*" + value = "in1-smtp.messagingengine.com" + type = "MX" + priority = "10" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "mx_20_splat_mitchty_com" { + depends_on = [ + cloudflare_record.root_mitchty_com, + cloudflare_record.splat_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "*" + value = "in2-smtp.messagingengine.com" + type = "MX" + priority = "20" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "txt_mx_root_mitchty_com" { + depends_on = [ + cloudflare_record.root_mitchty_com, + cloudflare_record.splat_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "@" + value = "v=spf1 include:spf.messagingengine.com ?all" + type = "TXT" + ttl = local.dns_ttl +} + +resource "cloudflare_record" "txt_mx_splat_mitchty_com" { + depends_on = [ + cloudflare_record.root_mitchty_com, + cloudflare_record.splat_mitchty_com ] + zone_id = var.cloudflare_mitchty_com_zoneid + name = "*" + value = "v=spf1 include:spf.messagingengine.com ?all" + type = "TXT" + ttl = local.dns_ttl +} \ No newline at end of file diff --git a/dns.tf b/dns.tf new file mode 100644 index 0000000..5933b68 --- /dev/null +++ b/dns.tf @@ -0,0 +1,11 @@ +# Dns defaults + +variable "short_dns_ttl" { + type = bool + default = true + description = "Whether to set short dns ttl's or not." +} + +locals { + dns_ttl = var.short_dns_ttl ? 120 : 43200 +} diff --git a/functionalidiot.com.tf b/functionalidiot.com.tf index f9634a8..8060d88 100644 --- a/functionalidiot.com.tf +++ b/functionalidiot.com.tf @@ -4,209 +4,6 @@ variable "gitea_db_passwd" { type = string } -variable "cloudflare_functionalidiot_zoneid" { - type = string -} - -variable "short_dns_ttl" { - type = bool - default = true - description = "Whether to set short dns ttl's or not." -} - -locals { - dns_ttl = var.short_dns_ttl ? 120 : 43200 -} - -resource "cloudflare_record" "root" { - depends_on = [ - linode_instance.prod, - cloudflare_record.functionalidiot_com_ns1, - cloudflare_record.functionalidiot_com_ns2 ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "@" - value = linode_instance.prod.ip_address - type = "A" - ttl = local.dns_ttl -} - -resource "cloudflare_record" "splat" { - depends_on = [ - linode_instance.prod, - cloudflare_record.functionalidiot_com_ns1, - cloudflare_record.functionalidiot_com_ns2 ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "*" - value = linode_instance.prod.ip_address - type = "A" - ttl = local.dns_ttl -} - -# resource "cloudflare_record" "root6" { -# depends_on = [ -# linode_instance.prod, -# cloudflare_record.functionalidiot_com_ns1, -# cloudflare_record.functionalidiot_com_ns2 ] -# zone_id = var.cloudflare_functionalidiot_zoneid -# name = "@" -# value = local.ipv6 -# type = "AAAA" -# ttl = local.dns_ttl -# } - -# resource "cloudflare_record" "splat6" { -# depends_on = [ -# linode_instance.prod, -# cloudflare_record.functionalidiot_com_ns1, -# cloudflare_record.functionalidiot_com_ns2 ] -# zone_id = var.cloudflare_functionalidiot_zoneid -# name = "*" -# value = local.ipv6 -# type = "AAAA" -# ttl = local.dns_ttl -# proxied = true -# } - -resource "cloudflare_record" "www" { - depends_on = [ - cloudflare_record.root, - cloudflare_record.splat ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "www" - value = "functionalidiot.com" - type = "CNAME" - ttl = local.dns_ttl -} - -resource "cloudflare_record" "git" { - depends_on = [ - cloudflare_record.root, - cloudflare_record.splat ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "git" - value = "functionalidiot.com" - type = "CNAME" - ttl = local.dns_ttl -} - -# MX record setup for fastmail dkim/spf on root and all subdomains -resource "cloudflare_record" "mx-cname-1" { - depends_on = [ - cloudflare_record.root, - cloudflare_record.splat ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "fm1._domainkey" - value = "fm1.functionalidiot.com.dkim.fmhosted.com" - type = "CNAME" - ttl = local.dns_ttl -} - -resource "cloudflare_record" "mx-cname-2" { - depends_on = [ - cloudflare_record.root, - cloudflare_record.splat ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "fm2._domainkey" - value = "fm2.functionalidiot.com.dkim.fmhosted.com" - type = "CNAME" - ttl = local.dns_ttl -} - -resource "cloudflare_record" "mx-cname-3" { - depends_on = [ - cloudflare_record.root, - cloudflare_record.splat ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "fm3._domainkey" - value = "fm3.functionalidiot.com.dkim.fmhosted.com" - type = "CNAME" - ttl = local.dns_ttl -} - -resource "cloudflare_record" "mx-10-root" { - depends_on = [ - cloudflare_record.root, - cloudflare_record.splat ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "@" - value = "in1-smtp.messagingengine.com" - type = "MX" - priority = "10" - ttl = local.dns_ttl -} - -resource "cloudflare_record" "mx-20-root" { - depends_on = [ - cloudflare_record.root, - cloudflare_record.splat ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "@" - value = "in2-smtp.messagingengine.com" - type = "MX" - priority = "20" - ttl = local.dns_ttl -} - -resource "cloudflare_record" "mx-10-splat" { - depends_on = [ - cloudflare_record.root, - cloudflare_record.splat ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "*" - value = "in1-smtp.messagingengine.com" - type = "MX" - priority = "10" - ttl = local.dns_ttl -} - -resource "cloudflare_record" "mx-20-splat" { - depends_on = [ - cloudflare_record.root, - cloudflare_record.splat ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "*" - value = "in2-smtp.messagingengine.com" - type = "MX" - priority = "20" - ttl = local.dns_ttl -} - -resource "cloudflare_record" "txt-mx-root" { - depends_on = [ - cloudflare_record.root, - cloudflare_record.splat ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "@" - value = "v=spf1 include:spf.messagingengine.com ?all" - type = "TXT" - ttl = local.dns_ttl -} - -resource "cloudflare_record" "txt-mx-splat" { - depends_on = [ - cloudflare_record.root, - cloudflare_record.splat ] - zone_id = var.cloudflare_functionalidiot_zoneid - name = "*" - value = "v=spf1 include:spf.messagingengine.com ?all" - type = "TXT" - ttl = local.dns_ttl -} - -resource "cloudflare_record" "functionalidiot_com_ns1" { - zone_id = var.cloudflare_functionalidiot_zoneid - name = "@" - value = "mitch.ns.cloudflare.com" - type = "NS" -} - -resource "cloudflare_record" "functionalidiot_com_ns2" { - zone_id = var.cloudflare_functionalidiot_zoneid - name = "@" - value = "tegan.ns.cloudflare.com" - type = "NS" -} - resource "null_resource" "functionalidiot_com_setup_new_gitea" { depends_on = [ null_resource.gitea_install ] count = fileexists("${path.module}/attic/gitea.txz") ? 0 : 1 diff --git a/post_setup.tf b/post_setup.tf index 639d020..ccb7da6 100644 --- a/post_setup.tf +++ b/post_setup.tf @@ -18,7 +18,7 @@ FIN } resource "null_resource" "nginx_install" { - depends_on = [ linode_instance.post_setup ] + depends_on = [ null_resource.post_setup ] connection { host = linode_instance.prod.ip_address user = "root" @@ -36,7 +36,7 @@ FIN } resource "null_resource" "uacme_install" { - depends_on = [ linode_instance.post_setup ] + depends_on = [ null_resource.post_setup ] connection { host = linode_instance.prod.ip_address user = "root" @@ -51,7 +51,7 @@ FIN } resource "null_resource" "gitea_install" { - depends_on = [ linode_instance.post_setup ] + depends_on = [ null_resource.post_setup ] connection { host = linode_instance.prod.ip_address user = "root"