bootstrap: use base images for runners, custom images via CI

- golang-runner: docker:27-cli (has Node.js + docker)
- rust-runner: docker:27-cli (bootstrap, CI adds Rust)
- node-runner: node:22-bookworm (has Node.js, CI adds docker)

CI workflow (.gitea/workflows/build-runner-images.yml):
1. Watches Dockerfile.* changes
2. Builds custom images with Node.js pre-installed
3. Pushes to registry
4. Image Updater detects and updates values.yaml
5. ArgoCD syncs to new custom images

This avoids token complexity - just push Dockerfile changes to git!
This commit is contained in:
2026-09-05 23:39:20 -07:00
parent 4d60684ca0
commit 39e2ed504c
3 changed files with 11 additions and 22 deletions
+4 -4
View File
@@ -4,13 +4,13 @@
#
# node:22-bookworm ships Node natively. Docker client installed via workflow step if needed.
# (homelab has no CI; custom runner images built manually if desired)
# Bootstrap with base image, custom image via CI+Image Updater
runner:
image:
repository: forgejo.riotpiao.com/rock/forgejo-runner-node
tag: "latest" # Image Updater tracks and updates this
repository: node
tag: "22-bookworm"
name: node-runner
# Custom image: node:22-bookworm + docker.io pre-installed
labels: "node:docker://forgejo.riotpiao.com/rock/forgejo-runner-node:latest"
labels: "node:docker://node:22-bookworm"
# GC CronJob renders only from the default (golang) values to avoid duplicates
gc:
+4 -8
View File
@@ -2,17 +2,13 @@
# runner instance. Only runner.name and runner.labels differ -- everything
# else (image, dind, persistence, tolerations, nodeSelector) is shared.
#
# Custom image: docker:27-cli + Node.js + Rust + build tools
# - Node.js for GitHub Actions (actions/checkout@v4, etc.)
# - Docker CLI for container builds
# - Rust toolchain (via rustup)
# - Build essentials
# Bootstrap with base image, custom image via CI+Image Updater
runner:
image:
repository: forgejo.riotpiao.com/rock/forgejo-runner-rust
tag: "latest" # Image Updater tracks and updates this
repository: docker
tag: "27-cli"
name: rust-runner
labels: "rust:docker://forgejo.riotpiao.com/rock/forgejo-runner-rust:latest"
labels: "rust:docker://docker:27-cli"
+3 -10
View File
@@ -1,17 +1,10 @@
runner:
image:
repository: forgejo.riotpiao.com/rock/forgejo-runner-golang
tag: "latest" # Image Updater tracks and updates this
repository: docker
tag: "27-cli" # Bootstrap with base image, custom image via CI+Image Updater
name: golang-runner
# Custom image: docker:27-cli + Node.js + Go + build tools
# - Node.js for GitHub Actions (actions/checkout@v4, etc.)
# - Docker CLI for container builds
# - Go toolchain
# - Build essentials
labels: "golang:docker://forgejo.riotpiao.com/rock/forgejo-runner-golang:latest"
labels: "golang:docker://docker:27-cli"
forgejoUrl: http://forgejo-gitea-http.cicd.svc.cluster.local:3000
# tokenSecret: name of the K8s Secret that holds the runner registration token
# created automatically by the helmfile presync hook (see helmfile.yaml.gotmpl)
tokenSecret: runner-token
resources:
requests: