Archived
Refactor A/AAAA blank content to dynamic Dynu semantics
This commit is contained in:
@@ -9,8 +9,8 @@ Using a single suffix (`test_suffix`), this example creates five DNS record scen
|
||||
1. `A` record with IPv4 content (`codex-a-<suffix>.<root_domain>`)
|
||||
2. `AAAA` record with IPv6 content (`codex-aaaa-<suffix>.<root_domain>`)
|
||||
3. `CNAME` record (`codex-cname-<suffix>.<root_domain>`)
|
||||
4. **Blank `A` record** with no content/IP (`codex-blank-a-<suffix>.<root_domain>`)
|
||||
5. **Blank `AAAA` record** with no content/IP (`codex-blank-aaaa-<suffix>.<root_domain>`)
|
||||
4. **Dynamic `A` record** with omitted content (`codex-dynamic-a-<suffix>.<root_domain>`)
|
||||
5. **Dynamic `AAAA` record** with omitted content (`codex-dynamic-aaaa-<suffix>.<root_domain>`)
|
||||
|
||||
> [!WARNING]
|
||||
> Do not use a suffix that overlaps important existing hostnames. This example is intended only for disposable test records that you can safely destroy.
|
||||
@@ -52,5 +52,15 @@ terraform destroy
|
||||
- `dynu_dns_record.a_ipv4`
|
||||
- `dynu_dns_record.aaaa_ipv6`
|
||||
- `dynu_dns_record.cname`
|
||||
- `dynu_dns_record.blank_a`
|
||||
- `dynu_dns_record.blank_aaaa`
|
||||
- `dynu_dns_record.dynamic_a`
|
||||
- `dynu_dns_record.dynamic_aaaa`
|
||||
|
||||
Verification commands:
|
||||
|
||||
```bash
|
||||
dig A codex-dynamic-a-<suffix>.<root_domain>
|
||||
dig AAAA codex-dynamic-aaaa-<suffix>.<root_domain>
|
||||
dig CNAME codex-cname-<suffix>.<root_domain>
|
||||
```
|
||||
|
||||
`dig <hostname>` defaults to an `A` lookup, which can be misleading for AAAA-only checks.
|
||||
|
||||
@@ -9,8 +9,8 @@ locals {
|
||||
hostname_a_ipv4 = "codex-a-${var.test_suffix}.${var.dynu_root_domain}"
|
||||
hostname_aaaa_ipv6 = "codex-aaaa-${var.test_suffix}.${var.dynu_root_domain}"
|
||||
hostname_cname = "codex-cname-${var.test_suffix}.${var.dynu_root_domain}"
|
||||
hostname_blank_a = "codex-blank-a-${var.test_suffix}.${var.dynu_root_domain}"
|
||||
hostname_blank_aaaa = "codex-blank-aaaa-${var.test_suffix}.${var.dynu_root_domain}"
|
||||
hostname_dynamic_a = "codex-dynamic-a-${var.test_suffix}.${var.dynu_root_domain}"
|
||||
hostname_dynamic_aaaa = "codex-dynamic-aaaa-${var.test_suffix}.${var.dynu_root_domain}"
|
||||
}
|
||||
|
||||
resource "dynu_dns_record" "a_ipv4" {
|
||||
@@ -37,17 +37,17 @@ resource "dynu_dns_record" "cname" {
|
||||
state = true
|
||||
}
|
||||
|
||||
# Deliberate blank A record scenario: A type with no content/IP value.
|
||||
resource "dynu_dns_record" "blank_a" {
|
||||
hostname = local.hostname_blank_a
|
||||
# Deliberate dynamic A record scenario: content intentionally omitted for Dynu dynamic IPv4 behavior.
|
||||
resource "dynu_dns_record" "dynamic_a" {
|
||||
hostname = local.hostname_dynamic_a
|
||||
record_type = "A"
|
||||
ttl = var.test_ttl
|
||||
state = true
|
||||
}
|
||||
|
||||
# Deliberate blank AAAA record scenario: AAAA type with no content/IP value.
|
||||
resource "dynu_dns_record" "blank_aaaa" {
|
||||
hostname = local.hostname_blank_aaaa
|
||||
# Deliberate dynamic AAAA record scenario: content intentionally omitted for Dynu dynamic IPv6 behavior.
|
||||
resource "dynu_dns_record" "dynamic_aaaa" {
|
||||
hostname = local.hostname_dynamic_aaaa
|
||||
record_type = "AAAA"
|
||||
ttl = var.test_ttl
|
||||
state = true
|
||||
|
||||
@@ -4,8 +4,8 @@ output "record_hostnames" {
|
||||
a_ipv4 = dynu_dns_record.a_ipv4.hostname
|
||||
aaaa_ipv6 = dynu_dns_record.aaaa_ipv6.hostname
|
||||
cname = dynu_dns_record.cname.hostname
|
||||
blank_a = dynu_dns_record.blank_a.hostname
|
||||
blank_aaaa = dynu_dns_record.blank_aaaa.hostname
|
||||
dynamic_a = dynu_dns_record.dynamic_a.hostname
|
||||
dynamic_aaaa = dynu_dns_record.dynamic_aaaa.hostname
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,13 +15,13 @@ output "record_ids" {
|
||||
a_ipv4 = dynu_dns_record.a_ipv4.id
|
||||
aaaa_ipv6 = dynu_dns_record.aaaa_ipv6.id
|
||||
cname = dynu_dns_record.cname.id
|
||||
blank_a = dynu_dns_record.blank_a.id
|
||||
blank_aaaa = dynu_dns_record.blank_aaaa.id
|
||||
dynamic_a = dynu_dns_record.dynamic_a.id
|
||||
dynamic_aaaa = dynu_dns_record.dynamic_aaaa.id
|
||||
}
|
||||
}
|
||||
|
||||
output "record_values" {
|
||||
description = "Record type/content summary for each scenario; blank records intentionally omit content."
|
||||
description = "Record type/content summary for each scenario; dynamic A/AAAA intentionally omit content."
|
||||
value = {
|
||||
a_ipv4 = {
|
||||
type = dynu_dns_record.a_ipv4.record_type
|
||||
@@ -35,13 +35,13 @@ output "record_values" {
|
||||
type = dynu_dns_record.cname.record_type
|
||||
content = dynu_dns_record.cname.content
|
||||
}
|
||||
blank_a = {
|
||||
type = dynu_dns_record.blank_a.record_type
|
||||
content = dynu_dns_record.blank_a.content
|
||||
dynamic_a = {
|
||||
type = dynu_dns_record.dynamic_a.record_type
|
||||
content = dynu_dns_record.dynamic_a.content
|
||||
}
|
||||
blank_aaaa = {
|
||||
type = dynu_dns_record.blank_aaaa.record_type
|
||||
content = dynu_dns_record.blank_aaaa.content
|
||||
dynamic_aaaa = {
|
||||
type = dynu_dns_record.dynamic_aaaa.record_type
|
||||
content = dynu_dns_record.dynamic_aaaa.content
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user