From 235b50c492bea9476ce72ed2e15e25cac6b4c1f0 Mon Sep 17 00:00:00 2001 From: royalcat <k.adamovich20@gmail.com> Date: Sun, 30 Mar 2025 03:54:05 +0400 Subject: [PATCH] minecraft prominence-2-rpg --- minecraft/00-namespace.yaml | 4 + minecraft/prominence-2-rpg-pvc.yaml | 13 ++ minecraft/prominence-2-rpg-service.yaml | 45 ++++++ minecraft/prominence-2-rpg-statefulset.yaml | 130 ++++++++++++++++++ minecraft/tfg-service.yaml | 5 + ...g-deployment.yaml => tfg-statefulset.yaml} | 13 +- 6 files changed, 208 insertions(+), 2 deletions(-) create mode 100644 minecraft/00-namespace.yaml create mode 100644 minecraft/prominence-2-rpg-pvc.yaml create mode 100644 minecraft/prominence-2-rpg-service.yaml create mode 100644 minecraft/prominence-2-rpg-statefulset.yaml rename minecraft/{tfg-deployment.yaml => tfg-statefulset.yaml} (87%) diff --git a/minecraft/00-namespace.yaml b/minecraft/00-namespace.yaml new file mode 100644 index 0000000..4ad4f70 --- /dev/null +++ b/minecraft/00-namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: minecraft diff --git a/minecraft/prominence-2-rpg-pvc.yaml b/minecraft/prominence-2-rpg-pvc.yaml new file mode 100644 index 0000000..669bc7a --- /dev/null +++ b/minecraft/prominence-2-rpg-pvc.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: prominence-2-rpg-data + namespace: minecraft + labels: + app.kubernetes.io/name: prominence-2-rpg +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 15Gi diff --git a/minecraft/prominence-2-rpg-service.yaml b/minecraft/prominence-2-rpg-service.yaml new file mode 100644 index 0000000..0ff5f43 --- /dev/null +++ b/minecraft/prominence-2-rpg-service.yaml @@ -0,0 +1,45 @@ +apiVersion: v1 +kind: Service +metadata: + name: prominence-2-rpg + namespace: minecraft + labels: + app.kubernetes.io/name: prominence-2-rpg + annotations: + mc-router.itzg.me/defaultServer: "true" + mc-router.itzg.me/externalServerName: "prominence-2-rpg.mc.konfa.ch" +spec: + selector: + app.kubernetes.io/name: prominence-2-rpg + ports: + - port: 25565 +--- +apiVersion: externaldns.k8s.io/v1alpha1 +kind: DNSEndpoint +metadata: + name: prominence-2-rpg-dns-record + namespace: minecraft +spec: + endpoints: + - dnsName: prominence-2-rpg.mc.konfa.ch + recordTTL: 300 + recordType: A + targets: + - 130.61.173.37 +--- +apiVersion: v1 +kind: Service +metadata: + name: prominence-2-rpg-port + namespace: minecraft + labels: + app.kubernetes.io/name: prominence-2-rpg +spec: + type: NodePort + selector: + app.kubernetes.io/name: prominence-2-rpg + ports: + - name: "25565" + port: 25565 + targetPort: 25565 + nodePort: 33565 diff --git a/minecraft/prominence-2-rpg-statefulset.yaml b/minecraft/prominence-2-rpg-statefulset.yaml new file mode 100644 index 0000000..e01b34d --- /dev/null +++ b/minecraft/prominence-2-rpg-statefulset.yaml @@ -0,0 +1,130 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: prominence-2-rpg + namespace: minecraft + labels: + app.kubernetes.io/name: prominence-2-rpg +spec: + serviceName: prominence-2-rpg + selector: + matchLabels: + app.kubernetes.io/name: prominence-2-rpg + replicas: 0 + template: + metadata: + namespace: minecraft + labels: + app.kubernetes.io/name: prominence-2-rpg + containertype: minecraft-server + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: cpuclass + operator: In + values: + - high + containers: + - name: prominence-2-rpg + image: itzg/minecraft-server:java21-graalvm + env: + # Let jvm figure out memory based on limit + - name: MEMORY + value: "" + - name: JVM_XX_OPTS + value: "-XX:MaxRAMPercentage=75" + + - name: CF_API_KEY + value: $2a$10$GE.ruAAiogu1Zq2/oyPhzuGgFkXxID2ofiIXtnehJlS98/sK6J.Ya + - name: CF_SLUG + value: prominence-2-rpg + - name: CF_FILENAME_MATCHER + value: "3.1.6" + # - name: CF_FILE_ID + # value: "6296245" + # - name: CF_EXCLUDE_INCLUDE_FILE + # value: "" + - name: CF_FORCE_SYNCHRONIZE + value: "true" + - name: CF_FORCE_INCLUDE_MODS + value: | + fancymenu + luna + # - name: CF_EXCLUDE_MODS + # value: | + # forgeconfigscreens + - name: CURSEFORGE_FILES + value: | + modmenu + + # - name: CF_EXCLUDE_MODS + # value: | + # forgeconfigscreens + # prominent + # - name: CF_FORCE_INCLUDE_MODS + # value: | + # forgeconfigscreens + # fancymenu + # luna + + - name: ALLOW_FLIGHT + value: "true" + - name: CF_OVERRIDES_EXCLUSIONS + value: | + shaderpacks/** + - name: CF_PARALLEL_DOWNLOADS + value: "1" + - name: EULA + value: "TRUE" + - name: MAX_TICK_TIME + value: "-1" + + - name: MOD_PLATFORM + value: AUTO_CURSEFORGE + - name: ONLINE_MODE + value: "false" + - name: OVERRIDE_SERVER_PROPERTIES + value: "true" + - name: SPAWN_PROTECTION + value: "0" + + - name: OPS + value: | + RoyalCat33 + RoyalCat20 + Zoryka + ports: + - containerPort: 25565 + protocol: TCP + resources: + requests: + cpu: "1" + memory: "2Gi" + limits: + cpu: "4" + memory: "10Gi" + readinessProbe: + exec: + command: + ["/usr/local/bin/mc-monitor", "status", "--host", "localhost"] + # Give it i + p * f seconds to be ready, so 120 seconds + initialDelaySeconds: 20 + periodSeconds: 5 + failureThreshold: 20 + # Monitor ongoing liveness + livenessProbe: + exec: + command: + ["/usr/local/bin/mc-monitor", "status", "--host", "localhost"] + initialDelaySeconds: 120 + periodSeconds: 60 + volumeMounts: + - mountPath: /data + name: prominence-2-rpg-data + volumes: + - name: prominence-2-rpg-data + persistentVolumeClaim: + claimName: prominence-2-rpg-data diff --git a/minecraft/tfg-service.yaml b/minecraft/tfg-service.yaml index c2b3cd0..585140e 100644 --- a/minecraft/tfg-service.yaml +++ b/minecraft/tfg-service.yaml @@ -6,6 +6,7 @@ metadata: labels: app.kubernetes.io/name: tfg annotations: + mc-router.itzg.me/defaultServer: "true" mc-router.itzg.me/externalServerName: "tfg.mc.konfa.ch" spec: selector: @@ -38,3 +39,7 @@ metadata: spec: endpoints: - dnsName: tfg.mc.konfa.ch + recordTTL: 300 + recordType: A + targets: + - 130.61.173.37 diff --git a/minecraft/tfg-deployment.yaml b/minecraft/tfg-statefulset.yaml similarity index 87% rename from minecraft/tfg-deployment.yaml rename to minecraft/tfg-statefulset.yaml index 155139d..df8fab5 100644 --- a/minecraft/tfg-deployment.yaml +++ b/minecraft/tfg-statefulset.yaml @@ -10,7 +10,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: tfg - replicas: 1 + replicas: 0 template: metadata: namespace: minecraft @@ -18,11 +18,20 @@ spec: app.kubernetes.io/name: tfg containertype: minecraft-server spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: cpuclass + operator: In + values: + - high containers: - name: tfg image: itzg/minecraft-server:java21-graalvm env: - # Let jvm figure out memory based on limits + # Let jvm figure out memory based on limit - name: MEMORY value: "" - name: JVM_XX_OPTS