{ myLib, ... }: { kubernetes.resources = { configMaps.minecraft-env.data.EULA = "TRUE"; deployments.minecraft = { metadata.labels.app = "minecraft"; spec = { selector.matchLabels.app = "minecraft"; template = { metadata.labels.app = "minecraft"; spec = { 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 = myLib.globals.minecraftIPv4; selector.app = "minecraft"; ports = [{ port = 25565; targetPort = 25565; protocol = "TCP"; }]; }; }; }