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