apiVersion: v1 kind: ConfigMap metadata: name: gitea-runner-config namespace: gitea data: config.yaml: | log: level: info runner: name: k8s-runner capacity: 10 timeout: 3h insecure: false fetch_timeout: 5s fetch_interval: 2s labels: - "ubuntu-latest:docker://catthehacker/ubuntu:act-latest" - "ubuntu-24.04:docker://catthehacker/ubuntu:act-latest" - "ubuntu-24.04-arm:docker://catthehacker/ubuntu:act-latest" container: network: host options: -e DOCKER_HOST=tcp://localhost:2375 --- apiVersion: apps/v1 kind: Deployment metadata: name: gitea-runner namespace: gitea labels: app: gitea-runner spec: replicas: 1 selector: matchLabels: app: gitea-runner template: metadata: labels: app: gitea-runner spec: restartPolicy: Always volumes: - name: docker-certs emptyDir: {} - name: runner-data emptyDir: {} - name: config configMap: name: gitea-runner-config containers: # Docker daemon (Docker-in-Docker) - name: docker-daemon image: docker:dind env: - name: DOCKER_TLS_CERTDIR value: "" securityContext: privileged: true volumeMounts: - name: docker-certs mountPath: /certs # Gitea Actions runner - name: runner image: gitea/act_runner:latest command: - sh - -c - | while ! nc -z localhost 2375