From 4afed98e4eef3ff7074a05595a569d1ef581fc40 Mon Sep 17 00:00:00 2001 From: Serge Bazanski Date: Wed, 21 Jul 2021 14:40:49 +0000 Subject: [PATCH] minecraft: add CTM server Change-Id: Ic4590bbab4cdbefe0db05f1026363b11f7973794 --- personal/q3k/minecraft/Dockerfile-paper | 4 +- personal/q3k/minecraft/prod.jsonnet | 81 +++++++++++++++++-------- 2 files changed, 57 insertions(+), 28 deletions(-) diff --git a/personal/q3k/minecraft/Dockerfile-paper b/personal/q3k/minecraft/Dockerfile-paper index d9b6c671..9f4db69b 100644 --- a/personal/q3k/minecraft/Dockerfile-paper +++ b/personal/q3k/minecraft/Dockerfile-paper @@ -4,7 +4,7 @@ RUN set -e -x ;\ export DEBIAN_FRONTEND=noninteractive ;\ apt-get -y update ;\ apt-get -y upgrade ;\ - apt-get -y install git openjdk-8-jre-headless wget + apt-get -y install git openjdk-8-jre-headless wget unzip RUN set -e -x ;\ export DEBIAN_FRONTEND=noninteractive ;\ @@ -26,7 +26,7 @@ RUN set -e -x ;\ USER minecraft WORKDIR /home/minecraft -ARG VERSION=1.16.4 +ARG VERSION=1.16.5 RUN set -e -x ;\ wget --quiet https://papermc.io/api/v1/paper/${VERSION}/latest/download ;\ diff --git a/personal/q3k/minecraft/prod.jsonnet b/personal/q3k/minecraft/prod.jsonnet index 6c4bd4b3..dfadbc39 100644 --- a/personal/q3k/minecraft/prod.jsonnet +++ b/personal/q3k/minecraft/prod.jsonnet @@ -7,12 +7,15 @@ local defaultWorldguardConfig = import "worldguard.libsonnet"; "spigot-1.16.1": "registry.k0.hswaw.net/q3k/minecraft:spigot-1.16.1-r2", "paper-1.16.1": "registry.k0.hswaw.net/q3k/minecraft:paper-1.16.1-r2", "paper-1.16.4": "registry.k0.hswaw.net/q3k/minecraft:paper-1.16.4-r1", + "paper-1.16.5": "registry.k0.hswaw.net/q3k/minecraft:paper-1.16.5-r2", }, server(name, version):: { local server = self, name:: name, version:: version, image:: minecraft.versions[server.version], + worldedit:: true, + overviewer:: true, metadata:: { namespace: "minecraft", @@ -70,20 +73,25 @@ local defaultWorldguardConfig = import "worldguard.libsonnet"; worldguardConfig:: defaultWorldguardConfig, + startSteps:: [ + ] + (if server.worldedit then [ + "mkdir -p plugins/WorldGuard", + "cp /home/minecraft/worldedit-*.jar plugins", + "cp /home/minecraft/worldguard-*.jar plugins", + "cp /home/minecraft/config/worldguard_config.yaml plugins/WorldGuard/config.yml", + ] else []), + startsh:: ||| #!/usr/bin/env bash cd /home/minecraft/world cp /home/minecraft/config/server.properties . cp /home/minecraft/server.jar . - mkdir -p plugins/WorldGuard - cp /home/minecraft/worldedit-*.jar plugins - cp /home/minecraft/worldguard-*.jar plugins - cp /home/minecraft/config/worldguard_config.yaml plugins/WorldGuard/config.yml echo "eula=true" > eula.txt + %s bash /home/minecraft/config/overviewer.sh & exec java -Xmx4G -Xms4G -jar server.jar - |||, + ||| % [std.join("\n", server.startSteps)], overviewersh:: ||| #!/usr/bin/env bash @@ -102,11 +110,13 @@ local defaultWorldguardConfig = import "worldguard.libsonnet"; data: { local properties = std.join("\n", ["%s=%s" % [k, std.toString(server.properties[k])] for k in std.objectFields(server.properties)]), "server.properties": std.base64(properties), + "start.sh": std.base64(server.startsh), + } + (if server.worldedit then { local worldguardConfig = std.manifestYamlDoc(server.worldguardConfig), "worldguard_config.yaml": std.base64(worldguardConfig), - "start.sh": std.base64(server.startsh), + } else {} )+ (if server.overviewer then { "overviewer.sh": std.base64(server.overviewersh), - }, + } else {}), }, worldVolume: kube.PersistentVolumeClaim(server.componentName("world")) { @@ -156,6 +166,17 @@ local defaultWorldguardConfig = import "worldguard.libsonnet"; }, }, }, + bridge: kube.Container("bridge") { + image: "registry.k0.hswaw.net/q3k/minecraft-hscloud-bridge:20200518c", + command: [ + "/personal/q3k/minecraft/plugin/hscloud/bridge/bridge", + "-plugin", "127.0.0.1:2137", + ], + ports_: { + bridge: { containerPort: 8081 }, + }, + }, + } + (if server.overviewer then { overviewer: kube.Container("overviewer") { image: "halverneus/static-file-server:v1.8.0", env_: { @@ -168,17 +189,7 @@ local defaultWorldguardConfig = import "worldguard.libsonnet"; web: { containerPort: 8080 }, }, }, - bridge: kube.Container("bridge") { - image: "registry.k0.hswaw.net/q3k/minecraft-hscloud-bridge:20200518c", - command: [ - "/personal/q3k/minecraft/plugin/hscloud/bridge/bridge", - "-plugin", "127.0.0.1:2137", - ], - ports_: { - bridge: { containerPort: 8081 }, - }, - }, - }, + } else {}), }, }, }, @@ -203,16 +214,34 @@ local defaultWorldguardConfig = import "worldguard.libsonnet"; ns: kube.Namespace("minecraft"), q3k: { - survival: minecraft.server("q3k-survival", "paper-1.16.4") { + "nova-arcana": minecraft.server("q3k-nova-arcana", "paper-1.16.5") { + overviewer: false, + worldedit: false, properties+: { - motd: "wypierdol z polski kropka pe el", - "enforce-whitelist": true, - }, - worldguardConfig+: { - mobs+: { - "block-creeper-block-damage": true, - }, + motd: "Nova Arcana V1.1.4", + //"enforce-whitelist": true, + "enable-rcon": "true", + "rcon.password": "dupa.8", }, + startSteps+: [ + ||| + if [ ! -e world/map-installed.txt ]; then + set -e -x + mkdir -p world + cd world + rm -rf * + wget https://object.ceph-waw3.hswaw.net/q3k-personal/f1a73ad0518a2629a5bed072a7de4e4534a3c89705d6cea2f203a05cccd01634.zip -O map.zip + unzip -o map.zip + mv Untold*/* . + rm -rf Untold* + rm map.zip + touch map-installed.txt + ls -la + cd .. + set +e +x + fi + ||| + ], }, }, }