ADR 0093: a fixture that runs a module's runtime carries its name; 074 diagnosed, two beds converted; 075 resolved
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
---
|
||||
topic: checking it
|
||||
status: accepted
|
||||
date: 2026-09-21
|
||||
deciders: jochen
|
||||
reconstructed: false
|
||||
extends: 02-DECISIONS/0089-a-bed-reads-the-catalogue-it-proves.md
|
||||
---
|
||||
|
||||
# 93. A fixture that runs a module's runtime carries the module's name
|
||||
|
||||
## Context
|
||||
|
||||
[ADR 0089](0089-a-bed-reads-the-catalogue-it-proves.md) said a bed that needs less than a module
|
||||
declares is a mesh test, and carries a name of its own. Twelve beds were to be renamed on that
|
||||
basis ([issue 074](../04-ISSUES/074-a-mesh-test-wears-a-catalogue-modules-name/00-report.md)).
|
||||
Reading how a module's tools are reached showed why they cannot be: the account the mesh issues
|
||||
a module is scoped to `serve.<module>.*` from the manifest's name, and the runtime binds its tool
|
||||
queues under the name baked into its image. A fixture named otherwise but running the real
|
||||
runtime would be refused its own queues. The name is not a label; it is the tool namespace and
|
||||
the broker scope.
|
||||
|
||||
## Considered Options
|
||||
|
||||
1. **Rename anyway, and rebuild each runtime under the fixture's name.** Rejected: a runtime built
|
||||
under a false name proves nothing about the module and costs a build per bed.
|
||||
2. **A fixture that runs a module's runtime carries the module's name, and therefore reads the
|
||||
catalogue.** Adopted.
|
||||
|
||||
## Decision
|
||||
|
||||
A bed that runs a module's runtime installs the catalogue's manifest for that module and what it
|
||||
requires — the vault for a `secret`, the route module for a route — and proves the mechanism
|
||||
against the real module. A name of its own is for a fixture that runs no real runtime: a
|
||||
declaration-only stub, a bare upstream image.
|
||||
|
||||
## Consequences
|
||||
|
||||
The mechanism beds become module beds with a mechanism inside them, which is more than they
|
||||
were. What got harder: a bed that wanted a cut-down redis now raises the vault beside it; one that
|
||||
wanted a sidecar without its server raises the server. Each conversion is a lab run, and the beds
|
||||
still carrying a copy are declared with this reason until converted.
|
||||
|
||||
## How it is checked
|
||||
|
||||
The lab's inline-copy check refuses undeclared copies as before; the declared list's reason for
|
||||
these beds names this record. Two beds converted with the vault beside them ran green.
|
||||
|
||||
## References
|
||||
|
||||
- [issue 074](../04-ISSUES/074-a-mesh-test-wears-a-catalogue-modules-name/00-report.md)
|
||||
- [ADR 0089](0089-a-bed-reads-the-catalogue-it-proves.md), [ADR 0047](0047-a-module-runs-its-code-as-its-own-process-with-its-own-account.md)
|
||||
- [`03-DESIGN/01-to-be/01-end-to-end-testing.md`](../03-DESIGN/01-to-be/01-end-to-end-testing.md)
|
||||
@@ -165,6 +165,7 @@ python3 00-META/checks/index.py fail if stale
|
||||
- **0017** — [A test defends a decision](0017-a-test-defends-a-decision.md)
|
||||
- **0018** — [A picture of a system is read from the system, never from what asked for it](0018-a-picture-is-read-from-what-runs.md)
|
||||
- **0089** — [A bed reads the catalogue it proves](0089-a-bed-reads-the-catalogue-it-proves.md)
|
||||
- **0093** — [A fixture that runs a module's runtime carries the module's name](0093-a-fixture-that-runs-a-modules-runtime-carries-its-name.md)
|
||||
|
||||
### How we work
|
||||
|
||||
|
||||
Reference in New Issue
Block a user