ld-spec-008 (b): chore(sbx-lab): pin sandbox image to 4cdfc0a (carries spec-001 run-record writer) #910
No reviewers
Labels
No labels
operator-review
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Homelab/infra-core!910
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "spec-008-b-sbxlab-pin"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Spec 008, PR (b) of the 2-merge chain, cut from live after #909 (a) landed (merge
4cdfc0a3). Run LR-20261110-008.Change (one exact commit, ld-implementer,
Lab-Run: LR-20261110-008)core/manifests/apps/sbx-lab/statefulset.yaml: the twoimage:lines (seed-pi-agent initContainer + sandbox container) →harbor.aaron.reynoza.org/platform/sbx-fleet:4cdfc0a@sha256:638a119c547fb14903d54a6462e8da2ebaf0dfd8272eea17f3f7359caeb103a3, published by the live push build of #909. Same re-pin kind as #898. OnDelete: nothing restarts; the pod takes the image at its next recreate, which is agreed separately with the supervisor/hypervisor. No pod action in this PR. sbx-gits and sbx-sendrast untouched.scripts/gits-sbx-epic-test.sh(what the sbx-lab guard pins, per spec flow 2):[3b]'s sbx-labwant_fleet+ pass message → the new pin; and the guard's HOMELAB-2700 S2 declared-pin mechanism (which covered sbx-gits only) is extended to sbx-lab in the same pattern — H8[8] (per-component loop), 10b[R99][sbx-lab] and 11[H11-render][sbx-lab] normalize the live-side copy to the declared literal, so the declared pin is green and any other value stays red (spine-distinto). No check-logic changes; sbx-sendrast keeps its byte-identical rule.Flows (spec "Done when"), marked
git diff live...HEAD --stat: 2 files, +20/-4; the statefulset diff is the twoimage:lines and nothing else (no env/volume/probe/securityContext).RESULT: FAIL (19 of 715 checks failed, 4 skipped). On this branch:RESULT: FAIL (19 of 715 checks failed, 4 skipped)— identical FAIL list except the[3b]line, where the two sbx-lab legs vanish (the declared pin now matches); the two sbx-gits legs fail identically on live (pre-existing staleeebdbe1expectation, out of scope: sbx-gits must not be touched).H8[8][sbx-lab],10b[R99][sbx-lab],11[H11-render][sbx-lab]all PASS on the branch./commits/<head>/status).Walk: no independent walk: implementer-run checks only.
Rollback (for the record)
Previous pin:
platform/sbx-fleet:fc933fb@sha256:be81ce63119fdb6c2da08356a8cfe63f7d976dcb72b5f3a2c0eaaa2766562066(still pullable).4cdfc0a(carries spec-001 run-record writer)Verdict of record — ld-reviewer — head
d8051ad674: APPROVEmodel: deepseek
session: rev-spec008b-d8051ad-seatA
git rev-parse HEAD=d8051ad674; parent4cdfc0a3= origin/live; 1 commit; author ld-implementer <ld-implementer@noreply>; trailerLab-Run: LR-20261110-008.image:lines (L160 seed-pi-agent, L472 sandbox) fc933fb@be81ce63 → 4cdfc0a@638a119c. Guard = only [3b]want_fleet+pass text and three LIVE-side normalizations (3593 gated[[ $d == sbx-lab ]], 6216 insideif sbx-lab, 7259 the sendrast branch is if/else so sbx-lab only). No now-side sed anywhere; patterns generic (sbx-fleet:[0-9a-f]*@sha256:[0-9a-f]*), undeclared/malformed pins fail closed.bash -nOK. apps/sbx-gits and apps/sbx-sendrast byte-untouched.4cdfc0a= sha256:638a119c…103a3, pushed 02:39:02Z, 109 s after base merge4cdfc0a3(02:37:13Z). Old pinfc933fb= be81ce63… still present (rollback viable).Residuals (non-blocking): (a) [3b] still fails on pre-existing sbx-gits legs (out of scope); (b) image provenance rests on tag naming + push window (Harbor carries no build-provenance annotation); (c) a future rollback must update the pin literal in the three guard sites too, not just the manifest.
Verdict of record — ld-reviewer — head
d8051ad674: APPROVEmodel: deepseek
session: rev-spec008b-d8051ad-seatB
d8051ad6…; single parent4cdfc0a3… = origin/live; 1 commit; author AND committer ld-implementer <ld-implementer@noreply>; trailerLab-Run: LR-20261110-008; Forgejo API agrees (mergeable).image:lines →sbx-fleet:4cdfc0a@sha256:638a119c…; no env/volume/probe/securityContext/updateStrategy touched (OnDelete unchanged → inert). Guard: [3b]*)want_fleet + pass prose; three seds, all LIVE-side only ($R8/$d.live.sts,$T95R/$d.live.sts,$H11R/$d.live1.sts), zero added lines mention.now; guarded to sbx-lab (3593, 6216, 7259 in the else-branch) so sbx-sendrast keeps itscmpbyte-identical path (H8[8][sbx-sendrast]/11[H11-render][sbx-sendrast] PASS). Pattern generic; sbx-gitseebdbe1and thefc933fbliterals untouched; all 13p1_*function bodies sha-identical to live;bash -nOK; no-set -enote: the guarded sed's non-match on other components is harmless.4cdfc0a= sha256:638a119c… (pushed 02:39:02Z, 109 s after base merge4cdfc0a3at 02:37:13Z whose build-and-push is success); Dockerfile ARG = ld-fleet:go-65e18fe@sha256:dd11eda4… = Harbor's go-65e18fe. Rollbackfc933fb= be81ce63… still pullable (HTTP 200).Residuals (non-blocking): (a) the live baseline was captured minutes before #909 merged, but the guard never references go-65e18fe and the full-line diff shows no other change — immaterial; (b) [3b] keeps failing on the pre-existing stale sbx-gits
eebdbe1expectation — out of scope (sbx-gits must not be touched); (c) the new runtime surface appears only at the agreed recreate.