fix(kernel-chain): declare the sign wave's push credential, and stop serving revoked tokens #475
Loading…
Reference in a new issue
No description provided.
Delete branch "sean/object-store-identities"
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?
Two failures found while releasing, both of the same shape as the missing
pipeline-cosign-signer ServiceAccount, and one of them was taking the whole
release train down once a day.
THE SIGN WAVE'S PUSH CREDENTIAL WAS NEVER DECLARED EITHER.
With its ServiceAccount restored, the cosign Job got as far as
MountVolume.SetUp failed ... secret "registry-credentials" not foundand satin Init:0/1. The retired Pipelines stack created that Secret in namespace
workflows; the sign wave only ever referenced it. It is now declared beside the
Job that mounts it, from the same source as
registry-sean-farm-pushinnamespace shipwright-build -- the self-minted Zot admin credential through the
singleton
registrystore. cosign needs it to push the .sig layer.tests/kernel-sign-dependencies.sh holds the roll-critical wave to declaring
every identity and credential it mounts. Three negative controls, each
confirmed red on its own: the push credential undeclared, the signer identity
undeclared, and the Job falling back to the default account.
A ROTATING TOKEN WAS BEING DELIVERED SLOWER THAN IT WAS REVOKED.
binjovictl releaserefused every project withrelease_candidates_unavailable, andbinjovictl authorityshowed everyprovider-guarded project
blocked · deniedwhile binjovi -- the oneauthoritativeproject -- was fine. Forgejo's own log had the answer: 401 atapiAuthentication on
branch_protections, from the three control-plane pods.The binjovi-reader ForgejoToken rotated at 10:11:43Z and Forgejo revoked the
previous token. The ExternalSecret delivering it refreshes hourly and had last
synced at 09:39:39Z, so for the next 28 minutes the control plane presented a
dead credential. The last successful branch-protection read was at 10:11:20 --
twenty-three seconds before the rotation.
This is a daily outage, not an incident. It self-heals, which makes it worse:
it looks transient and returns every day. Three more deliveries of the
release-assets token had the same 1h interval and the same latent failure --
the package lanes would fail an asset upload for up to an hour after each
rotation. All three now match the writer's long-standing 1m.
tests/rotating-token-delivery.sh refuses any ExternalSecret that carries a
ForgejoToken output at anything but 1m. Its negative control was confirmed red.
The fourth delivery, binjovi-forgejo-reader, is declared in sean/binjovi
manifests/credentials.yaml -- the one that actually broke -- and is fixed
there.
Claude-Session: https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76