Skip to content

build(fleet): advance the two literal image pins to b15 - #284

Merged
rldyourmnd merged 1 commit into
mainfrom
build/advance-the-literal-image-pins
Aug 30, 2026
Merged

build(fleet): advance the two literal image pins to b15#284
rldyourmnd merged 1 commit into
mainfrom
build/advance-the-literal-image-pins

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

Three standard classes name the floating alias nddev-ubuntu-24.04-amd64-container-current, so the b15 promotion moved them. Two name the exact image — nddev-priority-standard and nddev-linux-release — and that is deliberate: the release lane carries OIDC authority and should not follow a promotion silently.

Deliberate does not mean automatic. Their scale sets stayed on b14 while the provider policy moved to b15, so the provider refused every create for both:

image alias "...-b14" is not the configured alias "...-b15" for pool "nddev-linux-release"

nddev-linux-release is the only class permitted tcp/22 egress, so the Almaty staging deploy queued 39 minutes with no runner. Found by that repository measuring completed placements per class — 56 for standard, 0 for release — not by anything fleet-side noticing.

This is the third step of promote, repin, migrate, and the one that makes an exact pin honest: a class naming an image by name has to be told when the image changes. The estate contract says the same from the other end — every standard pool must bind one promoted fingerprint and one exact N-1 rollback, which a split fleet cannot satisfy.

The constants alone change nothing live. Moving the scale sets needs the controller rebuilt and reconcile-garm run with explicit image migration, which disables each scale set while it moves — so it waits until the release lane is idle rather than interrupting the deploy it just unblocked.

go build, go test ./... clean. Not provider-domain source, so no provider release is required.

https://claude.ai/code/session_017rA31sF7EzvtbRmi18Uzz9

Three standard classes name the floating alias
nddev-ubuntu-24.04-amd64-container-current, so the b15 promotion moved them.
Two name the exact image instead -- nddev-priority-standard and
nddev-linux-release -- and that is deliberate: the release lane carries OIDC
authority and should not follow a promotion silently.

Deliberate does not mean automatic. Their scale sets stayed on b14 while the
provider policy moved to b15, and the provider then refused every create for
both classes:

  image alias "...-b14" is not the configured alias "...-b15"
  for pool "nddev-linux-release"

nddev-linux-release is the only class permitted tcp/22 egress, so the Almaty
staging deploy queued thirty-nine minutes with no runner. Found by that repository
measuring completed placements per class -- 56 for standard, 0 for release --
rather than by anything on the fleet side noticing.

This is the third step of promote, repin, migrate, and it is the one that makes
an exact pin honest: a class that names an image by name has to be told when the
image changes. The estate's own contract says the same thing from the other end,
requiring every standard pool to bind one promoted fingerprint and one exact N-1
rollback, which a split fleet cannot satisfy.

The constants alone change nothing live. Moving the scale sets needs the
controller rebuilt and reconcile-garm run with explicit image migration, which
disables each scale set while it moves -- so it waits until the release lane is
idle rather than interrupting the deploy it just unblocked.

Claude-Session: https://claude.ai/code/session_017rA31sF7EzvtbRmi18Uzz9
@rldyourmnd
rldyourmnd merged commit 846c7a9 into main Aug 30, 2026
10 checks passed
@rldyourmnd
rldyourmnd deleted the build/advance-the-literal-image-pins branch August 30, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant