ExternalDNS: apply controller + migrate the static aws-inventory A records #339
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/devrel
role/eval
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/sysadmin
role/tpm
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure#339
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Built (landed)
ExternalDNS as app-agnostic cluster infra - controller manifest
deploy/external_dns.yml, theexternal-dnsverb, anddocs/external-dns.md. Apps opt in with an Ingress label (external-dns.coilysiren.me/managed=true) + hostname annotation; the controller writes the Route53 record. Scoped safe:--policy=upsert-only(never deletes),--domain-filter=coilysiren.me,--label-filterso only labelled ingresses are touched. Reuses the kai-server-k3s creds (mirrored fromexternal-secrets/aws-credentials), no new IAM. atlas is the first consumer (coilyco-bridge/deploy bd8f63d).Implementing commit: infrastructure
172b954.Pending: apply to the cluster (operator step)
ward exec external-dnsis a kubectl write, so an agent cannot run it (lockdown deny on kubectl, not cleared by intent). Kai runs it on a box with cluster access:Watch the logs for
route53:ListHostedZones/ListResourceRecordSetsAccessDenied - theroute53-coilysiren-meIAM policy was scoped for cert-manager's narrower DNS-01 needs and may need those two list actions added. With the label-filter and no labelled ingress yet, the first apply creates zero records (safe).Pending: migrate the 8 static records (one at a time, non-blocking)
The
home_afor_each interraform/aws-inventory/main.tfstill owns: eco, eco-app, eco-jobs-tracker, eco-mcp, factorio, galaxy-gen, grafana (apex/www/flightdeck/bridge are Netlify CNAMEs, not ingress-backed, stay in terraform). Per host: add the label + hostname annotation to that app's Ingress, confirm ExternalDNS adopts it (anextdns-<host>TXT appears), then drop its line fromhome_aandterraform apply. upsert-only means nothing breaks if done gradually.