summaryrefslogtreecommitdiffstats
path: root/examples/kubernetes/dind-docker.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'examples/kubernetes/dind-docker.yaml')
-rw-r--r--examples/kubernetes/dind-docker.yaml87
1 files changed, 87 insertions, 0 deletions
diff --git a/examples/kubernetes/dind-docker.yaml b/examples/kubernetes/dind-docker.yaml
new file mode 100644
index 0000000..534432d
--- /dev/null
+++ b/examples/kubernetes/dind-docker.yaml
@@ -0,0 +1,87 @@
+# Secret data.
+# You will need to retrive this from the web UI, and your Forgejo instance must be running v1.21+
+# Alternatively, create this with
+# kubectl create secret generic runner-secret --from-literal=token=your_offline_token_here
+apiVersion: v1
+stringData:
+ token: your_offline_secret_here
+kind: Secret
+metadata:
+ name: runner-secret
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ app: forgejo-runner
+ name: forgejo-runner
+spec:
+ # Two replicas means that if one is busy, the other can pick up jobs.
+ replicas: 2
+ selector:
+ matchLabels:
+ app: forgejo-runner
+ strategy: {}
+ template:
+ metadata:
+ creationTimestamp: null
+ labels:
+ app: forgejo-runner
+ spec:
+ restartPolicy: Always
+ volumes:
+ - name: docker-certs
+ emptyDir: {}
+ - name: runner-data
+ emptyDir: {}
+ # Initialise our configuration file using offline registration
+ # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration
+ initContainers:
+ - name: runner-register
+ image: code.forgejo.org/forgejo/runner:3.2.0
+ command: ["forgejo-runner", "register", "--no-interactive", "--token", $(RUNNER_SECRET), "--name", $(RUNNER_NAME), "--instance", $(FORGEJO_INSTANCE_URL)]
+ env:
+ - name: RUNNER_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: RUNNER_SECRET
+ valueFrom:
+ secretKeyRef:
+ name: runner-secret
+ key: token
+ - name: FORGEJO_INSTANCE_URL
+ value: http://forgejo-http.forgejo.svc.cluster.local:3000
+ resources:
+ limits:
+ cpu: "0.50"
+ memory: "64Mi"
+ volumeMounts:
+ - name: runner-data
+ mountPath: /data
+ containers:
+ - name: runner
+ image: code.forgejo.org/forgejo/runner:3.0.0
+ command: ["sh", "-c", "while ! nc -z localhost 2376 </dev/null; do echo 'waiting for docker daemon...'; sleep 5; done; forgejo-runner daemon"]
+ env:
+ - name: DOCKER_HOST
+ value: tcp://localhost:2376
+ - name: DOCKER_CERT_PATH
+ value: /certs/client
+ - name: DOCKER_TLS_VERIFY
+ value: "1"
+ volumeMounts:
+ - name: docker-certs
+ mountPath: /certs
+ - name: runner-data
+ mountPath: /data
+ - name: daemon
+ image: docker:23.0.6-dind
+ env:
+ - name: DOCKER_TLS_CERTDIR
+ value: /certs
+ securityContext:
+ privileged: true
+ volumeMounts:
+ - name: docker-certs
+ mountPath: /certs