ADR 0145: a module checks what the mesh claims is reachable, and it checks itself
The mesh asserts three things are callable and has never checked any of them. A module on every machine serves an endpoint of its own and dials every other machine's, from the position the callers are in — not the host and not the control plane, both of which reach those addresses by paths no ordinary caller uses and would have passed throughout the outage. Its probe is its own endpoint, declared reachable over the private network, so it is admitted by exactly the rule that governs every internally-exposed service. The tempting target is a service every machine has, and those are the ones never closed — ssh above all — which would have passed for all eleven hours. Resolution and connection reported separately, because they have different owners. One failure is not a fault, and the count travels with the result. It reports and repairs nothing. Built on a scheduled container, a rendered roster fact and a bundle: no new vocabulary. Adopted on its own merits, which is what 0143 was not.
This commit is contained in:
+11
-3
@@ -90,9 +90,17 @@ same machine, another machine's service exposed to the private network, and anot
|
||||
exposed publicly. The filter had the second and third and expressed the first as a list of addresses that
|
||||
no container could match.
|
||||
|
||||
**The question this issue is actually about is still open.** Nothing in the mesh would have said a grant
|
||||
had stopped working, and nothing does now. That is not answered by a configuration fix, and it should not
|
||||
be answered by a mechanism adopted as a remedy for one.
|
||||
**And then the question this issue is actually about was answered on its own terms.**
|
||||
[ADR 0145](../../02-DECISIONS/0145-a-module-checks-what-the-mesh-claims-is-reachable.md): a module on
|
||||
every machine serves an endpoint of its own and dials every other machine's, from the position the
|
||||
callers are in. Its probe is its own endpoint declared reachable over the private network, so it is
|
||||
admitted by exactly the rule that governs every internally-exposed service and fails when that rule is
|
||||
wrong — where a probe on a service every machine has would have passed for all eleven hours, because the
|
||||
services every machine has are the ones never closed.
|
||||
|
||||
Adopted on its merits rather than as the remedy for a configuration error, which is what 0143 was and
|
||||
why it went. The module is written and merged; it is not yet assigned, so every machine currently reads
|
||||
unchecked.
|
||||
|
||||
## Open questions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user