nxtgauge-gitops/apps/forgejo/runner-deployment.yaml
Ashwin Kumar Sivakumar 7902b265a9 feat(ai): add AI plans docs, LiteLLM manifests, and infrastructure updates
- Add comprehensive AI plans implementation documentation
- Add LiteLLM gateway Kubernetes manifests
- Update PostgreSQL and Forgejo deployment configs
- Add build-from-binaries script
2026-06-15 06:15:41 +05:30

149 lines
4.6 KiB
YAML

apiVersion: apps/v1
kind: DaemonSet
metadata:
name: forgejo-runner
namespace: forgejo
labels:
app: forgejo-runner
spec:
selector:
matchLabels:
app: forgejo-runner
template:
metadata:
labels:
app: forgejo-runner
spec:
initContainers:
- name: init-runner-permissions
image: registry.nxtgauge.com/busybox:1.36
command: ["/bin/sh", "-ec"]
args:
- |
mkdir -p /data /cache
chown -R 1000:0 /data /cache
chmod -R g=u /data /cache
securityContext:
runAsUser: 0
volumeMounts:
- name: runner-config
mountPath: /data
- name: runner-cache
mountPath: /cache
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: DoesNotExist
- key: node-role.kubernetes.io/master
operator: DoesNotExist
containers:
- name: dind
image: registry.nxtgauge.com/docker:27-dind
args:
- --host=tcp://0.0.0.0:2375
- --tls=false
securityContext:
privileged: true
env:
- name: DOCKER_TLS_CERTDIR
value: ""
volumeMounts:
- name: dind-storage
mountPath: /var/lib/docker
- name: registry-docker-config
mountPath: /root/.docker/config.json
subPath: config.json
readOnly: true
resources:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: 2
memory: 4Gi
- name: runner
image: registry.nxtgauge.com/forgejo-runner:6
env:
- name: DOCKER_HOST
value: tcp://127.0.0.1:2375
- name: FORGEJO_INSTANCE_URL
value: http://forgejo-http.forgejo.svc.cluster.local:3000
- name: FORGEJO_RUNNER_REGISTRATION_TOKEN
valueFrom:
secretKeyRef:
name: forgejo-runner-secret
key: FORGEJO_RUNNER_REGISTRATION_TOKEN
- name: K8S_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: FORGEJO_RUNNER_LABELS
value: "self-hosted:docker://registry.nxtgauge.com/catthehacker-ubuntu:act-latest,linux:docker://registry.nxtgauge.com/catthehacker-ubuntu:act-latest,ubuntu-latest:docker://registry.nxtgauge.com/catthehacker-ubuntu:act-latest,ubuntu-22.04:docker://registry.nxtgauge.com/catthehacker-ubuntu:act-latest,ubuntu-24.04:docker://registry.nxtgauge.com/catthehacker-ubuntu:act-latest,debian-12:docker://registry.nxtgauge.com/catthehacker-ubuntu:act-latest,docker-ready:docker://registry.nxtgauge.com/catthehacker-ubuntu:act-latest"
- name: REGISTRY_HOSTPORT
value: "registry.nxtgauge.com"
- name: REGISTRY_USERNAME
value: "admin"
- name: REGISTRY_PASSWORD
value: "Ashwin@2026"
volumeMounts:
- name: runner-config
mountPath: /data
- name: runner-cache
mountPath: /cache
command: ["/bin/sh"]
args:
- -ec
- |
cd /data
RUNNER_NAME="${K8S_NODE_NAME}"
echo "Waiting for Docker sidecar on ${K8S_NODE_NAME}..."
sleep 8
echo "Resetting runner registration state for ${RUNNER_NAME}..."
rm -f .runner
echo "Registering runner ${RUNNER_NAME} on node ${K8S_NODE_NAME}..."
forgejo-runner register \
--no-interactive \
--instance "$FORGEJO_INSTANCE_URL" \
--token "$FORGEJO_RUNNER_REGISTRATION_TOKEN" \
--name "$RUNNER_NAME" \
--labels "$FORGEJO_RUNNER_LABELS"
echo "Starting daemon for ${RUNNER_NAME}..."
exec forgejo-runner daemon
resources:
requests:
cpu: 200m
memory: 512Mi
limits:
cpu: 4
memory: 8Gi
volumes:
- name: runner-config
hostPath:
path: /var/lib/forgejo-runner
type: DirectoryOrCreate
- name: runner-cache
hostPath:
path: /var/cache/forgejo-runner
type: DirectoryOrCreate
- name: dind-storage
emptyDir: {}
- name: registry-docker-config
secret:
secretName: registry-docker-config
---
apiVersion: v1
kind: Secret
metadata:
name: forgejo-runner-secret
namespace: forgejo
type: Opaque
stringData:
FORGEJO_RUNNER_REGISTRATION_TOKEN: "it63i9ZDM3NwSkSUMOYQSNTxpm3R8njC9SlIoRlq"