Image: Debian base, multi-arch, Rex and Claude Code pinned in the image #7
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#8 Deploy kuberex on saraksh via Flux HelmRelease
mikluko/kuberex
#12 Helm chart for kuberex
mikluko/kuberex
#13 Upgrade workflow: watch Rex and Claude Code, bump the pins
mikluko/kuberex
#5 Image toolchain for agents in Rex terminals
mikluko/kuberex
#10 Prototype: startup install through a shared overlay
mikluko/kuberex
Reference
mikluko/kuberex#7
Loading…
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?
Map: #1
Question
Release
sarak.sh/mikluko/kuberexwith Rex and Claude Code preinstalled at pinned versions, through CHANGELOG.md:FROM debian:trixie-YYYYMMDD,linux/amd64andlinux/arm64, the base packages already inmain.rex=<pin>fromhttps://pkgs.superlogical.com/rex/aptandclaude-code=<pin>fromhttps://downloads.claude.ai/claude-code/aptat build, keyrings and sources baked. Pins live in this repo. The Rex repo is public: no credential.kuberex install, the overlays,KUBEREX_PACKAGES,/etc/kuberex/apt,REX_APT_AUTH; the entrypoint runsrex server run --tailscaleasrexwith theTS_*settings.pinis skipped andplan/image/releaseare skipped with it (runs 272, 289), so 0.2.0 never published.vars.REGISTRY_AUDIENCE) after the rename.0.2.0 is untagged; its CHANGELOG entry is rewritten to this content rather than followed by 0.3.0.
Resolved when the tag is in
sarak.sh/mikluko/kuberexfor both platforms.Image: ship the agent toolchainto Image: agent toolchain, multi-archFrom the overlay prototype (#10): create
rexwith a fixed uid/gid before installing; shipca-certificates,mount/setpriv(util-linux); the entrypoint shape is on branchprototype/overlay-install.Exposure decided (#3): the entrypoint maps
TS_HOSTNAME(defaultkuberex),TS_AUTHKEY_FILEandTS_CONTROL_URLontorex server run --tailscale.Image: agent toolchain, multi-archto Image: Debian base, multi-arch, startup installRescoped: agent tooling and wiring are out of scope (baox, bao, gh, kubectl, aws, credential helpers, managed settings, forgejo-mcp). The image keeps the Debian base packages, the fixed
rexuser, the startup install of Rex and Claude Code, and the tailnet parameters.Decided: the image installs only
rexby itself. Extra packages come fromKUBEREX_PACKAGES(apt specs, pins allowed), extra apt sources, keyrings and auth from a mount at/etc/kuberex/apt/. Claude Code's source leaves the image andCLAUDE_CODE_VERSIONgoes. The Helm chart is #12, in this repo, published as OCI next to the image.Image: Debian base, multi-arch, startup installto Image: Debian base, multi-arch, Rex and Claude Code pinned in the imageIn review as PR #14 (0.3.0). Facts found on the way:
snapshotindex keeps only the 20 newest builds, about four days, so a pinnedREX_VERSIONstops building after that; #13 has to bump at least that often.container build: runs as uid 999,rex server run --tailscalereaches "Rex server ready" on a read-only root with only/run/rexand/var/lib/rexwritable.TS_CONTROL_URLwas documented in 0.2.0 but never passed; now it maps to--tailscale-control-url.Resolved:
sarak.sh/mikluko/kuberex:0.3.0(tagv0.3.0, PR #14) is published forlinux/amd64andlinux/arm64, with Rex0.0.1793645657-gd018d2and Claude Code2.1.309-1pinned asREX_VERSIONandCLAUDE_CODE_VERSIONARGs in theDockerfile. The container runs asrex(uid 999) with no capabilities; the server starts on a read-only root with/run/rexand/var/lib/rexwritable. The release workflow now runs on push (run 325 released from the merge).