From ac2153cce5c1c88a5a43a6dde806e7b44d2fcfe1 Mon Sep 17 00:00:00 2001 From: Shahab Dogar Date: Sun, 23 Nov 2025 15:24:45 +0500 Subject: [PATCH] feat: GamingServices | add GTNH server --- gaming-services/minecraft/gtnh.ts | 77 ++++++++++++++++++++++++++++++ gaming-services/minecraft/index.ts | 2 + minecraft/service.yaml | 2 +- 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 gaming-services/minecraft/gtnh.ts diff --git a/gaming-services/minecraft/gtnh.ts b/gaming-services/minecraft/gtnh.ts new file mode 100644 index 0000000..4cda7b9 --- /dev/null +++ b/gaming-services/minecraft/gtnh.ts @@ -0,0 +1,77 @@ +import { Construct } from "constructs"; +import { KubernetesProvider } from "@cdktf/provider-kubernetes/lib/provider"; + +import { MinecraftServer } from "./utils"; + +export class GTNH extends Construct { + constructor( + scope: Construct, + id: string, + provider: KubernetesProvider, + namespace: string, + ) { + super(scope, id); + + new MinecraftServer(this, "gtnh", { + provider, + namespace, + image: "itzg/minecraft-server:java25", + name: "gtnh", + env: [ + { + name: "EULA", + value: "TRUE", + }, + { + name: "MODE", + value: "survival", + }, + { + name: "DIFFICULTY", + value: "easy", + }, + { + name: "TYPE", + value: "CUSTOM", + }, + { + name: "GENERIC_PACKS", + value: "GT_New_Horizons_2.8.0_Server_Java_17-25", + }, + { + 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: "12G", + }, + { + name: "JVM_OPTS", + value: + "-Dfml.readTimeout=180 -Dfml.queryResult=confirm @java9args.txt", + }, + { + name: "CUSTOM_JAR_EXEC", + value: "-jar lwjgl3ify-forgePatches.jar nogui", + }, + { + name: "ALLOW_FLIGHT", + value: "TRUE", + }, + { + name: "ENABLE_ROLLING_LOGS", + value: "TRUE", + }, + ], + }); + } +} diff --git a/gaming-services/minecraft/index.ts b/gaming-services/minecraft/index.ts index e83947b..3b21e1e 100644 --- a/gaming-services/minecraft/index.ts +++ b/gaming-services/minecraft/index.ts @@ -4,6 +4,7 @@ import { KubernetesProvider } from "@cdktf/provider-kubernetes/lib/provider"; import { NamespaceV1 } from "@cdktf/provider-kubernetes/lib/namespace-v1"; import { OnePasswordSecret } from "../../utils"; import { TerraFirmaGreg } from "./tfg"; +import { GTNH } from "./gtnh"; export class GamingServices extends TerraformStack { constructor(scope: Construct, id: string) { @@ -29,5 +30,6 @@ export class GamingServices extends TerraformStack { }); new TerraFirmaGreg(this, "tfg", provider, namespace); + new GTNH(this, "gtnh", provider, namespace); } } diff --git a/minecraft/service.yaml b/minecraft/service.yaml index 15ddf61..2a39a3a 100644 --- a/minecraft/service.yaml +++ b/minecraft/service.yaml @@ -37,7 +37,7 @@ metadata: labels: app: atm10-server spec: - type: ClusterIP + type: LoadBalancer ports: - name: atm10 port: 25565