From e21bda8329b7378c9cc8a9b3770ef88e4cc8ecd3 Mon Sep 17 00:00:00 2001 From: gitea-admin Date: Tue, 19 May 2026 00:22:42 +0000 Subject: [PATCH] feat: deploy all 8 Wings instances (ARK SA, 7D2D, Enshrouded, Moria, Palworld, Satisfactory, SOTF, Valheim) --- .../game-servers/wings-ark-sa/deployment.yaml | 125 +++++++----------- 1 file changed, 45 insertions(+), 80 deletions(-) diff --git a/deployments/game-servers/wings-ark-sa/deployment.yaml b/deployments/game-servers/wings-ark-sa/deployment.yaml index 4399be8..407b73b 100644 --- a/deployments/game-servers/wings-ark-sa/deployment.yaml +++ b/deployments/game-servers/wings-ark-sa/deployment.yaml @@ -7,7 +7,6 @@ metadata: app: wings-ark-sa game: ark-sa spec: - replicas: 1 strategy: type: Recreate selector: @@ -21,101 +20,67 @@ spec: spec: nodeSelector: kubernetes.io/arch: amd64 - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchExpressions: - - key: game - operator: In - values: [ark-sa] - topologyKey: "kubernetes.io/hostname" - volumes: - - name: wings-config - secret: - secretName: wings-ark-sa-config - - name: game-data - persistentVolumeClaim: - claimName: wings-ark-sa-data - - name: docker-socket - emptyDir: {} - - name: autostart-token - secret: - secretName: pelican-autostart-key containers: - - name: dind - image: docker:dind - args: - - "--storage-driver=vfs" - - "--iptables=false" - securityContext: - privileged: true - volumeMounts: - - name: docker-socket - mountPath: /var/run/docker.sock - env: - - name: DOCKER_TLS_CERTDIR - value: "" - 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 - envFrom: - - secretRef: - name: wings-ark-sa-config env: - name: DOCKER_HOST value: tcp://localhost:2375 - - name: WATCHDOG_ENABLED - value: "true" + - name: WINGS_UID + value: "1000" + - name: WINGS_GID + value: "1000" + - name: WINGS_PORT + value: "8081" + - name: WINGS_API_SFTP_PORT + value: "2023" + - name: WINGS_SERVER_UUID + value: "3fd0b08d-7393-4d0f-b11c-bad5e1d1f771" + envFrom: + - secretRef: + name: wings-ark-sa-config + volumeMounts: + - name: server-data + mountPath: /home/container + - name: dind + image: docker:24-dind + securityContext: + privileged: true + env: + - name: DOCKER_TLS_CERTDIR + value: "" volumeMounts: - - name: wings-config - mountPath: /etc/pterodactyl - readOnly: true - - name: game-data - mountPath: /mnt/server - name: docker-socket - mountPath: /var/run/docker.sock - resources: - requests: - cpu: "2" - memory: "4Gi" - limits: - cpu: "4" - memory: "8Gi" + mountPath: /var/run - name: game-autostart image: curlimages/curl:latest + env: + - name: PELICAN_API_KEY + valueFrom: + secretKeyRef: + name: pelican-autostart-key + key: api_key + - name: SERVER_UUID + value: "3fd0b08d-7393-4d0f-b11c-bad5e1d1f771" command: - /bin/sh - -c - | + echo "Waiting for Wings API to be ready..." + while ! curl -sf http://localhost:8081/ready; do + sleep 2 + done + echo "Wings ready. Starting game server..." while true; do sleep 60 - curl -sf -X POST "https://pelican.khalisio.com/api/client/servers/3fd0b08d-7393-4d0f-b11c-bad5e1d1f771/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" - restartPolicy: Always + cpu: 100m + memory: 256Mi + volumes: + - name: docker-socket + emptyDir: {} + - name: server-data + persistentVolumeClaim: + claimName: wings-ark-sa-data