apiVersion: v1 kind: Namespace metadata: name: forgejo-runners --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: forgejo-runner-data namespace: forgejo-runners spec: accessModes: - ReadWriteOnce storageClassName: rook-ceph-block resources: requests: storage: 1Gi --- apiVersion: v1 kind: Secret metadata: name: forgejo-runner-secret namespace: forgejo-runners type: Opaque stringData: token: "RPAjk4Jdc42By5vSxnULPPPrjU0goPLQIiKgwOIo" --- apiVersion: apps/v1 kind: Deployment metadata: name: forgejo-runner namespace: forgejo-runners spec: replicas: 1 selector: matchLabels: app: forgejo-runner template: metadata: labels: app: forgejo-runner spec: initContainers: - name: register image: gitea/act_runner:latest command: - sh - -c - | if [ ! -f /data/.runner ]; then act_runner register --no-interactive \ --instance https://git.juntekim.com \ --token "RPAjk4Jdc42By5vSxnULPPPrjU0goPLQIiKgwOIo" \ --name mist-runner \ --labels "self-hosted,linux,x64" else echo "Runner already registered, skipping." fi workingDir: /data volumeMounts: - name: runner-data mountPath: /data containers: - name: runner image: gitea/act_runner:latest command: ["act_runner", "daemon"] workingDir: /data env: - name: DOCKER_HOST value: tcp://localhost:2375 volumeMounts: - name: runner-data mountPath: /data - name: dind image: docker:dind securityContext: privileged: true env: - name: DOCKER_TLS_CERTDIR value: "" volumeMounts: - name: runner-data mountPath: /data volumes: - name: runner-data persistentVolumeClaim: claimName: forgejo-runner-data