CluPilotCloud/docs
nexxo a91e8525d2 Write down the Hetzner DNS migration before starting it
The root cause of the zone_not_found hunt: the old DNS API is gone. It answers
301 to the web console, and the owner's token already returns 200 against
api.hetzner.cloud — so this is code work, not a credential problem.

The note holds what the next session needs and would otherwise have to rediscover:
the endpoints, taken from cloud.spec.json rather than guessed, the fact that
records are now RRSets addressed by name and type, that a zone can be addressed
by NAME directly, and two traps in the name field — it must not end with the zone
name, which is exactly what the current client sends, and PUT on an rrset sets
labels rather than records.

Recorded rather than started, deliberately. HttpHetznerDnsClient writes the A
record for every customer instance; rewriting it is not something to begin
without room left to test it properly, and a half-migrated DNS client is worse
than a documented broken one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 15:52:55 +02:00
..
design Write the handoff, and rescue the approved templates into the repo 2026-07-27 20:18:20 +02:00
handoffs Write down the Hetzner DNS migration before starting it 2026-07-31 15:52:55 +02:00
runbooks Write down what to do when the bootstrap stops 2026-07-30 20:22:32 +02:00
specs docs: Phase D spec — service framing, redesign & CRUD completeness 2026-07-25 14:13:23 +02:00
superpowers Merge main into the host-takeover branch 2026-07-30 21:21:45 +02:00
deployment.md feat(deploy): releases you can pin to, and a version that tells the truth 2026-07-26 15:21:38 +02:00
handoff-plan-catalogue.md docs: handoff for the plan catalogue rebuild 2026-07-26 10:43:17 +02:00
monitoring-uptime-kuma.md fix(monitoring): cap monitoring retries at the run budget; dependency-free liveness probe 2026-07-25 20:19:32 +02:00
wireguard-hub.md docs(wireguard): document the ownership model and config storage 2026-07-25 22:55:14 +02:00