Self-hosted Tangled spindle

S3: Add a secondary public DNS resolver (ENG-474) #7

Merged demi.dev
targeting main from stoopkidddd/eng-474-review-follow-up-executor-dns-depends-on-the-single-public
Merged opened by and assigned to demi.dev
targeting main from stoopkidddd/eng-474-review-follow-up-executor-dns-depends-on-the-single-public

Linear: ENG-474. It blocks the S3 gate, ENG-472.

Why #

Pneumo's push pipeline 3mzbfhbmlxh22 went red in android.yml with java.net.UnknownHostException: github.com. In about 45 minutes of heavy CI, Docker's embedded resolver logged two i/o timeouts against its only upstream, 1.1.1.1. With a single upstream, one dropped UDP query fails the lookup.

Change #

executor/configuration.nix: dnsResolver becomes dnsResolvers = [ "1.1.1.1" "9.9.9.9" ]. The list is used for:

  • networking.nameservers;
  • Docker daemon.settings.dns;
  • the nftables docker-egress DNS exception, TCP and UDP 53.

Every other drop rule is unchanged.

Verify #

$ mise run check   → exit 0 (toplevel 82irpkh6…-nixos-system-spindle-exec-1…drv)
$ nix eval (selected)
{"docker":["1.1.1.1","9.9.9.9"],"ns":["1.1.1.1","9.9.9.9"],"nft":"… ip daddr { 1.1.1.1, 9.9.9.9 } meta l4proto { tcp, udp } th dport 53 accept …"}

After the merge, the lead deploys the change to spindle-exec-1 and re-runs the container DNS and LAN-isolation probes.

🤖 Generated with Claude Code

Commits 1

S3: Add a secondary public DNS resolver (ENG-474)