apiVersion: apps/v1 kind: Deployment metadata: name: gitea-runner namespace: ci labels: app: gitea-runner spec: replicas: 1 selector: matchLabels: app: gitea-runner template: metadata: labels: app: gitea-runner annotations: config-version: "2026-04-04-valid-volumes" spec: initContainers: - name: register image: registry.neuralplatform.ai/ci-base:latest workingDir: /data command: ["/bin/sh", "-c"] args: - | act_runner register \ --instance "$GITEA_INSTANCE_URL" \ --token "$GITEA_RUNNER_REGISTRATION_TOKEN" \ --name legion \ --labels "self-hosted:docker://registry.neuralplatform.ai/ci-base:latest,ubuntu-latest:docker://registry.neuralplatform.ai/ci-base:latest,ubuntu-24.04:docker://registry.neuralplatform.ai/ci-base:latest,linux,x64" \ --no-interactive cat > /data/config.yaml << 'EOF' runner: capacity: 2 timeout: 3h container: network: host docker_host: "unix:///var/run/docker.sock" force_pull: false valid_volumes: - /var/run/docker.sock default_image: "registry.neuralplatform.ai/ci-base:latest" EOF envFrom: - secretRef: name: gitea-runner-secret volumeMounts: - name: data mountPath: /data containers: - name: runner image: registry.neuralplatform.ai/ci-base:latest workingDir: /data command: ["act_runner", "daemon", "--config", "/data/config.yaml"] envFrom: - secretRef: name: gitea-runner-secret volumeMounts: - name: data mountPath: /data - name: docker-sock mountPath: /var/run/docker.sock resources: requests: memory: 512Mi cpu: 250m limits: memory: 4Gi cpu: "4" volumes: - name: data emptyDir: {} - name: docker-sock hostPath: path: /var/run/docker.sock type: Socket