feat(binjovi): run one BuildKit daemon for Change and Release #405
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/binjovi-single-buildkit"
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?
Merges the Binjovi admission and release BuildKit lanes into one daemon.
Why. The split existed so untrusted Change code could not poison the cache feeding a signed Release. That threat model does not describe this cluster: every committer is authenticated and
binjovi-botis the only merge identity, so a Change carries the trust of the trunk it targets.buildctl dushowed 15.26 GB on release and 18.34 GB on admission, including the same 2.57 GB layer twice.Additive for now. The merged daemon stands up alongside the two it replaces;
sean/binjovistill points both lanes at the old addresses, so the cutover and the removal are later commits.The CA becomes a ClusterIssuer. The daemon is in
binjovi-buildsbutbinjovi-agentis inworkflows, a Secret cannot be mounted across namespaces, and both clients must present a certificate the one CA signed.It does NOT widen
binjovi-untrusted-credential-guard. Dry-running its CEL against the livebinjovi-buildsnamespace denied 12 running pods — native package agents legitimately mountingbinjovi-native-*-build-s3asdefault, caught by thepackageCandidateCredentialrule, which is not gated on the untrusted label. WithfailurePolicy: Failthat is a Binjovi-wide outage, and it is the same over-capture recorded in the policy's own comments from 2026-09-02. The reasoning is in the manifest header so the next reader does not walk into it.The merged daemon adopts the stricter posture package and ibmi-rpg already carry (untrusted label,
binjovi-build-untrusted, no mounted token) which release did not have. Package and ibmi-rpg stay separate — split by egress profile, not trust.Scheduling note. Four persistent-cache pods currently occupy four of five workers; the fifth daemon lands on the free node with zero slack until the retirement commit removes two.
tests/binjovi-buildkit.shadded, verified against six mutations.tests/check.shgreen.https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76