···11+# Infra secrets
22+.envrc.local
33+44+# Local .terraform directories
55+**/.terraform/*
66+77+# .tfstate files
88+*.tfstate
99+*.tfstate.*
1010+1111+# Crash log files
1212+crash.log
1313+crash.*.log
1414+1515+# Exclude all .tfvars files, which are likely to contain sensitive data, such as
1616+# password, private keys, and other secrets. These should not be part of version
1717+# control as they are data points which are potentially sensitive and subject
1818+# to change depending on the environment.
1919+*.tfvars
2020+*.tfvars.json
2121+2222+# Ignore override files as they are usually used to override resources locally and so
2323+# are not checked in
2424+override.tf
2525+override.tf.json
2626+*_override.tf
2727+*_override.tf.json
2828+2929+# Ignore transient lock info files created by terraform apply
3030+.terraform.tfstate.lock.info
3131+3232+# Include override files you do wish to add to version control using negated pattern
3333+# !example_override.tf
3434+3535+# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
3636+# example: *tfplan*
3737+3838+# Ignore CLI configuration files
3939+.terraformrc
4040+terraform.rc
4141+142# Generated by Flake
243/.pre-commit-config.yaml
344/.direnv/
44555-# Nix results
4646+# Ignore build outputs from performing a nix-build or `nix build` command
647result
4848+result-*
+18
.terraform.lock.hcl
···11+# This file is maintained automatically by "tofu init".
22+# Manual edits may be lost in future updates.
33+44+provider "registry.opentofu.org/timohirt/hetznerdns" {
55+ version = "2.2.0"
66+ constraints = "~> 2.2.0"
77+ hashes = [
88+ "h1:HyskQAglrOueur79gSCBgx9MNDOs0tz39aNYQiFgxz8=",
99+ "zh:5bb0ab9f62be3ed92070235e507f3c290491d51391ef4edcc70df53b65a83019",
1010+ "zh:5ccdfac7284f5515ac3cff748336b77f21c64760e429e811a1eeefa8ebb86e12",
1111+ "zh:687c35665139ae37c291e99085be2e38071f6b355c4e1e8957c5a6a3bcdf9caf",
1212+ "zh:6de27f0d0d1513b3a4b7e81923b4a8506c52759bd466e2b4f8156997b0478931",
1313+ "zh:85770a9199a4c2d16ca41538d7a0f7a7bfc060678104a1faac19213e6f0a800c",
1414+ "zh:a5ff723774a9ccfb27d5766c5e6713537f74dd94496048c89c5d64dba597e59e",
1515+ "zh:bf9ab76fd37cb8aebb6868d73cbe8c08cee36fc25224cc1ef5949efa3c34b06c",
1616+ "zh:db998fe3bdcd4902e99fa470bb3f355883170cf4c711c8da0b5f1f4510f1be41",
1717+ ]
1818+}
+36
duckhub_io.tf
···11+resource "hetznerdns_zone" "duckhub_io" {
22+ name = "duckhub.io"
33+ ttl = 86400
44+}
55+66+resource "hetznerdns_record" "root4_duckhub_io" {
77+ zone_id = hetznerdns_zone.duckhub_io.id
88+ name = "@"
99+ value = var.universe4
1010+ type = "A"
1111+ ttl = 3600
1212+}
1313+1414+resource "hetznerdns_record" "root6_duckhub_io" {
1515+ zone_id = hetznerdns_zone.duckhub_io.id
1616+ name = "@"
1717+ value = var.universe6
1818+ type = "AAAA"
1919+ ttl = 3600
2020+}
2121+2222+resource "hetznerdns_record" "rootcaa_duckhub_io" {
2323+ for_each = toset(var.caa_records)
2424+ zone_id = hetznerdns_zone.duckhub_io.id
2525+ name = "@"
2626+ value = each.key
2727+ type = "CAA"
2828+}
2929+3030+resource "hetznerdns_record" "cnames_duckhub_io" {
3131+ for_each = toset(["quack"])
3232+ zone_id = hetznerdns_zone.duckhub_io.id
3333+ name = each.key
3434+ value = "${hetznerdns_zone.duckhub_io.name}."
3535+ type = "CNAME"
3636+}
+28
honeyarcus_art.tf
···11+resource "hetznerdns_zone" "honeyarcus_art" {
22+ name = "honeyarcus.art"
33+ ttl = 86400
44+}
55+66+resource "hetznerdns_record" "root4_honeyarcus_art" {
77+ zone_id = hetznerdns_zone.honeyarcus_art.id
88+ name = "@"
99+ value = var.universe4
1010+ type = "A"
1111+ ttl = 3600
1212+}
1313+1414+resource "hetznerdns_record" "root6_honeyarcus_art" {
1515+ zone_id = hetznerdns_zone.honeyarcus_art.id
1616+ name = "@"
1717+ value = var.universe6
1818+ type = "AAAA"
1919+ ttl = 3600
2020+}
2121+2222+resource "hetznerdns_record" "rootcaa_honeyarcus_art" {
2323+ for_each = toset(var.caa_records)
2424+ zone_id = hetznerdns_zone.honeyarcus_art.id
2525+ name = "@"
2626+ value = each.key
2727+ type = "CAA"
2828+}