mirror of
https://gitea.com/gitea/act_runner.git
synced 2026-10-29 03:16:43 +08:00
Renovate gets no release timestamps for Docker Hub images with more than 1000 tags (https://github.com/renovatebot/renovate/issues/46925) or for quay.io, so the 5-day minimum release age holds them back forever. The e2e workflows, the Kubernetes examples and the toolkit test pins are outside its managers, so these are bumped by hand. The builder follows the current Alpine instead of the frozen 3.23. Reviewed-on: https://gitea.com/gitea/runner/pulls/1330 Reviewed-by: bircni <bircni@icloud.com> Co-authored-by: silverwind <me@silverwind.io>
98 lines
2.9 KiB
YAML
98 lines
2.9 KiB
YAML
# StatefulSet variant of the dind example.
|
|
#
|
|
# Unlike the Deployment, a StatefulSet gives each replica a stable identity and,
|
|
# via volumeClaimTemplates, its own persistent volume. That means every runner
|
|
# pod keeps its own `.runner` registration file across restarts and reschedules,
|
|
# so it re-attaches to the server instead of trying to register again.
|
|
apiVersion: v1
|
|
data:
|
|
# The registration token can be obtained from the web UI, API or command-line.
|
|
# You can also set a pre-defined global runner registration token for the Gitea instance via
|
|
# `GITEA_RUNNER_REGISTRATION_TOKEN`/`GITEA_RUNNER_REGISTRATION_TOKEN_FILE` environment variable.
|
|
token: << base64 encoded registration token >>
|
|
kind: Secret
|
|
metadata:
|
|
name: runner-secret
|
|
type: Opaque
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
labels:
|
|
app: runner
|
|
name: runner
|
|
spec:
|
|
serviceName: runner
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: runner
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: runner
|
|
spec:
|
|
restartPolicy: Always
|
|
terminationGracePeriodSeconds: 10800 # keep above runner.shutdown_timeout, see README
|
|
volumes:
|
|
- name: docker-socket
|
|
emptyDir: {}
|
|
initContainers:
|
|
- name: docker
|
|
image: docker:29.9.1-dind
|
|
securityContext:
|
|
privileged: true
|
|
volumeMounts:
|
|
- name: docker-socket
|
|
mountPath: /var/run
|
|
# Keeps the images pulled for jobs across restarts. Without this, the
|
|
# daemon's data root is ephemeral and every job re-pulls its images.
|
|
- name: docker-data
|
|
mountPath: /var/lib/docker
|
|
startupProbe:
|
|
exec:
|
|
command: ["/usr/bin/test", "-S", "/var/run/docker.sock"]
|
|
livenessProbe:
|
|
exec:
|
|
command: ["/usr/bin/test", "-S", "/var/run/docker.sock"]
|
|
restartPolicy: Always
|
|
containers:
|
|
- name: runner
|
|
image: gitea/runner:nightly
|
|
env:
|
|
- name: GITEA_INSTANCE_URL
|
|
value: http://gitea-http.gitea.svc.cluster.local:3000
|
|
- name: GITEA_RUNNER_REGISTRATION_TOKEN
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: runner-secret
|
|
key: token
|
|
volumeMounts:
|
|
- name: runner-data
|
|
mountPath: /data
|
|
- name: docker-socket
|
|
mountPath: /var/run
|
|
volumeClaimTemplates:
|
|
# The runner's working directory: the .runner registration file and, optionally,
|
|
# the config file.
|
|
- metadata:
|
|
name: runner-data
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 1Gi
|
|
storageClassName: standard
|
|
# The Docker daemon's data root: the images pulled for jobs. Size it for the
|
|
# images you expect to cache.
|
|
- metadata:
|
|
name: docker-data
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 20Gi
|
|
storageClassName: standard
|