diff --git a/02-DECISIONS/0117-a-machines-uplink-is-a-seat.md b/02-DECISIONS/0117-a-machines-uplink-is-a-seat.md index 79a2f57..7fbc5da 100644 --- a/02-DECISIONS/0117-a-machines-uplink-is-a-seat.md +++ b/02-DECISIONS/0117-a-machines-uplink-is-a-seat.md @@ -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 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 NetworkManager, `nohook resolv.conf` for dhcpcd, and nothing for systemd-networkd, which 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, and the predecessor's is retired by hand after the take, like any other file the mesh 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 operator decides which manager the machine keeps before either module is taken. - Workstations keep joining networks the way they always have. Under NetworkManager and