Files
homelab-gitops/apps/minecraft-paper/deployment.yaml
T

89 lines
2.3 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: paper
labels:
app.kubernetes.io/name: minecraft-paper
app.kubernetes.io/instance: paper
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app.kubernetes.io/name: minecraft-paper
app.kubernetes.io/instance: paper
template:
metadata:
labels:
app.kubernetes.io/name: minecraft-paper
app.kubernetes.io/instance: paper
spec:
automountServiceAccountToken: false
terminationGracePeriodSeconds: 600
nodeSelector:
kubernetes.io/hostname: arschrock
tolerations:
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
securityContext:
runAsUser: 1000
runAsGroup: 1000
containers:
- name: paper
image: docker.io/library/eclipse-temurin:26.0.2_10-jre-noble
imagePullPolicy: IfNotPresent
workingDir: /data
command: [java]
args:
- -Ddisable.watchdog=true
- -Xms2G
- -Xmx8G
- -jar
- paper-26.3-166.jar
ports:
- name: minecraft
containerPort: 25565
protocol: TCP
- name: dynmap
containerPort: 8124
protocol: TCP
startupProbe:
tcpSocket:
port: minecraft
periodSeconds: 10
failureThreshold: 60
readinessProbe:
tcpSocket:
port: minecraft
periodSeconds: 10
failureThreshold: 3
volumeMounts:
- name: server-data
mountPath: /data
- name: mc-monitor
image: docker.io/itzg/mc-monitor:1.18.3
imagePullPolicy: IfNotPresent
args:
- export-for-prometheus
- -servers
- 127.0.0.1:25565
- -port
- '8080'
- -timeout
- 10s
ports:
- name: metrics
containerPort: 8080
readinessProbe:
httpGet:
path: /metrics
port: metrics
periodSeconds: 10
volumes:
- name: server-data
hostPath:
path: /home/feedc0de/mcserver
type: Directory