From 5a4376f699a7107a1b13c5ed0dc9e3f20fa2dca2 Mon Sep 17 00:00:00 2001 From: Pim Kunis Date: Wed, 17 Jul 2024 14:48:06 +0200 Subject: [PATCH] feat(minecraft): Move to separate k8s namespace --- README.md | 1 + flake-parts/kubenix.nix | 2 + kubenix-modules/all.nix | 1 - kubenix-modules/base.nix | 2 +- kubenix-modules/minecraft.nix | 72 +++++++++++++++++------------------ kubenix-modules/volumes.nix | 3 +- 6 files changed, 41 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 29b2186..93c190c 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ Currently, the applications being deployed like this are: - `bind9` - `media` - `traefik` +- `minecraft` ## Known bugs diff --git a/flake-parts/kubenix.nix b/flake-parts/kubenix.nix index f253f48..2eefec0 100644 --- a/flake-parts/kubenix.nix +++ b/flake-parts/kubenix.nix @@ -106,4 +106,6 @@ "${self}/kubenix-modules/media.nix" "media" "media"; kubenix.traefik = mkDeployScriptAndManifest "${self}/kubenix-modules/traefik.nix" "traefik" "kube-system"; + kubenix.minecraft = mkDeployScriptAndManifest + "${self}/kubenix-modules/minecraft.nix" "minecraft" "minecraft"; }) diff --git a/kubenix-modules/all.nix b/kubenix-modules/all.nix index 4aea28d..055de68 100644 --- a/kubenix-modules/all.nix +++ b/kubenix-modules/all.nix @@ -1,7 +1,6 @@ { imports = [ # ./argo.nix - # ./minecraft.nix ./base.nix ./longhorn.nix ./metallb.nix diff --git a/kubenix-modules/base.nix b/kubenix-modules/base.nix index 8e601e3..cb21e91 100644 --- a/kubenix-modules/base.nix +++ b/kubenix-modules/base.nix @@ -76,7 +76,7 @@ inbucket = { }; dns = { }; media = { }; - traefik = { }; + minecraft = { }; }; nodes = diff --git a/kubenix-modules/minecraft.nix b/kubenix-modules/minecraft.nix index a103db6..a3157eb 100644 --- a/kubenix-modules/minecraft.nix +++ b/kubenix-modules/minecraft.nix @@ -1,48 +1,48 @@ { myLib, ... }: { - kubernetes.resources = { - configMaps.minecraft-env.data.EULA = "TRUE"; + # kubernetes.resources = { + # deployments.minecraft.spec = { + # selector.matchLabels.app = "minecraft"; - deployments.minecraft = { - metadata.labels.app = "minecraft"; + # template = { + # metadata.labels.app = "minecraft"; - spec = { - selector.matchLabels.app = "minecraft"; + # spec = { + # volumes.data.persistentVolumeClaim.claimName = "data"; - template = { - metadata.labels.app = "minecraft"; + # containers.minecraft = { + # image = "itzg/minecraft-server"; + # ports.minecraft.containerPort = 25565; - spec = { - volumes.data.persistentVolumeClaim.claimName = "minecraft"; + # env.EULA.value = "TRUE"; - containers.minecraft = { - image = "itzg/minecraft-server"; - envFrom = [{ configMapRef.name = "minecraft-env"; }]; - ports.minecraft.containerPort = 25565; + # volumeMounts = [{ + # name = "data"; + # mountPath = "/data"; + # }]; + # }; - volumeMounts = [{ - name = "data"; - mountPath = "/data"; - }]; - }; + # securityContext = { + # fsGroup = 1000; + # fsGroupChangePolicy = "OnRootMismatch"; + # }; + # }; + # }; + # }; - securityContext = { - fsGroup = 1000; - fsGroupChangePolicy = "OnRootMismatch"; - }; - }; - }; - }; - }; + # services.minecraft.spec = { + # type = "LoadBalancer"; + # loadBalancerIP = myLib.globals.minecraftIPv4; + # selector.app = "minecraft"; - services.minecraft.spec = { - type = "LoadBalancer"; - loadBalancerIP = myLib.globals.minecraftIPv4; - selector.app = "minecraft"; + # ports.minecraft = { + # port = 25565; + # targetPort = "minecraft"; + # }; + # }; + # }; - ports.minecraft = { - port = 25565; - targetPort = "minecraft"; - }; - }; + lab.longhorn.persistentVolumeClaim.data = { + volumeName = "minecraft"; + storage = "1Gi"; }; } diff --git a/kubenix-modules/volumes.nix b/kubenix-modules/volumes.nix index 8a1b88c..8623b1a 100644 --- a/kubenix-modules/volumes.nix +++ b/kubenix-modules/volumes.nix @@ -35,8 +35,6 @@ }; lab = { - longhornVolumes.minecraft.storage = "1Gi"; - longhorn.persistentVolume = { freshrss.storage = "1Gi"; radicale.storage = "200Mi"; @@ -65,6 +63,7 @@ prowlarr.storage = "150Mi"; sonarr.storage = "150Mi"; bazarr.storage = "25Mi"; + minecraft.storage = "1Gi"; }; }; }