## Summary - Deploy Forgejo runner to k8s with Docker-in-Docker sidecar - Add job execution image with Node.js and Docker CLI - Retire host-mode runner on indri - All CI jobs now run containerized in k8s ## Components Added - `containers/forgejo-runner/Dockerfile` - Job execution image - `argocd/apps/forgejo-runner.yaml` - ArgoCD Application - `argocd/manifests/forgejo-runner/` - Kubernetes manifests ## Components Removed - `ansible/roles/forgejo_runner/` - No longer needed ## Changes to Existing Files - `.forgejo/workflows/build-container.yaml` - Use `k8s` runner with `DOCKER_HOST` env - `.github/actionlint.yaml` - Only `k8s` label now valid ## Deployment 1. Apply secret: `op inject -i argocd/manifests/forgejo-runner/secret.yaml.tpl | kubectl --context=minikube-indri apply -f -` 2. Sync ArgoCD: `argocd app sync forgejo-runner` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/60
23 lines
552 B
YAML
23 lines
552 B
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: forgejo-runner-config
|
|
namespace: forgejo-runner
|
|
data:
|
|
config.yaml: |
|
|
log:
|
|
level: info
|
|
|
|
runner:
|
|
file: /data/.runner
|
|
capacity: 2
|
|
timeout: 3h
|
|
# Set DOCKER_HOST in job containers so they can run docker commands
|
|
envs:
|
|
DOCKER_HOST: tcp://127.0.0.1:2375
|
|
|
|
container:
|
|
# Use our custom job execution image with Node.js + Docker CLI
|
|
network: "host"
|
|
# Connect to DinD sidecar via TCP (not socket)
|
|
docker_host: tcp://127.0.0.1:2375
|