k3s-deploy-notes.md documents GHCR pull as canonical - docker-save sideload is the real pattern #38
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Originally filed by @coilysiren on 2026-05-21T04:34:52Z - https://github.com/coilysiren/infrastructure/issues/218
Problem
docs/k3s-deploy-notes.mddocuments the GHCR-push + cluster-side-pull flow as the canonical CI deploy pattern (the CI workflow block around line 210, and thedocker-registryExternalSecret in section 5). But the actual canonical homelab pattern - used byrepo-recall,galaxy-gen, and nowbackend- is the docker-save sideload:docker saveit, stream the tarball overtailscale ssh deploy@kai-serverintosudo k3s ctr -n k8s.io images import -.kubectl set image+rollout status.No registry pull on the cluster, no
imagePullSecret, no kubeconfig in CI - just an OIDC tailnet join (TS_CLIENT_ID/TS_AUDIENCE) and an SSH tunnel.This drift is not cosmetic:
backendfollowed the documented GHCR pattern and the cluster could not pull the image (403,read:packages), which forced the migration (coilysiren/backend#70, #71).Fix
Update
k3s-deploy-notes.mdto make the docker-save sideload the documented default, withrepo-recall/.github/workflows/docker.ymlandgalaxy-gen/.github/workflows/build-and-publish.ymlas reference templates. Keep the GHCR path documented only as the option for repos that publish public images for third-party consumers (repo-recall does both).