Files
HomeLabScripts/k3s/apps/gitea/gitea-runner.yaml
T

99 lines
2.9 KiB
YAML

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gitea-runner-data
namespace: gitea
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: gitea-runner
namespace: gitea
spec:
replicas: 1
selector:
matchLabels:
app: gitea-runner
template:
metadata:
labels:
app: gitea-runner
spec:
containers:
- name: runner
image: gitea/act_runner:latest
imagePullPolicy: IfNotPresent
env:
- name: GITEA_INSTANCE_URL
value: "http://gitea.gitea.svc.cluster.local"
- name: GITEA_RUNNER_NAME
value: "k3s-runner-1"
- name: GITEA_RUNNER_LABELS
value: "linux-x64:host,ubuntu-latest:docker://catthehacker/ubuntu:act-latest,ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04,alpine:docker://alpine:3.20"
- name: GITEA_RUNNER_REGISTRATION_TOKEN
valueFrom:
secretKeyRef:
name: gitea-runner-secret
key: GITEA_RUNNER_REGISTRATION_TOKEN
- name: DOCKER_HOST
value: "unix:///var/run/docker.sock"
command:
- /bin/sh
- -c
args:
- |
set -e
until [ -S /var/run/docker.sock ]; do
echo "Waiting for Docker socket..."
sleep 2
done
if [ -f /data/.runner_labels ] && [ "$(cat /data/.runner_labels)" != "${GITEA_RUNNER_LABELS}" ]; then
rm -f /data/.runner
fi
printf '%s' "${GITEA_RUNNER_LABELS}" > /data/.runner_labels
if [ ! -f /data/.runner ]; then
act_runner register \
--no-interactive \
--instance "${GITEA_INSTANCE_URL}" \
--token "${GITEA_RUNNER_REGISTRATION_TOKEN}" \
--name "${GITEA_RUNNER_NAME}" \
--labels "${GITEA_RUNNER_LABELS}"
fi
exec act_runner daemon
volumeMounts:
- name: runner-data
mountPath: /data
- name: docker-run
mountPath: /var/run
- name: dind
image: docker:27-dind
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
args:
- --insecure-registry=gitea.gitea.svc.cluster.local
env:
- name: DOCKER_TLS_CERTDIR
value: ""
volumeMounts:
- name: docker-lib
mountPath: /var/lib/docker
- name: docker-run
mountPath: /var/run
volumes:
- name: runner-data
persistentVolumeClaim:
claimName: gitea-runner-data
- name: docker-lib
emptyDir: {}
- name: docker-run
emptyDir: {}