fix(buildkit): the shared daemon is not a project job #421
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/buildkit-not-a-project-job"
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?
The shared daemon could not reach minio. Not because of
buildkitd-restrict— that was retargeted correctly and minio was removed from its deny list — but because of CiliumNetworkPolicybinjovi-project-jobs, which selectsapp.kubernetes.io/managed-by=binjoviand hard-denies egress to minio, cnpg, openbao, shipwright-build and 16 more namespaces.The daemon wore that label, inherited from the Release daemon when the lanes merged. It should never have:
binjovi-project-jobsfences short-lived pods running project-controlled code that Binjovi creates. This daemon is long-lived infrastructure delivered by Flux, and the policy written for it is the cluster-scopedbuildkitd-restrict.Cilium resolves deny before allow, so the daemon-s own allow rule for
minio:9000could never win. Left alone this fails the Zelnet package and IBM i RPG lanes at build time, on cutover, with a connection timeout and nothing pointing at a network policy in a different file.How it was found: probing the live daemon after deploy —
ncto postgres and openbao correctly denied, zot and forgejo correctly reachable, minio unexpectedly not — then confirming by testing the same host from the old package daemon, which does not carry the label and reaches it fine. No gate catches this: a policy that denies too much is indistinguishable from a working one until something needs what it denies.The guard now fails if the label returns. It is anchored to a real label line, because the comment explaining the omission names the label too and a plain match fires on the explanation — which it did, on the first run.
https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76