#26 - Push images to the in-cluster Forgejo registry instead of the public ingress #27
No reviewers
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
actions/sindri!27
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "26-push-to-in-cluster-registry"
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?
What
The dev and tag workflows now push images to Forgejo's in-cluster Service (
app-http-service.forgejo.svc.cluster.local:3000) over plain HTTP, instead of togit.van-hemmen.com.Why
See #26. The
coder-xfce-vncjob builds fine, then fails pushing:PATCH …/blobs/uploads/…: 502 Bad Gateway. On Forgejo's side, those uploads ended withunexpected EOFafter 60.0–60.7 s.The runner pods and Forgejo both run on
talos-ovh-worker-two, butgit.van-hemmen.comresolves to the ingress ontalos-ovh-gateway-one. Every layer went out through Traefik and back, and Traefik cuts any single request that runs longer than about a minute. The runner itself already talks to Forgejo throughhttp://app-http-service:3000; with this change, the image push does too. Node-to-node traffic goes through WireGuard.Changes
.forgejo/workflows/docker-dev.yamlanddocker-tag.yaml(all 6 jobs):REGISTRY_HOST: app-http-service.forgejo.svc.cluster.local:3000andREGISTRY_INSECURE: 'true', the settings added in actions/kaniko#8.KANIKO_DESTINATIONuses that host. The image names and tags are unchanged (ci-${GITHUB_SHA},coder-xfce-vnc-latest,latest, …).container.imageisgit.van-hemmen.com/actions/kaniko:26.37.0, the release that shipsREGISTRY_INSECURE. The first commit used the actions/kaniko#8 branch build (ce7d0b7a) for the end-to-end test;a74d690switches to the release.README.md: a paragraph in "CI/CD Workflows" on where images are pushed, and why.Forgejo stores container images by owner and name, not by hostname, so pulls stay
git.van-hemmen.com/actions/sindri:<tag>. Its login request still goes to the publichttps://git.van-hemmen.com/v2/token: one small HTTPS request per push, while the layer data goes to the Service.Verification
/v2/on the internal Service answers401withDocker-Distribution-Api-Version: registry/2.0and the sameWww-Authenticaterealm as the public URL (checked from a pod).docker-tag.yamlhas no remaininggit.van-hemmen.com/actions/sindri:destinations, and both files parse as YAML.9092d17, kaniko branch build): all three jobs green, includingcoder-xfce-vnc(9m37s), which failed at the push on #22 and #23.ci-,coder-andcoder-xfce-vnc-9092d17…all appear under theactions/sindricontainer package.coder-xfce-vnc-9092d17…manifest throughhttps://git.van-hemmen.com/v2/…returns200, so pulls under the public name work.10.244.34.197/.229/.214), not the ingress path. All returned202; the largest took 31.7 s.a74d690(kaniko26.37.0) runs the same pipeline with the released image.docker-tag.yamlonly runs on a tag push, but it's the same change applied to its destinations.Merge order
actions/kaniko#8 merged and released asDone.26.37.0.a74d690's CI is green.Closes #26
🤖 Generated with Claude Code
https://claude.ai/code/session_01XPajGyTH2js52mY5WSJoNA