Reconcile: adopt initialization's consolidated HQ as canonical, re-home this session's new work #24

Merged
jschoubben merged 177 commits from reconcile-init-into-main into main 2026-09-05 10:27:11 +00:00
Showing only changes of commit f4e81074d3 - Show all commits
+25 -2
View File
@@ -278,13 +278,36 @@ somebody starts by hand is not the mesh's to configure, and reaching into every
machine — declared or not — is what a nameserver in `resolv.conf` would be for.
**That is now the second reason to want a resolver**, and it is a different one from the trigger
above. Both remain unmet needs rather than plans:
above:
| | |
|---|---|
| names that are not one-per-node | `postgres.internal` meaning *wherever the database is* |
| names that are not one-per-node | a service named under a machine — `postgres.novox.internal` |
| containers the mesh did not declare | anything a person or another tool starts on a node |
### Which resolver is not a question the mesh answers
*Written 2026-08-31, after treating it as open when it had been decided two days earlier.*
**A resolver takes over `/etc/resolv.conf`, which is a singular resource, so it is a claim** —
[ADR 0009](../../02-DECISIONS/0009-modules-and-the-graph.md) lists it in the table beside the seat
and pid 1. Choosing between resolved, dnsmasq and unbound is **assigning a module**, per machine,
and two of them cannot both be assigned there:
> `resolved-config and dnsmasq both claim "/etc/resolv.conf", and only one thing may hold it per node`
So there is nothing global to settle and nothing for the mesh to guess. One machine can use what
systemd already owns and another can run dnsmasq, and neither has to know about the other.
**What the mesh contributes is the part only it can know**: which machines exist and where. That
is `mesh-resolver`, which writes one file and holds no claim, because writing a file takes nothing
over. A daemon module requires that data and claims the resolver — so swapping the daemon changes
that module and nothing else.
**This was recorded on 2026-08-29 and reopened as an unanswered question on the 31st.** Which is
the argument for the table in ADR 0009 being a table: the pattern is only obvious once seen, and
the cost of not seeing it is inventing a mechanism that already exists.
## 3 — Exposure
Settled by [ADR 0007](../../02-DECISIONS/0007-connectivity.md); summarised here because