From 6a2b107fb822e61bedd5177bb2c7f3f44c255793 Mon Sep 17 00:00:00 2001 From: jochen Date: Sat, 29 Aug 2026 00:06:05 +0200 Subject: [PATCH] Restore a consequence the consolidation dropped I said nothing was lost when 65 records became 23. That was too strong, and here is a counterexample: ADR 0046's consequence that the lab needs a way to place images did not survive into the merged substrate record. The compression kept the decision and dropped one of the things it implied. It was not lost from the repository -- 04-ISSUES/009 had already picked it up, which is why it was found at all. But the record no longer carried it, and the record is where somebody would look. Restored, now as a resolved fact rather than an open consequence: the lab raises a registry inside the scenario, which is the real path since that is what every node after the first pulls from. The digests it serves are its own, and that satisfies the pinning rule -- what is required is a reference that is exact and cannot move. Worth recording the wrong assumption too, because it is what made this look impossible for two days: I took "pinned by digest" to mean the UPSTREAM digest had to be preserved. It does not. Any digest that is exact and immutable satisfies the rule, and a registry assigns one. --- 02-DECISIONS/0006-the-substrate-and-the-control-plane.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/02-DECISIONS/0006-the-substrate-and-the-control-plane.md b/02-DECISIONS/0006-the-substrate-and-the-control-plane.md index 2401471..f5044fb 100644 --- a/02-DECISIONS/0006-the-substrate-and-the-control-plane.md +++ b/02-DECISIONS/0006-the-substrate-and-the-control-plane.md @@ -113,7 +113,14 @@ apply time. A tag moves; a digest does not, and reproducibility comes from pinni a thing rather than carrying its bytes. The assumption that a machine might have no network came from the lab and was wrong: a machine -being adopted has one, and the sealed case is the lab, which places images itself. +being adopted has one, and the sealed case is the lab. + +**The lab places images by raising a registry inside the scenario**, which is what a real node +pulls from anyway — so it tests the real path rather than a stand-in for it. The digests that +registry serves are its own, and that satisfies this rule: what is required is a reference that +is **exact and cannot move**, and one it assigned is both. Assuming an upstream digest had to be +preserved is what made this look impossible for a while +([04-ISSUES/009](../04-ISSUES/009-a-digest-pinned-image-cannot-be-placed-in-the-lab/00-report.md)). **Its contents are per operating system** even though its mechanism is not — package names, unit names and service names all differ, so an Arch host embeds an Arch bundle.