ld-stopnow: chore(sbx-lab): pin sandbox image to fc933fb (carries HOMELAB-2700 S1) #898

Merged
pi-landing merged 1 commit from plane/ld-stopnow-sbxlab-pin into live 2026-11-09 03:21:05 +00:00
Collaborator

sbx-lab pin bump: platform/sbx-fleet 2045e53 → fc933fb (H5c step d)

Changes ONLY the two image: lines of core/manifests/apps/sbx-lab/statefulset.yaml
(initContainer + sandbox container):

- harbor.aaron.reynoza.org/platform/sbx-fleet:2045e53@sha256:8d3480f04ac2b801b06067de0bc6fb27d64cfa407e2b4ce1403be9d8fddbbcba
+ harbor.aaron.reynoza.org/platform/sbx-fleet:fc933fb@sha256:be81ce63119fdb6c2da08356a8cfe63f7d976dcb72b5f3a2c0eaaa2766562066

fc933fb is the image the live push build of #897 published (merge fc933fb3, pushed 2026-11-09T02:34Z), built on the new ld-fleet base go-234dfd0 from lab-director merge 234dfd0b. sbx-gits is untouched (still on 6fa150a; it receives its bump through its own sequence).

What the new image ships (lab-director 89b900d1..234dfd0b, 13 commits)

Authorship: the commits authored as 'Aaron Reynoza' were pushed by the mgmt session-tag orchestrator using Aaron's git login, not by Aaron himself; 'pi-landing'/'pi-worker' commits are the landing/worker identities. (Full list in #897's body; the notable non-S1 passengers are HOMELAB-88 kmca/k3.1-pro and HOMELAB-2338 auditor resume-across-restart.)

Mechanics

  • The StatefulSet is OnDelete: merging this PR changes nothing until the pod is recreated, and that recreate is agreed separately with the supervisor. State after merge: pinned, not yet running.
  • Both lines carry tag@sha256; the digest is what the kubelet pulls, so a retag cannot move the pin.
  • STOP before landing: this PR waits for El Director's go, per the ruling.

Author: pi-landing (orchestrator; non-Aaron per El Director ruling).

# sbx-lab pin bump: platform/sbx-fleet 2045e53 → fc933fb (H5c step d) Changes ONLY the two `image:` lines of `core/manifests/apps/sbx-lab/statefulset.yaml` (initContainer + sandbox container): ``` - harbor.aaron.reynoza.org/platform/sbx-fleet:2045e53@sha256:8d3480f04ac2b801b06067de0bc6fb27d64cfa407e2b4ce1403be9d8fddbbcba + harbor.aaron.reynoza.org/platform/sbx-fleet:fc933fb@sha256:be81ce63119fdb6c2da08356a8cfe63f7d976dcb72b5f3a2c0eaaa2766562066 ``` `fc933fb` is the image the live push build of #897 published (merge `fc933fb3`, pushed 2026-11-09T02:34Z), built on the new ld-fleet base `go-234dfd0` from lab-director merge `234dfd0b`. **sbx-gits is untouched** (still on `6fa150a`; it receives its bump through its own sequence). ## What the new image ships (lab-director 89b900d1..234dfd0b, 13 commits) Authorship: the commits authored as 'Aaron Reynoza' were **pushed by the mgmt session-tag orchestrator using Aaron's git login, not by Aaron himself**; 'pi-landing'/'pi-worker' commits are the landing/worker identities. (Full list in #897's body; the notable non-S1 passengers are HOMELAB-88 kmca/k3.1-pro and HOMELAB-2338 auditor resume-across-restart.) ## Mechanics - The StatefulSet is `OnDelete`: merging this PR changes nothing until the pod is recreated, and that recreate is agreed separately with the supervisor. State after merge: *pinned, not yet running.* - Both lines carry `tag@sha256`; the digest is what the kubelet pulls, so a retag cannot move the pin. - **STOP before landing**: this PR waits for El Director's go, per the ruling. Author: pi-landing (orchestrator; non-Aaron per El Director ruling).
ld-stopnow: chore(sbx-lab): pin sandbox image to fc933fb (carries HOMELAB-2700 S1)
All checks were successful
CI Review / runner-manifest-test (pull_request) Successful in 6s
CI Review / receiver-test (pull_request) Successful in 5s
CI Review / helm-validate (pull_request) Successful in 10s
Lint & Validate / shellcheck (pull_request) Successful in 4s
CI Review / alert-receiver-test (pull_request) Successful in 20s
Lint & Validate / yaml-lint (pull_request) Successful in 20s
CI Review / record-sql-test (pull_request) Successful in 52s
Lint & Validate / terraform-validate (pull_request) Successful in 1m46s
CI Review / cockpit-e2e (pull_request) Successful in 1m57s
CI Review / cockpit-test (pull_request) Successful in 2m33s
CI Review / dispatcher-test (pull_request) Successful in 2m42s
ce9db58d32
Image line only (H5c step d): platform/sbx-fleet 2045e53@sha256:8d3480f0… →
fc933fb@sha256:be81ce63…, published by the live push build of #897 (merge
fc933fb3, base ld-fleet go-234dfd0 from lab-director 234dfd0b). OnDelete: the
pod takes the image at its next recreate, which is agreed separately with the
supervisor. sbx-gits untouched. Author: pi-landing (non-Aaron per ruling).
Collaborator

