From 76bd5c927627f2e3ed666e50b2604f644d24ce35 Mon Sep 17 00:00:00 2001 From: Pim Kunis Date: Sat, 13 Apr 2024 22:21:26 +0200 Subject: [PATCH] add persistent storage to minecraft --- .gitignore | 2 -- kubenix-modules/minecraft.nix | 35 ++++++++++++++++++++++++++++------ nixos-modules/data-sharing.nix | 1 + 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index f40e1ec..446c3c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,2 @@ .direnv -.terraform.lock.hcl -.terraform .deploy-gc/ diff --git a/kubenix-modules/minecraft.nix b/kubenix-modules/minecraft.nix index ca12df0..2219f06 100644 --- a/kubenix-modules/minecraft.nix +++ b/kubenix-modules/minecraft.nix @@ -1,11 +1,6 @@ { kubernetes.resources = { - configMaps = { - minecraft-env.data = { - EULA = "TRUE"; - }; - - }; + configMaps.minecraft-env.data.EULA = "TRUE"; deployments.minecraft = { metadata.labels.app = "minecraft"; @@ -20,16 +15,44 @@ containers.minecraft = { image = "itzg/minecraft-server"; envFrom = [{ configMapRef.name = "minecraft-env"; }]; + ports = [{ containerPort = 25565; protocol = "TCP"; }]; + + volumeMounts = [{ + name = "data"; + mountPath = "/data"; + }]; }; + + volumes = [{ + name = "data"; + persistentVolumeClaim.claimName = "minecraft"; + }]; }; }; }; }; + persistentVolumes.minecraft.spec = { + capacity.storage = "1Mi"; + accessModes = [ "ReadWriteMany" ]; + + nfs = { + server = "lewis.dmz"; + path = "/mnt/data/nfs/minecraft"; + }; + }; + + persistentVolumeClaims.minecraft.spec = { + accessModes = [ "ReadWriteMany" ]; + storageClassName = ""; + resources.requests.storage = "1Mi"; + volumeName = "minecraft"; + }; + services.minecraft.spec = { type = "LoadBalancer"; loadBalancerIP = "192.168.30.136"; diff --git a/nixos-modules/data-sharing.nix b/nixos-modules/data-sharing.nix index 85e2e1c..c164e55 100644 --- a/nixos-modules/data-sharing.nix +++ b/nixos-modules/data-sharing.nix @@ -28,6 +28,7 @@ let "/prowlarr/config" "/sonarr/config" "/bazarr/config" + "/minecraft" ]; nfsExports = lib.strings.concatLines (