The substrate is a store and a broker
Third correction to one table today, found the same way as the other two: by asking whether both halves of the test were answered, or only the easy one. 0006 admits the registry because "it cannot grant itself a repository" — true, and the second half. Nothing established that the control plane needs one in order to run. Counted rather than argued: the bundle raises twelve resources and no registry is among them. The registry arrives afterwards as an ordinary module, which is exactly what the lab asserts. 0006 half-said this already, calling it "substrate by role and ordinary by delivery, provisioned once there is a control plane to do it". A member provisioned by the thing it supposedly precedes is not a member; that phrase was carrying a contradiction rather than resolving one. The registry is a closer call than the object store and the difference is worth keeping: the control plane never touches an object store at all, but it genuinely uses the registry. So the registry is a real dependency of the mesh operating and not of the control plane starting — and it is the second that the word means. The substrate is now exactly what the bundle raises, which is the strongest form the list can take: checkable by counting rather than by reading an argument, and the two cannot drift. The finding is not about substrates. A test with two conditions is a test only when both are asked.
This commit is contained in:
@@ -37,7 +37,7 @@ The test, applied:
|
||||
| a relational store — **PostgreSQL** | its own state lives there | no — provisioning needs the store | **substrate** |
|
||||
| a message bus — **LavinMQ** | it reaches nodes over it ([ADR 0002](../../02-DECISIONS/0002-nodes-communicate-over-a-broker.md)) | no — it cannot grant itself a virtual host | **substrate** |
|
||||
| ~~an object store~~ | ~~artifacts and blobs it delivers~~ | — | **not substrate** — [ADR 0028](../../02-DECISIONS/0028-the-substrate-supplies-the-control-plane-and-nothing-else.md) |
|
||||
| an image registry — **the OCI registry** | images it delivers to nodes | no — it needs a repository | **substrate** |
|
||||
| ~~an image registry~~ | ~~images it delivers to nodes~~ | — | **not substrate** — needed to operate, not to start ([ADR 0033](../../02-DECISIONS/0033-the-substrate-is-a-store-and-a-broker.md)) |
|
||||
| ~~an identity provider~~ | ~~only if it delegates authentication~~ | — | **not substrate** — it delegates to nothing ([ADR 0031](../../02-DECISIONS/0031-the-control-plane-authenticates-nobody.md)) |
|
||||
| ingress — **Traefik** | not to start; only to be reached by name | — it grants itself one afterwards | **not substrate** ([ADR 0007](../../02-DECISIONS/0007-connectivity.md)) |
|
||||
| anything else the mesh hosts | no | — | not substrate |
|
||||
|
||||
Reference in New Issue
Block a user