From 0e066473b37eb1523e2f60e0b0705553f7f1be8c Mon Sep 17 00:00:00 2001 From: jochen Date: Sat, 26 Sep 2026 23:44:50 +0200 Subject: [PATCH] ADR 0117 accepted; a manager that cannot reload takes the setting at its next start (dhcpcd, measured) --- 02-DECISIONS/0117-a-machines-uplink-is-a-seat.md | 10 +++++++--- 02-DECISIONS/README.md | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) 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 0103e8c..3cbbbbb 100644 --- a/02-DECISIONS/0117-a-machines-uplink-is-a-seat.md +++ b/02-DECISIONS/0117-a-machines-uplink-is-a-seat.md @@ -1,6 +1,6 @@ --- topic: what runs on it -status: proposed +status: accepted date: 2026-09-26 deciders: jochen reconstructed: false @@ -80,8 +80,12 @@ other: - each as a drop-in beside the manager's main file where the manager reads one, and written *into* a shared file otherwise ([ADR 0102](0102-the-mesh-writes-into-a-shared-file-never-over-it.md)); - the service **reloaded** when a drop-in changes, never restarted — a restart drops the link, - and the link is the mesh's own channel to the machine. Whether each manager applies these - settings on a reload is measured in the lab before its module is written, not assumed. + and the link is the mesh's own channel to the machine. **A manager that cannot reload is not + restarted instead:** its setting takes effect at the manager's next start. Measured on the + adopted machines: NetworkManager (1.58) and systemd-networkd (systemd 261) both report + `CanReload=yes`; dhcpcd (10.3) reports `CanReload=no`, so its module declares no trigger at + all. Whether each setting is actually *applied* by a reload is confirmed on a machine before + the module is taken there, not assumed. **What a holder never declares:** a link, an address, a route, a connection profile, a wireless network or its credentials. Those are the operator's, in the sense of diff --git a/02-DECISIONS/README.md b/02-DECISIONS/README.md index 1f26d55..de2b056 100644 --- a/02-DECISIONS/README.md +++ b/02-DECISIONS/README.md @@ -199,7 +199,7 @@ python3 00-META/checks/index.py fail if stale - **0113** — [The vault makes every shared secret, a provider makes resources and data, and the mesh carries both](0113-the-vault-makes-every-secret.md) *(proposed)* - **0114** — [A credential two parties hold rotates over two credentials; one a single party holds rotates in place, staged; and retiring a credential never removes what it reached](0114-a-shared-credential-rotates-over-two-credentials.md) *(proposed)* - **0115** — [One assignment of a module per node: the module's name is the assignment's identity](0115-one-assignment-of-a-module-per-node.md) *(proposed)* -- **0117** — [A machine's uplink is a seat: the mesh configures the manager, never the link](0117-a-machines-uplink-is-a-seat.md) *(proposed)* +- **0117** — [A machine's uplink is a seat: the mesh configures the manager, never the link](0117-a-machines-uplink-is-a-seat.md) ### How it is built