Add buildx to the CI runner image and codify its hand-applied config #66

Merged
scruffydude merged 1 commit from act-runner-buildx into main 2026-10-09 14:42:30 -04:00
Collaborator

Unblocks HomelabFabric's multi-arch image build (scruffydude/HomelabFabric#1), and puts a hand-applied runner change under Ansible.

Runner job image: add buildx

  • act-runner-docker-cli now installs docker-ce-cli and docker-buildx-plugin from Docker's apt repo instead of Debian's docker.io.
  • Bookworm doesn't package buildx. Debian's 20.10 client was also far behind optibcc's 29.x daemon.
  • The socket and privileged settings are unchanged.

Bring the Oct 5 hand edit on optibcc under Ansible

  • Someone added a config.yaml to the runner by hand on optibcc on 2026-10-05. It held project-awry's godot label and force_pull: false. It was never committed.
  • Deploying this role from main reverted it. That happened when I first deployed the buildx change; I've since restored it.
  • The role now renders config.yaml from act_runner.labels and act_runner.force_pull, and mounts it via CONFIG_FILE. The inventory now includes the godot label.

Already deployed to optibcc and verified

  • The runner declares [ubuntu-latest docker godot], with force_pull: false.
  • Inside the new job image: buildx v0.38.0, node v20, and the host socket works.
  • From inside the job image, a linux/amd64,linux/arm64 HomelabFabric build succeeds, and the arm64 image imports ai_fabric under emulation.
  • Re-running the role reports one change, from the existing pull: always on the compose task. That was already the case before this PR.

🤖 Generated with Claude Code

Unblocks HomelabFabric's multi-arch image build (scruffydude/HomelabFabric#1), and puts a hand-applied runner change under Ansible. ## Runner job image: add buildx - `act-runner-docker-cli` now installs `docker-ce-cli` and `docker-buildx-plugin` from Docker's apt repo instead of Debian's `docker.io`. - Bookworm doesn't package buildx. Debian's 20.10 client was also far behind optibcc's 29.x daemon. - The socket and privileged settings are unchanged. ## Bring the Oct 5 hand edit on optibcc under Ansible - Someone added a `config.yaml` to the runner by hand on optibcc on 2026-10-05. It held project-awry's `godot` label and `force_pull: false`. It was never committed. - Deploying this role from `main` **reverted it**. That happened when I first deployed the buildx change; I've since restored it. - The role now renders `config.yaml` from `act_runner.labels` and `act_runner.force_pull`, and mounts it via `CONFIG_FILE`. The inventory now includes the `godot` label. ## Already deployed to optibcc and verified - The runner declares `[ubuntu-latest docker godot]`, with `force_pull: false`. - Inside the new job image: buildx v0.38.0, node v20, and the host socket works. - From inside the job image, a `linux/amd64,linux/arm64` HomelabFabric build succeeds, and the arm64 image imports `ai_fabric` under emulation. - Re-running the role reports one change, from the existing `pull: always` on the compose task. That was already the case before this PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Add buildx to the CI runner image and codify its hand-applied config
Some checks failed
CI Pipeline / Validate Ansible Syntax (pull_request) Failing after 2m25s
CI Pipeline / Test Ansible Playbooks (Syntax Only) (pull_request) Has been skipped
CI Pipeline / Python Tests (pull_request) Has been skipped
CI Pipeline / Validate Ansible Syntax (push) Successful in 2m28s
CI Pipeline / Test Ansible Playbooks (Syntax Only) (push) Successful in 2m22s
CI Pipeline / Python Tests (push) Successful in 24s
d227c790a6
act-runner-docker-cli now installs docker-ce-cli and docker-buildx-plugin
from Docker's apt repo instead of Debian's docker.io: bookworm doesn't
package buildx, which HomelabFabric's multi-arch (amd64+arm64) image build
needs, and docker.io's 20.10 client trailed optibcc's 29.x daemon.

Also brings a hand-applied 2026-10-05 change on optibcc under Ansible. It
added a config.yaml with project-awry's "godot" label and force_pull: false,
and redeploying the role from main silently reverted it. The role now
renders config.yaml from act_runner.labels/force_pull, mounts it via
CONFIG_FILE, and the inventory carries the godot label.

Deployed and verified on optibcc: runner declares [ubuntu-latest docker
godot], force_pull false, and a linux/amd64+arm64 HomelabFabric build
succeeds from inside the new job image.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
scruffydude deleted branch act-runner-buildx 2026-10-09 14:42:30 -04:00
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
scruffydude/homelab!66
No description provided.