feat: retire the five per-lane BuildKit daemons and the redundant classes #426

Merged
binjovi-bot merged 3 commits from feat/retire-per-lane-buildkits into trunk 2026-09-07 17:31:17 +00:00
Owner

The sean/binjovi cutover is live: every lane dials binjovi-buildkit, all 20 agent pods mount the shared client certificate, and the Shipwright path has been building through it since the previous release. This deletes what they left behind.

Gone: the admission and Release daemons (buildkit-cache.yaml), the Zelnet package daemon, the IBM i RPG daemon, and the Shipwright daemon. Six caches holding 200Gi of claim become one holding 100Gi.

Also gone: zfs-buildkit-{32k,128k,1m} and the tank/buildkit-* datasets. They duplicated zfs-nvme-* to make a recordsize comparison fair; that comparison belongs to purpose-built benchmark daemons on the existing classes, not to a parallel storage family carrying production caches. The datasets are left on the nodes — empty, harmless, and zfs destroy from a privileged DaemonSet running on every node is a foot-gun for one line of tidiness.

Lane-specific egress followed the daemon rather than being deleted with it. The IBM i host ports and gibson TN3270 were only ever pinned by the per-lane guards, so those assertions now run against the shared daemon-s policy, from the lane guards, where a reader looks for a lane-s requirements. The RPG guard also fails if 9474 ever appears: the lane opens 9471-9473 and 9475-9476, and the gap is deliberate.

Guards rewritten rather than dropped. binjovi-buildkit-cache.sh and zfs-buildkit-classes.sh are deleted with what they covered. binjovi-package-native.sh and binjovi-ibmi-rpg-native.sh keep everything about identity and OAuth and lose only the daemon properties now pinned once in binjovi-buildkit.sh. tests/binjovi.sh holds an exact-diff inventory of the Binjovi kustomization, so it moves in the same commit or the suite fails — as it did, twice, which is the guard working.

The tombstone refuses to delete a claim any pod still mounts. A mounted claim keeps the pvc-protection finalizer, so the delete would hang to the deadline rather than fail; refusing up front says why. buildkitd-cache-1m is not in it — the Shipwright tree is prune: true and Flux removes that one itself.

https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76

The `sean/binjovi` cutover is live: every lane dials `binjovi-buildkit`, all 20 agent pods mount the shared client certificate, and the Shipwright path has been building through it since the previous release. This deletes what they left behind. **Gone:** the admission and Release daemons (`buildkit-cache.yaml`), the Zelnet package daemon, the IBM i RPG daemon, and the Shipwright daemon. Six caches holding 200Gi of claim become one holding 100Gi. **Also gone:** `zfs-buildkit-{32k,128k,1m}` and the `tank/buildkit-*` datasets. They duplicated `zfs-nvme-*` to make a recordsize comparison fair; that comparison belongs to purpose-built benchmark daemons on the existing classes, not to a parallel storage family carrying production caches. The datasets are left on the nodes — empty, harmless, and `zfs destroy` from a privileged DaemonSet running on every node is a foot-gun for one line of tidiness. **Lane-specific egress followed the daemon rather than being deleted with it.** The IBM i host ports and gibson TN3270 were only ever pinned by the per-lane guards, so those assertions now run against the shared daemon-s policy, from the lane guards, where a reader looks for a lane-s requirements. The RPG guard also fails if **9474** ever appears: the lane opens 9471-9473 and 9475-9476, and the gap is deliberate. **Guards rewritten rather than dropped.** `binjovi-buildkit-cache.sh` and `zfs-buildkit-classes.sh` are deleted with what they covered. `binjovi-package-native.sh` and `binjovi-ibmi-rpg-native.sh` keep everything about identity and OAuth and lose only the daemon properties now pinned once in `binjovi-buildkit.sh`. `tests/binjovi.sh` holds an exact-diff inventory of the Binjovi kustomization, so it moves in the same commit or the suite fails — as it did, twice, which is the guard working. **The tombstone refuses to delete a claim any pod still mounts.** A mounted claim keeps the `pvc-protection` finalizer, so the delete would hang to the deadline rather than fail; refusing up front says why. `buildkitd-cache-1m` is not in it — the Shipwright tree is `prune: true` and Flux removes that one itself. https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76
feat: retire the five per-lane BuildKit daemons and the redundant classes
Some checks failed
binjovi/ci Binjovi failed the frozen plan
0be8b5b90d
The sean/binjovi cutover is live: every lane now dials binjovi-buildkit, all 20
agent pods mount the shared client certificate, and the Shipwright path has been
building through it since the previous release. This deletes what they left
behind.

Gone: the admission and Release daemons (buildkit-cache.yaml), the Zelnet
package daemon, the IBM i RPG daemon, and the Shipwright daemon. Six caches
holding 200Gi of claim become one holding 100Gi.

Also gone: zfs-buildkit-{32k,128k,1m} and the tank/buildkit-* datasets. They
duplicated zfs-nvme-* to make a recordsize comparison fair; that comparison
belongs to purpose-built benchmark daemons on the existing classes, not to a
parallel storage family carrying production caches. The datasets are left on the
nodes -- empty, harmless, and `zfs destroy` from a privileged DaemonSet running
on every node is a foot-gun for one line of tidiness.

Lane-specific egress FOLLOWED the daemon rather than being deleted with it. The
IBM i host ports and gibson TN3270 were only ever pinned by the per-lane guards,
so those assertions now run against the shared daemon's policy, in the lane
guards, where a reader looks for a lane's requirements. The RPG guard also fails
if 9474 ever appears: the lane opens 9471-9473 and 9475-9476, and the gap is
deliberate.

Guards rewritten rather than dropped. binjovi-buildkit-cache.sh and
zfs-buildkit-classes.sh are deleted with what they covered.
binjovi-package-native.sh and binjovi-ibmi-rpg-native.sh keep everything about
identity and OAuth and lose only the daemon properties now pinned once in
binjovi-buildkit.sh. tests/binjovi.sh holds an exact-diff inventory of the
Binjovi kustomization, so it moves in the same commit or the suite fails -- as
it did, twice, which is the guard working.

The tombstone refuses to delete a claim that any pod still mounts. A mounted
claim keeps the pvc-protection finalizer, so the delete would hang to the
deadline rather than fail; refusing up front says why. buildkitd-cache-1m is not
in it: the Shipwright tree is prune: true and Flux removes that one itself.

Claude-Session: https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76
chore: retry CI after source cache failure
Some checks failed
binjovi/ci Binjovi failed the frozen plan
9e3a20d289
The shared BuildKit daemon moved to a fresh 100Gi cache, so the validator's
binjovi-gitops-source-v1 git cache mount starts empty and the first clone into
it produced nothing:

  warning: You appear to have cloned an empty repository.
  binjovi-gitops-select: cannot calculate an exact changed-path set: 1

Claude-Session: https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76
sean force-pushed feat/retire-per-lane-buildkits from 9e3a20d289
Some checks failed
binjovi/ci Binjovi failed the frozen plan
to f59299e7cf
All checks were successful
binjovi/ci Binjovi completed the frozen plan
2026-09-07 17:27:17 +00:00
Compare
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
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
sean/seanfarm!426
No description provided.