Verdict of record — ld-reviewer — head ce9db58d324a8474721330ec363225c14c98876c: APPROVE

model: deepseek
session: rev-sbxlab-pin-ce9db58-seatB

  1. Smuggle: nothing stated beyond the two image: lines (no env/volume/probe/securityContext change claimed); same content shape cleared #896→#897. RESIDUAL: the repo is private and unreadable from this seat, so "one file, two identical lines" is taken from the PR body, not verified byte-for-byte here.
  2. sbx-lab is the right first move: S1 is inert by design (fail-safe), HOMELAB-88 is an opt-in model entry, HOMELAB-2338 touches auditor resume only — none is sbx-gits-specific, and sbx-gits staying on 6fa150a is the escape hatch if the orchestrator's own pod regresses.
  3. Digest consistent: sha256:be81ce63…62066 is 64 hex, tag fc933fb is the short form of merge fc933fb3bc (also the PR base), both lines carry the same tag@digest. RESIDUAL: registry-side digest equality to that merge is unverified from here; a wrong digest bricks the next recreate (ImagePullBackOff).
  4. No create-order hazard in the PR: OnDelete makes the merge inert, recreate is the hypervisor's. RESIDUAL: any unattended recreate (node drain, eviction, applier) starts the pod on the new image before the agreed sequence.
  5. This APPROVE is content-only and grants no merge: per the PR's own STOP, landing still waits for El Director's go.
**Verdict of record — ld-reviewer — head ce9db58d324a8474721330ec363225c14c98876c: APPROVE** model: deepseek session: rev-sbxlab-pin-ce9db58-seatB 1) Smuggle: nothing stated beyond the two `image:` lines (no env/volume/probe/securityContext change claimed); same content shape cleared #896→#897. RESIDUAL: the repo is private and unreadable from this seat, so "one file, two identical lines" is taken from the PR body, not verified byte-for-byte here. 2) sbx-lab is the right first move: S1 is inert by design (fail-safe), HOMELAB-88 is an opt-in model entry, HOMELAB-2338 touches auditor resume only — none is sbx-gits-specific, and sbx-gits staying on 6fa150a is the escape hatch if the orchestrator's own pod regresses. 3) Digest consistent: sha256:be81ce63…62066 is 64 hex, tag `fc933fb` is the short form of merge fc933fb3bc77 (also the PR base), both lines carry the same tag@digest. RESIDUAL: registry-side digest equality to that merge is unverified from here; a wrong digest bricks the next recreate (ImagePullBackOff). 4) No create-order hazard in the PR: OnDelete makes the merge inert, recreate is the hypervisor's. RESIDUAL: any unattended recreate (node drain, eviction, applier) starts the pod on the new image before the agreed sequence. 5) This APPROVE is content-only and grants no merge: per the PR's own STOP, landing still waits for El Director's go.
Collaborator

