From afa8a67e6fb6d3fe474b71aab0ffb5f111512315 Mon Sep 17 00:00:00 2001 From: Shahab Dogar Date: Mon, 22 Sep 2025 12:44:23 +0500 Subject: [PATCH] feat: add GTNH server! --- minecraft/pvc.yaml | 14 +++++++++ minecraft/service.yaml | 20 +++++++++++++ minecraft/statefulset.yaml | 59 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+) diff --git a/minecraft/pvc.yaml b/minecraft/pvc.yaml index ee00438..cc7025f 100644 --- a/minecraft/pvc.yaml +++ b/minecraft/pvc.yaml @@ -1,3 +1,4 @@ +--- apiVersion: v1 kind: PersistentVolumeClaim metadata: @@ -13,6 +14,19 @@ spec: --- apiVersion: v1 kind: PersistentVolumeClaim +metadata: + name: gtnh-data + namespace: minecraft +spec: + storageClassName: longhorn + accessModes: + - ReadWriteMany + resources: + requests: + storage: 50Gi +--- +apiVersion: v1 +kind: PersistentVolumeClaim metadata: name: modpacks namespace: minecraft diff --git a/minecraft/service.yaml b/minecraft/service.yaml index 3c4ac07..7c7a069 100644 --- a/minecraft/service.yaml +++ b/minecraft/service.yaml @@ -8,6 +8,7 @@ metadata: app: monifactory-server annotations: external-dns.alpha.kubernetes.io/hostname: dogar.dev + metallb.universe.tf/allow-shared-ip: minecraft spec: type: ClusterIP ports: @@ -15,3 +16,22 @@ spec: port: 25565 selector: app: monifactory-server +--- +apiVersion: v1 +kind: Service +metadata: + name: gtnh-server + namespace: minecraft + labels: + app: gtnh-server + annotations: + external-dns.alpha.kubernetes.io/hostname: dogar.dev + metallb.universe.tf/allow-shared-ip: minecraft +spec: + type: ClusterIP + ports: + - name: gtnh + port: 25566 + targetPort: 25565 + selector: + app: gtnh-server diff --git a/minecraft/statefulset.yaml b/minecraft/statefulset.yaml index 9551f6d..2482581 100644 --- a/minecraft/statefulset.yaml +++ b/minecraft/statefulset.yaml @@ -66,3 +66,62 @@ spec: - name: modpacks persistentVolumeClaim: claimName: modpacks +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: gtnh-server + namespace: minecraft +spec: + selector: + matchLabels: + app: gtnh-server + template: + metadata: + labels: + app: gtnh-server + spec: + containers: + - name: gtnh-server + image: itzg/minecraft-server:java21 + env: + - name: EULA + value: "TRUE" + - name: MODE + value: "survival" + - name: DIFFICULTY + value: "peaceful" + - name: TYPE + value: "CUSTOM" + - name: GENERIC_PACKS + value: "GT_New_Horizons_2.7.4_Server_Java_17-21" + - name: GENERIC_PACKS_SUFFIX + value: ".zip" + - name: GENERIC_PACKS_PREFIX + value: "https://downloads.gtnewhorizons.com/ServerPacks/" + - name: SKIP_GENERIC_PACK_UPDATE_CHECK + value: "true" + - name: MEMORY + value: 6G + - name: JVM_OPTS + value: "-Dfml.readTimeout=180 @java9args.txt" + - name: CUSTOM_JAR_EXEC + value: "-jar lwjgl3ify-forgePatches.jar nogui" + - name: ALLOW_FLIGHT + value: "TRUE" + - name: ENABLE_ROLLING_LOGS + value: "TRUE" + ports: + - name: gtnh + containerPort: 25565 + resources: + limits: + cpu: 8 + memory: "6Gi" + volumeMounts: + - name: gtnh-data + mountPath: /data + volumes: + - name: gtnh-data + persistentVolumeClaim: + claimName: gtnh-data