fix(build-images): publish into zot /build/**, not the codeberg mirror namespace #2050
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/zot-push-namespace"
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 in-cluster-first cutover (
a68d66a) moved the build push fromcodeberg.org/somearatoregistry.sean.farm/someara. It changed the host and kept the path — and that path is a mirror. Every builder-images build has failed since:Why the namespace decides this
Secret/zot-configin nsregistrydeclares onDemand sync from codeberg:/someara/**and/seanfarm/**are read-through caches, not local repos. On a push zot'sCheckBlobmisses locally, the sync extension asks codeberg, codeberg 404s, and the upload is refused. The zot log shows the whole chain:cache miss→failed to stat blob s3aws: Path not found→failed to request manifest head codeberg.org/someara/...: 404→image is filtered out by sync config.The error names a blob upload, so it reads like a zot storage fault. It is a namespace collision.
/build/**is in no sync rule — a real local repo. Shipwright already publishesbuild/linux-kernel,build/node-bootc,build/forgejo-operatorthere. This applies that existing convention to the one publisher that missed it.What changes
Two constructing lines in
pipeline-build-images.yaml: the push ref and the MANIFEST line that carries it forward.pipeline-promote-imagesderives its ref from that MANIFEST, so it follows without an edit — only its comments move.The codeberg backup leg is unchanged. Promote still copies the released
:vNtocodeberg.org/someara, bounded and best-effort. This change protects that leg: the alternative fix — dropping thesomeara/**sync rule so pushes are allowed there — would remove the mirror the backup exists to feed.Checks
registry-adminholdsread/create/update/deleteon**in zot accessControl, andregistry-credentialsauthenticates asregistry-admin—/build/**is writable, no policy change needed.Not in scope (recorded separately)
The four Dockerfile
FROMs in builder-images still resolving against codeberg, and theregistry-package-prunepolicy that deletes:vNtags because sha CI tags crowd them out of keep-2 (pipeline-tools,hetzner-builder,go-builder,zig-builder,sysadminhave no version tags left on codeberg).