Repository navigation
Closed
Labels
effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/infrastructureInfrastructure / host-portability workInfrastructure / host-portability workmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/humanFiled directly by a humanFiled directly by a human
Description
Relocated from dezren39/darwin-nix#974 on 2026-10-28 (placement audit): legacy Porkbun DNS Terraform project — Drew's Porkbun configuration lives in developing-today/code (infra), so the validation project belongs beside it. Original body below; issue references inside it are historical (dezren39/nix numbering).
Validate the legacy DNS Terraform project (Porkbun bulk changes)
There is a Terraform project from a couple of years ago that manages DNS for Drew's Porkbun domains, built for mass/bulk changes. Its current state is unknown: it may or may not still match reality, and bulk-apply tooling that has drifted is dangerous.
Work (read-only validation — NO apply without Drew's explicit go-ahead)
- Locate the project (repo, state backend, where state lives) and identify which domains/zones it manages, including which Porkbun account they sit in.
terraform validateand a read-onlyterraform planagainst current state; report whether it plans cleanly.- Diff the project's declared records against live Porkbun DNS for the managed zones; report drift (records changed outside Terraform, records in Terraform that no longer exist, zones/domains moved or lapsed).
- Assess the state file itself: age, backend health, provider version pins, whether the Porkbun provider credentials it expects still exist (note the second Porkbun account's API access is a separate open item — see the account-connection campaign).
- Also check: the project's YAML DNS config — confirm whether it is embedded in the fleet's semantic index; per Drew, configs of this class should qualify for embeddings. Report its embedding status and file the gap if it is missing.
Done when
A written verdict exists: safe to keep using for bulk changes as-is / safe after listed repairs / retire it — with the drift report attached. No DNS changes are made by this issue.
Acceptance criteria
- The legacy Porkbun DNS Terraform project is located (repo, state backend, state location) and the domains/zones it manages are listed, including which Porkbun account they sit in.
-
terraform validateand a read-onlyterraform planare run and reported — NO apply or DNS change is made under this issue. - A drift report compares the project's declared records against live Porkbun DNS for the managed zones (out-of-Terraform changes, stale records, moved/lapsed zones).
- The state file is assessed: age, backend health, provider version pins, and whether the Porkbun provider credentials it expects still exist.
- The project's YAML DNS config embedding status in the fleet semantic index is reported, and the gap is filed if it is missing.
- A written verdict is posted: safe as-is / safe after listed repairs / retire it.
Metadata
Metadata
Assignees
Labels
effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/infrastructureInfrastructure / host-portability workInfrastructure / host-portability workmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/humanFiled directly by a humanFiled directly by a human
Activity
developing-today commentedon Oct 28, 2026
CODE-787
dezren39 commentedon Oct 28, 2026
History carried over from dezren39/darwin-nix#974 (verbatim, oldest first):
@developing-today[bot] · 2026-10-27T19:48:02Z
NIX-195
@dezren39 · 2026-10-27T19:49:59Z
Location + embeddings findings (2026-10-27, same-day legwork): the project lives in developing-today/code,
infra/dns/— OpenTofu (a 21 MBterraform.logfrom a 2024-08-13tofu initDEBUG run is tracked there) with the zone config atinfra/dns/dns_config.yaml. Validation work should start from that directory.Embeddings (item 5): checked —
dns_config.yamlis NOT in the fleet's memory embedding index. Memory holds only incidental prose about the project (the terraform.log hygiene note, the Oct-2025 Porkbun inventory), not the config itself. Per Drew (2026-10-27): configs of this class (infrastructure-defining YAML) qualify for embeddings — closing that gap is part of this issue's done criteria.@dezren39 · 2026-10-28T00:58:51Z
Intake review
Fleet-monitor intake pass (2026-10-28): verified still live — filed by Drew with no labels; the legacy Porkbun DNS Terraform project's state is, per the body, simply unknown, and no validation has been posted anywhere. Labels applied: kind/infrastructure, source/human, priority/normal, effort/m, status/needs-triage.
## Acceptance criteriasection has been appended in checklist form (original body preserved verbatim above it).planoutput misleading; the state assessment (item 4) should come before trusting the plan.@dezren39 · 2026-10-28T03:28:40Z
Triage note (issue-sweep-rotating, 2026-10-27 22:24 CDT run) — step 1 partial evidence:
Searched the full tracked tree of dezren39/nix at current main
b273c47: there are no Terraform files (no*.tf, no terraform-named paths) and no Porkbun references in any tracked.md/.nix/.tf/.yaml/.ymlfile. So the legacy DNS Terraform project does not live in this repo — its location (another repo or one of Drew's machines), its state backend, and whether the Porkbun provider credentials it expects still exist all remain open and need Drew-side knowledge.No validation/
planwas attempted: there is nothing in this repo to run it against, and per the issue body no apply is authorized. Issue stays open,status/needs-triageunchanged; next action is locating the project outside this repo.30 remaining items
dezren39 commentedon Nov 3, 2026
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
dezren39 commentedon Nov 3, 2026
🤖 Agent note · picked up
aea12c82-c5af-4e5a-9b66-f8e360f87177)main— confirm whether the read-only validation is still live/unhandled, and either close with evidence or split the remaining work with blockers and ordering recorded.main(validation delivered 2026-10-30, config repair merged as PR fix(infra/dns): repair TTL config (300->600), pin providers, honour lock in init.sh (#1860) #2730), remaining items either closed or split with their blocker named. Still read-only: no apply, no DNS mutation.dezren39 commentedon Nov 3, 2026
🤖 Agent note · triaged → closing as delivered; write-side split out to #4989
aea12c82-c5af-4e5a-9b66-f8e360f87177)Re-verified at current
main(d3476bce, 2026-11-03)infra/dns; no competing issue owns this work.git diff ba5229e9(PR #2730 merge) HEAD -- infra/dnsis empty — the tree is byte-identical to the repaired tree:dns_config.yaml151 records allttl: 600, zero at 300;main.tfpinscullenmcdermott/porkbun 0.3.0+carlpett/sops 1.1.1;init.shno longer hardcodes-upgrade.terraform.tfstate.encblob sha25621b74bb7…is identical to its Jan-2025 commit (71f1566e7) — state untouched since the validation snapshot (serial 84, TF 1.8.7, sops-encrypted, local backend).main:tofu validateOK,tofu planexit 0, zero TTL errors (was 151), Plan: 0 to add, 0 to change, 1 to destroy (the known state-only phantom).Acceptance criteria (from the body) — all satisfied
developing-today/codeinfra/dns, local backend, sops-encrypted committed stateterraform.tfstate.enc; 39 zones listed; all in the primary Porkbun account ✅ (2026-10-30 verdict)terraform validate+ read-onlyplanrun and reported, no apply ✅ (same comment)developing-today.com✅pingSUCCESS (values never read) ✅dns_config.yamlembedding status reported; gap filed as infra/dns/dns_config.yaml is not embedded in any fleet semantic index found in this repo #2469 (still open) ✅Remaining work and where it now lives
Repairs 1 and 3 of that verdict (TTL 300→600, provider pins +
init.shlock handling) landed in PR #2730. Repairs 2, 4 and 5 are write operations — phantom state entry removal, state re-save after the first repaired apply, and the import-or-document decision for the 9 forwarding/Pages records. They cannot proceed under this issue's "no apply, no DNS change" boundary, so they are split to #4989, labelledstatus/blocked+user/escalated: they need Drew's explicit apply-window go-ahead. #2469 tracks the embedding gap independently.Closing #1860 as delivered. If the split issue turns out to need a different shape (e.g. Drew prefers the apply window folded back here), reopen and say so — nothing about the validation needs redoing.