feat(registry): run the seanfarm fork of zot with a bounded S3 retry (second landing) #25
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/zot-seanfarm-fork-2"
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?
Re-lands
d210701(v0.1.8, reverted in v0.1.9) on top of the image warm-up hook (v0.1.11).Why the first landing failed
The StatefulSet rolled to
codeberg.org/someara/zot:v2.1.15-seanfarm.1on a node that could not pull it: the containerd mirror for codeberg.org is zot itself (down during the swap) and the node's direct codeberg.org credential is stale (401). OrderedReady then held the revert behind the Pending pod.What is different now
Job/zot-image-warm(sync wave -1) pulls everyzot-v2image onto the node of the running pod while the old pod still serves. This PR changes the hook'szotcontainer to the fork image in the same commit as the StatefulSet, as the hook rules require (tests/zot-image-warm.shenforces equal image sets).zot-v2-0carriesregistry.sean.farm/image-warm=zot-v2onseanfarm-worker-a40389, so the hook pod lands on that node.8963f24d…both throughregistry.sean.farm/someara/zot(mirror, sync-on-demand) and anonymously oncodeberg.org— the hook pull does not need the node credential while zot serves.Change
manifests/registry/manifest.yaml: StatefulSetzotimage → fork digest; hookzotcontainer → same reference; comments.tests/zot-binjovi-publisher.sh: pins the fork digest; rejectsghcr.io/project-zot/zotand a self-pull throughregistry.sean.farm.docs/REGISTRY-AVAILABILITY.md: "S3 transient errors" section (chain, predicate, log line to count, rebuild path incl. the hook image rule).bash tests/check.shgreen.Verify after deploy
Job/zot-image-warmSucceeded on a40389 before the StatefulSet rolled;zot-v2-0Running with the fork digest;registry-write-readgate passes;/v2/200. Then 3–7 days of Loki:transient s3 error, retryingpresent,unexpected error, removing .uploads/ files== 0.https://claude.ai/code/session_01LeVatedQ4sCA1u6LHjo7B5