Repository navigation
#8 co-processor runs Tailscale --accept-dns=true; tailscaled OOM drop-in; the broker by name - #9
Merged
Merged
Conversation
…me retry of the name Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With --accept-dns=true every lookup on the host goes through tailscaled, which also carries the only path to the broker. Installed and live on co-processor 2026-10-01: oom_score 670 -> 37. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…S section co-processor runs --accept-dns=true since 2026-10-01, at parity with the cohort (observo#631). The bus URL, the handoff's printf and PING, AGENTS.md, the settings comment and the spec's Bus URL row now say `broker`. The new DEPLOYMENT.md section covers how DNS works on exeuntu here, the CorpDNS check, the drop-in install, names at boot, the reboot checks and the rollback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 of 6 tasks
… name that now reaches the real broker Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…never starts fails instead of hanging Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… back, so the cp had no source Measured on co-processor 2026-10-01: after --accept-dns=false the backup is gone and cp fails with 'cannot stat'. The cp stays as the last resort while tailscaled is down. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ur named ones Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, rm and dd too Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s measured before the restart Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s the module's other caplog test does Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…le; observo#2's failure was a script Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ing test never names it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #8.
What changed
tailscale set --accept-dns=trueon co-processor. tailscaled ranked atOOMScoreAdjust=-950by a tracked drop-in, belowprocessor.service(-500).deploy/tailscaled.service.d/90-processor-oom.conf: one directive, the cohort's-950(power-map#588, replicator, observo#631).broker, never100.97.91.19, inAGENTS.md,docs/DEPLOYMENT.md(the handoff'sprintfandPING, the env sample), thesettings.pycomment, and the spec's Bus URL row (amended 2026-10-01).docs/DEPLOYMENT.md→ Tailscale DNS: how DNS works on exeuntu here, theCorpDNScheck, the drop-in install, names at boot, post-reboot checks, rollback.tests/test_tailscaled.py(modelled on observo'stest_infra_tailscaled.py):resolv.confexcept to restore Tailscale's backup;oom_score_adjand liveCorpDNS, which skip off this node;brokerresolves to a tailnet address.tests/test_consumer.py: abrokerthat fails to resolve twice (EAI_AGAIN) is retried, logged as a warning, and the consumer starts once it resolves. This confirms the boot retry; a mutation that re-raises fails it.Why DNS was off
Nothing deliberate. The journal has the provisioning command,
sudo tailscale up --auth-key=file:… --advertise-tags=tag:processor --hostname=co-processor --accept-dns=false, run at 2026-09-29 22:52:30Z from the observo#629 session, while observo-primary still ran DNS off. There is no setup script and no shell history giving a reason.Differs from observo-primary:
/etc/resolv.pre-tailscale-backup.confexisted, because DNS had never been on here.init=) writes/etc/resolv.confasnameserver 169.254.169.254at boot, before systemd: the file shares the boot's mtime with/etc/hosts.Host change, measured (2026-10-01 UTC)
CorpDNS: false,resolv.conf=nameserver 169.254.169.254; both saved to/var/backups/processor/8/. 10-min revert timer armed (processor-8-dns-revert).tailscale set --accept-dns=true.api.anthropic.com,github.com,storage.googleapis.com,oauth2.googleapis.com,exe.dev,pypi.org,broker, andbroker.taild0fb76.ts.net.brokerresolved again 2.4 s later. adj 0 → -950,oom_score670 → 37. Same names re-checked: all resolve.broker:6379by name: ok. Timer disarmed.tailscale debug prefsbefore vs after differs only inCorpDNS.Not done / open
PINGasprocessor: there is no credential yet (/etc/processor/is empty; broker#75). The TCP connect by name stands in. Run the runbook'sPING(now-h broker) when the handoff completes.index/index.taild0fb76.ts.netdon't resolve yet. MagicDNS answers only for netmap peers, andbrokeris the only one. That waits on Index processor on co-index's shared SocratiCode store (init-socraticode, STORE=external) #5's tailnet-policy item, not DNS. I'm ticking Index processor on co-index's shared SocratiCode store (init-socraticode, STORE=external) #5's name-resolution item on that basis.AutoUpdate.Apply: trueis unchanged and left to New skill: patching-hosts — probe, plan and apply OS updates, with environment profiles learned per run gregoryfoster/skills#313, as on observo.Review
Two
CR --fixrounds, one commit per finding (CR 1–9):broker.invalid. Since DNS is on, plainbrokerwould reach the real broker if the resolver patch were ever bypassed.tailscale set --accept-dns=falsealone. Measured on the host: that moves Tailscale's backup back over/etc/resolv.conf, so the oldcpfrom the backup failed withcannot stat. Thecpstays as a last resort while tailscaled is down./etc/resolv.conf) scan every committable file, not hand-picked ones.sed -i,ln,rmanddd.oom_score670, as measured.broker.Gate
uv run pytest: 215 passed (184 unit + 31 integration), 0 skipped. The live tests ran on this node.ruff check,ruff format --checkanduv lock --lockedare clean, and the scratch Redis is clean. The authenticatedPINGmoves to the broker#75 handoff (its step 3 already PINGs-h broker).🤖 Generated with Claude Code