0117 review: a holder's service declares no state — the manager's lifecycle is the machine's; a start-only setting's gap on a fresh machine

This commit is contained in:
jochen
2026-09-27 00:07:42 +02:00
parent c3313f6e17
commit df4a3538c3
@@ -70,7 +70,11 @@ with nothing more. Assigning a second is refused, naming the first.
**What a holder declares** — only what keeps the manager and the mesh from contradicting each **What a holder declares** — only what keeps the manager and the mesh from contradicting each
other: other:
- the manager's package, and its service running and enabled at boot; - the manager's package, present — and its service **with no state**: the manager's lifecycle is
the machine's. The mesh never starts, stops, enables or disables it, because stopping it takes
the link down, and a holder unassigned by mistake — or the wrong holder assigned — must not be
able to do that, nor start a second manager beside the one the machine runs. The service is
declared only so a change to the holder's settings reaches a *running* manager;
- the manager's own configuration that leaves the resolver file to the mesh (`dns=none` for - the manager's own configuration that leaves the resolver file to the mesh (`dns=none` for
NetworkManager, `nohook resolv.conf` for dhcpcd, and nothing for systemd-networkd, which NetworkManager, `nohook resolv.conf` for dhcpcd, and nothing for systemd-networkd, which
never writes the resolver file); never writes the resolver file);
@@ -103,6 +107,10 @@ them, and the module's `access`, if it needs one, is read-only.
adopted node the holder's drop-in arrives beside the predecessor's; both say the same thing, adopted node the holder's drop-in arrives beside the predecessor's; both say the same thing,
and the predecessor's is retired by hand after the take, like any other file the mesh and the predecessor's is retired by hand after the take, like any other file the mesh
replaced under another name. replaced under another name.
- A setting a manager reads only at its start is not in force until then. On an adopted machine
the predecessor's identical line normally already is; on a machine that was not adopted,
dhcpcd's resolver hook keeps rewriting the resolver file until dhcpcd next starts, and the
operator restarts it once, in a window of their choosing.
- A machine running two managers is found at assignment: the second holder is refused, and the - A machine running two managers is found at assignment: the second holder is refused, and the
operator decides which manager the machine keeps before either module is taken. operator decides which manager the machine keeps before either module is taken.
- Workstations keep joining networks the way they always have. Under NetworkManager and - Workstations keep joining networks the way they always have. Under NetworkManager and