ADR 0104: a provision may be answered by an adapter to the predecessor; issue 093 located; connectivity says how the proxy hands over

This commit is contained in:
2026-09-22 23:57:38 +02:00
parent a2323ade2e
commit a23ede495e
4 changed files with 119 additions and 2 deletions
+14
View File
@@ -9,6 +9,7 @@ code:
- mesh-host internal/apply (the service that reflects a rule set)
updated: 2026-09-22
decisions:
- 02-DECISIONS/0104-a-provision-may-be-answered-by-an-adapter-to-the-predecessor.md
- 02-DECISIONS/0103-what-an-adopted-node-holds-and-what-its-guard-refuses.md
- 02-DECISIONS/0100-a-node-in-use-is-adopted-before-it-is-converged.md
- 02-DECISIONS/0099-a-step-that-runs-once-names-what-it-reads.md
@@ -535,6 +536,19 @@ undeclared one does not — then the module is removed and the port closes with
rule. *A rule set that is written but never loaded passes every check that reads the file, which
is why the check reads packets.*
### While a predecessor still serves the same thing
*2026-09-22, [ADR 0104](../../02-DECISIONS/0104-a-provision-may-be-answered-by-an-adapter-to-the-predecessor.md).*
The mesh's proxy owns the two public ports and derives its routes from what modules contributed, so
it cannot stand beside a predecessor's proxy and cannot serve the predecessor's names. During a
migration a provision of this shape — one provider, a scarce machine-wide resource — may instead be
answered by an **adapter**: a module that provides `route` and writes each contribution into the
predecessor's own configuration, pointing at the machine port the contributing module publishes.
The predecessor's proxy goes on serving every name and renewing every certificate; the mesh's proxy
is taken last, when every route is one the mesh contributed. The adapter is refused on a converged
node, and removed when the predecessor's proxy retires. *How it is checked:* the adoption bed takes
a module behind the adapter and asserts the name answers and the predecessor's own names still do.
### On an adopted node
*2026-09-22, [ADR 0100](../../02-DECISIONS/0100-a-node-in-use-is-adopted-before-it-is-converged.md).* **The firewall found on the machine stays in force**, and the mesh