homelab/manifests/gitea/gitea-runner.yaml
Nik Afiq 83f46c9748 feat(gitea): add backup CronJob with RBAC and NFS support
feat(gitea): create PersistentVolume and PersistentVolumeClaim for Gitea

feat(gitea): add script to create Gitea runner registration token secret

feat(gitea): deploy Gitea Actions runner with Docker socket access

feat(media): deploy JDownloader with Ingress configuration

feat(media): set up Jellyfin media server with NFS and Ingress

feat(media): configure qBittorrent deployment with Ingress

feat(monitoring): add Grafana Loki datasource ConfigMap

feat(monitoring): create Grafana admin credentials secret

feat(monitoring): define PersistentVolumes for monitoring stack

feat(network): implement DDNS CronJob for Porkbun DNS updates

feat(network): create secret for Porkbun DDNS API credentials

feat(network): set up Glances service and Ingress for Debian node

fix(network): patch Pi-hole DNS services with external IPs

feat(network): configure Traefik dashboard Ingress with Authentik auth

feat(network): set up Watch Party service and Ingress for Mac Mini

refactor(values): update Helm values files for various services
2026-03-12 21:56:32 +09:00

107 lines
2.8 KiB
YAML

# Apply: kubectl apply -f manifests/gitea/gitea-runner.yaml
# Delete: kubectl delete -f manifests/gitea/gitea-runner.yaml
# Description: Gitea Actions runner deployment with host Docker socket and internal CA trust.
apiVersion: v1
kind: Namespace
metadata:
name: gitea-runner
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: gitea-runner
namespace: gitea-runner
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: gitea-runner
namespace: gitea-runner
spec:
replicas: 1
selector:
matchLabels:
app: gitea-runner
template:
metadata:
labels:
app: gitea-runner
spec:
serviceAccountName: gitea-runner
nodeSelector:
node-role: primary
containers:
- name: runner
image: gitea/act_runner:latest
env:
- name: GITEA_INSTANCE_URL
value: "https://gitea.home.arpa"
- name: GITEA_RUNNER_REGISTRATION_TOKEN
valueFrom:
secretKeyRef:
name: gitea-runner-secret
key: token
- name: GITEA_RUNNER_NAME
value: "minisforum"
- name: GITEA_RUNNER_LABELS
value: "ubuntu-latest:host,ubuntu-22.04:host"
- name: CONFIG_FILE
value: /config/config.yaml
- name: NODE_EXTRA_CA_CERTS
value: /certs/ca.crt
- name: SSL_CERT_FILE
value: /certs/ca.crt
volumeMounts:
- name: config
mountPath: /config
- name: containerd-sock
mountPath: /var/run/docker.sock
- name: runner-data
mountPath: /data
- name: internal-ca
mountPath: /certs
- name: usr-bin
mountPath: /usr/local/bin/node
subPath: node
dnsConfig:
nameservers:
- 192.168.7.77
volumes:
- name: config
configMap:
name: gitea-runner-config
- name: containerd-sock
hostPath:
path: /run/k3s/containerd/containerd.sock
- name: runner-data
emptyDir: {}
- name: internal-ca
secret:
secretName: internal-ca-cert
- name: usr-bin
hostPath:
path: /usr/bin/node
---
apiVersion: v1
kind: ConfigMap
metadata:
name: gitea-runner-config
namespace: gitea-runner
data:
config.yaml: |
log:
level: info
runner:
fetch_timeout: 5s
fetch_interval: 2s
env_vars:
PATH: "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
SSL_CERT_FILE: "/certs/ca.crt"
GIT_SSL_CAINFO: "/certs/ca.crt"
container:
network: host
privileged: true
options: "--add-host=gitea.home.arpa:192.168.7.77"
valid_volumes:
- "**"