feat(shipwright): build the seanfarm fork of zot in-cluster #188

Merged
binjovi-bot merged 1 commit from feat/zot-shipwright-build into trunk 2026-09-02 10:54:51 +00:00
Owner

Build zot in ns shipwright-build clones sean/zot-src at v2.1.15-seanfarm.1 and pushes codeberg.org/someara/zot:v2.1.15-seanfarm.1.

Why codeberg: the registry cannot pull itself. Nodes pull codeberg.org through the containerd host entry, which works while zot is down.

Why a fork: MinIO answers a request with HTTP 499 / ClientDisconnected a few times a day; aws-sdk-go v1 makes zero retries for it, and zot destroys the whole blob upload session (client sees blob upload unknown). The fork is upstream v2.1.15 plus a bounded retry (3 attempts, ~0.5 s worst case) around the idempotent s3 driver calls.

The Dockerfile runs the fork's retry tests in a build stage, so a red test fails the BuildRun and nothing is pushed. COMMIT and RELEASE_TAG are build-args (no .git in the context). GOPROXY is the in-cluster Athens proxy.

Timeout 45m because the single shared buildkitd serializes this build. The deployment-gate exemption from 0a98a9b7 keeps the seanfarm deploy from waiting on the BuildRun.

Files: shipwright-builds/app-images/zot-build.yaml (Build + BuildRun zot-build-v2115-seanfarm1), app-images/kustomization.yaml, CHANGELOG.md. bash tests/check.sh passes.

Follow-up: the zot manifests pin the image by digest (separate PR in sean/zot).

https://claude.ai/code/session_01LeVatedQ4sCA1u6LHjo7B5

Build `zot` in ns shipwright-build clones `sean/zot-src` at `v2.1.15-seanfarm.1` and pushes `codeberg.org/someara/zot:v2.1.15-seanfarm.1`. Why codeberg: the registry cannot pull itself. Nodes pull codeberg.org through the containerd host entry, which works while zot is down. Why a fork: MinIO answers a request with HTTP 499 / ClientDisconnected a few times a day; aws-sdk-go v1 makes zero retries for it, and zot destroys the whole blob upload session (client sees `blob upload unknown`). The fork is upstream v2.1.15 plus a bounded retry (3 attempts, ~0.5 s worst case) around the idempotent s3 driver calls. The Dockerfile runs the fork's retry tests in a build stage, so a red test fails the BuildRun and nothing is pushed. COMMIT and RELEASE_TAG are build-args (no .git in the context). GOPROXY is the in-cluster Athens proxy. Timeout 45m because the single shared buildkitd serializes this build. The deployment-gate exemption from 0a98a9b7 keeps the seanfarm deploy from waiting on the BuildRun. Files: `shipwright-builds/app-images/zot-build.yaml` (Build + BuildRun `zot-build-v2115-seanfarm1`), `app-images/kustomization.yaml`, `CHANGELOG.md`. `bash tests/check.sh` passes. Follow-up: the zot manifests pin the image by digest (separate PR in sean/zot). https://claude.ai/code/session_01LeVatedQ4sCA1u6LHjo7B5
feat(shipwright): build the seanfarm fork of zot in-cluster
All checks were successful
binjovi/ci Binjovi completed the frozen plan
d0f8e7932f
Build `zot` in ns shipwright-build clones sean/zot-src at v2.1.15-seanfarm.1
and pushes codeberg.org/someara/zot:v2.1.15-seanfarm.1. The image goes to
codeberg, not registry.sean.farm: the registry cannot pull itself, and nodes
pull codeberg.org through the containerd host entry while zot is down.

The fork is upstream v2.1.15 plus a bounded retry on MinIO 499
ClientDisconnected in the s3 driver. Its Dockerfile runs the retry tests in a
build stage; a red test fails the BuildRun and nothing is pushed.

COMMIT and RELEASE_TAG are build-args, so the binary reports the tag sha in
`zot --version` without a .git directory in the context. GOPROXY points at
the in-cluster Athens proxy.

Timeout 45m: the single shared buildkitd serializes this build behind
whatever else is building. The deployment-gate exemption from 0a98a9b7 keeps
the seanfarm deploy from waiting on it.

The zot manifests pin the image by digest in a separate change.

Claude-Session: https://claude.ai/code/session_01LeVatedQ4sCA1u6LHjo7B5
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!188
No description provided.