Files
talos-cluster/deployments/game-servers/wings-valheim/deployment.yaml
T

112 lines
3.1 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: wings-valheim
namespace: game-servers
labels:
app.kubernetes.io/name: wings
app.kubernetes.io/component: game-server
app.kubernetes.io/part-of: pelican
game: valheim
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: wings-valheim
template:
metadata:
labels:
app: wings-valheim
game: valheim
spec:
nodeSelector:
kubernetes.io/arch: amd64
volumes:
- name: wings-config
secret:
secretName: wings-valheim-config
- name: docker-socket
emptyDir: {}
- name: dind-storage
emptyDir: {}
- name: server-data
persistentVolumeClaim:
claimName: wings-valheim-data
- name: autostart-token
secret:
secretName: pelican-autostart-key
containers:
- name: dind
image: docker:24-dind
securityContext:
privileged: true
env:
- name: DOCKER_TLS_CERTDIR
value: ""
volumeMounts:
- name: docker-socket
mountPath: /var/run
- name: dind-storage
mountPath: /var/lib/docker
resources:
requests:
cpu: "500m"
memory: "512Mi"
limits:
cpu: "1"
memory: "1Gi"
- name: wings
image: ghcr.io/pelican-dev/wings:latest
command:
- /bin/sh
- -c
- |
export DOCKER_HOST=tcp://localhost:2375
exec wings
env:
- name: DOCKER_HOST
value: tcp://localhost:2375
- name: WATCHDOG_ENABLED
value: "true"
volumeMounts:
- name: wings-config
mountPath: /etc/pterodactyl
readOnly: true
- name: docker-socket
mountPath: /var/run/docker.sock
- name: server-data
mountPath: /mnt/server
resources:
requests:
cpu: "1"
memory: "2Gi"
limits:
cpu: "4"
memory: "8Gi"
- name: game-autostart
image: curlimages/curl:latest
command:
- /bin/sh
- -c
- |
while true; do
sleep 60
curl -sf -X POST "https://pelican.khalisio.com/api/client/servers/9d09e83d-00c3-4404-8f81-07c0522a6c25/power" \
-H "Authorization: Bearer $(cat /etc/secrets/autostart/api_key)" \
-H "Content-Type: application/json" \
-d '{"signal":"start"}' > /dev/null 2>&1 || true
done
volumeMounts:
- name: autostart-token
mountPath: /etc/secrets/autostart
readOnly: true
resources:
requests:
cpu: "50m"
memory: "64Mi"
limits:
cpu: "100m"
memory: "128Mi"