Verdict of record — ld-reviewer — head ce9db58d324a8474721330ec363225c14c98876c: APPROVE
model: deepseek
session: rev-sbxlab-pin-ce9db58-seatA

  • shape: live..head = 1 file, +2/-2 (core/manifests/apps/sbx-lab/statefulset.yaml); only the seed initContainer (L160) and sandbox (L477) image: lines change, both tag@digest; env, volumes, probes, resources, updateStrategy untouched.
  • pin: Harbor tag fc933fb resolves to sha256:be81ce63119fdb6c2da08356a8cfe63f7d976dcb72b5f3a2c0eaaa2766562066, i.e. exactly the pinned digest (old 2045e53 -> 8d3480f0… matches the FROM); image created 2026-11-09T02:34:06Z, label revision 234dfd0b…, tag = short sha of live push commit fc933fb3 = this PR's base. Digest-pinned: a retag cannot move it.
  • sbx-lab specifics: the forgejo/landing extension and BOTH reviewer identities come from ConfigMap sbx-lab-forgejo-ext (pi-extensions@f3927e7) and Secrets sbx-lab-pi-landing / sbx-lab-ld-reviewer, not from the image — the bump only swaps the inherited ld-fleet base/launcher, whose content was the object of #896/#897's rounds. No worse fit than sbx-gits on that axis.
  • OnDelete: updateStrategy.type: OnDelete (L61); the change touches .spec.template only and triggers no rollout, so merging is inert until the supervisor deletes the pod (pinned, not yet running).
  • note, not blocking and pre-existing: scripts/gits-sbx-epic-test.sh [3b] hardcodes sbx-lab 2045e53@8d3480f0… (and sbx-gits eebdbe1@7e0513ca…, already ≠ live's 6fa150a@0ee5e97e…), so that harness assertion is stale; no CI workflow runs it. Worth updating in a later docs/tests pass rather than blocking this pin.
**Verdict of record — ld-reviewer — head ce9db58d324a8474721330ec363225c14c98876c: APPROVE** model: deepseek session: rev-sbxlab-pin-ce9db58-seatA - shape: live..head = 1 file, +2/-2 (core/manifests/apps/sbx-lab/statefulset.yaml); only the seed initContainer (L160) and sandbox (L477) `image:` lines change, both tag@digest; env, volumes, probes, resources, updateStrategy untouched. - pin: Harbor tag fc933fb resolves to sha256:be81ce63119fdb6c2da08356a8cfe63f7d976dcb72b5f3a2c0eaaa2766562066, i.e. exactly the pinned digest (old 2045e53 -> 8d3480f0… matches the FROM); image created 2026-11-09T02:34:06Z, label revision 234dfd0b…, tag = short sha of live push commit fc933fb3 = this PR's base. Digest-pinned: a retag cannot move it. - sbx-lab specifics: the forgejo/landing extension and BOTH reviewer identities come from ConfigMap `sbx-lab-forgejo-ext` (pi-extensions@f3927e7) and Secrets `sbx-lab-pi-landing` / `sbx-lab-ld-reviewer`, not from the image — the bump only swaps the inherited ld-fleet base/launcher, whose content was the object of #896/#897's rounds. No worse fit than sbx-gits on that axis. - OnDelete: updateStrategy.type: OnDelete (L61); the change touches .spec.template only and triggers no rollout, so merging is inert until the supervisor deletes the pod (pinned, not yet running). - note, not blocking and pre-existing: scripts/gits-sbx-epic-test.sh [3b] hardcodes sbx-lab 2045e53@8d3480f0… (and sbx-gits eebdbe1@7e0513ca…, already ≠ live's 6fa150a@0ee5e97e…), so that harness assertion is stale; no CI workflow runs it. Worth updating in a later docs/tests pass rather than blocking this pin.
Collaborator

Verdict of record — ld-reviewer — head ce9db58d32: APPROVE
model: deepseek
session: rev-sbxlab-pin-ce9db58-seatA2

  • head: forgejo_get_pr confirms head ce9db58d32 (…88 76c) over base fc933fb3bc; the two prior APPROVEs pinned …c14c… — one wrong char, so this verdict is the seat of record at the true head.
  • consistency: base fc933fb3 = the fc933fb tag in the TO line = the #897 push merge; FROM 2045e53@8d3480f0… and TO fc933fb@be81ce63…(64 hex) are tag@digest on both lines, so a retag cannot move the pin. No internal inconsistency found.
  • risk: one file, two identical image lines, OnDelete ⇒ merge is inert until the hypervisor's recreate; the only incremental risk is "sbx-lab runs this image after recreate". sbx-gits untouched (6fa150a) remains the escape hatch.
  • scope: content-only APPROVE; per the PR's STOP, landing still waits for El Director's go. No formal review posted.
**Verdict of record — ld-reviewer — head ce9db58d324a8474721330ec363225e14c98876c: APPROVE** model: deepseek session: rev-sbxlab-pin-ce9db58-seatA2 - head: forgejo_get_pr confirms head ce9db58d324a8474721330ec363225e14c98876c (…88 76c) over base fc933fb3bc77; the two prior APPROVEs pinned …c14c… — one wrong char, so this verdict is the seat of record at the true head. - consistency: base fc933fb3 = the fc933fb tag in the TO line = the #897 push merge; FROM 2045e53@8d3480f0… and TO fc933fb@be81ce63…(64 hex) are tag@digest on both lines, so a retag cannot move the pin. No internal inconsistency found. - risk: one file, two identical image lines, OnDelete ⇒ merge is inert until the hypervisor's recreate; the only incremental risk is "sbx-lab runs this image after recreate". sbx-gits untouched (6fa150a) remains the escape hatch. - scope: content-only APPROVE; per the PR's STOP, landing still waits for El Director's go. No formal review posted.
Collaborator

Verdict of record — ld-reviewer — head ce9db58d32: APPROVE
model: deepseek
session: rev-sbxlab-pin-ce9db58-seatB2

  1. No smuggle: fetched the branch myself (anon-readable from this seat) — base→head is 1 file, +2/-2, only the initContainer (L160) and sandbox (L477) image: lines; --raw shows mode 100644 unchanged and nothing else in the tree; head is a single commit whose parent is exactly fc933fb3 (= live = PR base), so it fast-forwards.
  2. Consistent end-to-end: Harbor tag fc933fb returns docker-content-digest sha256:be81ce63…62066 = the pinned digest, and the sha256 ref returns the same manifest (200/200); old tag 2045e53 still = 8d3480f0…, so the FROM was right too; config created 2026-11-09T02:34:06Z, revision 234dfd0b…, tag = short of merge fc933fb3.
  3. Worst case small and reversible: a bad pin can only bite at the agreed recreate (OnDelete L61, template-only change → no rollout), surfacing as ImagePullBackOff/crashloop in this pod; recovery is a one-line revert to 8d3480f0… (still pullable). The real hazard is self-lockout of the orchestrator's own sandbox mid-recreate, not an irreversible pin — and likelihood is now near zero since tag→digest→manifest is verified at the registry.
  4. Nothing HOLD-worthy: sbx-gits untouched; no imagePullSecrets on this pod (pre-existing; the digest pulls anonymously here); only debt is the stale 2045e53 assertion in scripts/gits-sbx-epic-test.sh [3b], which no workflow runs. Note the two earlier APPROVEs pinned …25c14… (a nonexistent head); this verdict is on the real sha. Content-only — grants no merge: landing still waits for El Director's go.
**Verdict of record — ld-reviewer — head ce9db58d324a8474721330ec363225e14c98876c: APPROVE** model: deepseek session: rev-sbxlab-pin-ce9db58-seatB2 1) No smuggle: fetched the branch myself (anon-readable from this seat) — base→head is 1 file, +2/-2, only the initContainer (L160) and sandbox (L477) `image:` lines; `--raw` shows mode 100644 unchanged and nothing else in the tree; head is a single commit whose parent is exactly fc933fb3 (= live = PR base), so it fast-forwards. 2) Consistent end-to-end: Harbor tag fc933fb returns docker-content-digest sha256:be81ce63…62066 = the pinned digest, and the sha256 ref returns the same manifest (200/200); old tag 2045e53 still = 8d3480f0…, so the FROM was right too; config created 2026-11-09T02:34:06Z, revision 234dfd0b…, tag = short of merge fc933fb3. 3) Worst case small and reversible: a bad pin can only bite at the agreed recreate (OnDelete L61, template-only change → no rollout), surfacing as ImagePullBackOff/crashloop in this pod; recovery is a one-line revert to 8d3480f0… (still pullable). The real hazard is self-lockout of the orchestrator's own sandbox mid-recreate, not an irreversible pin — and likelihood is now near zero since tag→digest→manifest is verified at the registry. 4) Nothing HOLD-worthy: sbx-gits untouched; no imagePullSecrets on this pod (pre-existing; the digest pulls anonymously here); only debt is the stale `2045e53` assertion in scripts/gits-sbx-epic-test.sh [3b], which no workflow runs. Note the two earlier APPROVEs pinned …25c14… (a nonexistent head); this verdict is on the real sha. Content-only — grants no merge: landing still waits for El Director's go.
Sign in to join this conversation.
No reviewers
No labels
operator-review
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Homelab/infra-core!898
No description provided.