forgejo-runner: add fallback nameservers so a SERVFAIL doesn't kill a job #15
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "help-me-figure-out-why-the-forge"
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?
Why
Actions jobs on the scout runner intermittently die at their first step with
Could not resolve host: data.forgejo.org (Timeout while contacting DNS servers)— 4 of ~50 recent jobs (simpleplayer-svc runs 13/25/30, simpleplayer-helper run 1), and this Forgejo has no re-run via API.Diagnosis
EAI_AGAIN, which the Alpine runner's musl returns the instant any nameserver answers SERVFAIL..upstream is tailscaled's MagicDNS forwarder (DoH → NextDNS), because the node's resolv.conf is tailscaled's. No redundancy anywhere in the chain.[ERROR]lines across 3 of the 4 failures), dind network churn in the shared netns (770/770 lookups clean under load), the ts.net search-domain candidate, the IPv6 upstream, and any other hostname.Full write-up in
docs/forgejo-runner-dns.md, including follow-ups (node resolv.conf fight, local actions mirror).Change
Set the chart's
dnsConfigto append1.1.1.1and9.9.9.9after CoreDNS, withndots:1. musl queries all three in parallel and ignores a SERVFAIL while another server answers.Verified on the cluster with an Alpine pod against a nameserver that always answers SERVFAIL: alone → 0/5 lookups succeed; with a second server → 20/20.
The pod template changes, so the Deployment rolls (Recreate). Side effect: NextDNS filtering no longer applies to the runner's lookups.
Verify after sync:
🤖 Generated with Claude Code