Skip to content

Commit 8ff4043

Browse files
committed
feat(minecraft): deploy rlcraft server
Deploy RLcraft server.
1 parent cf4230c commit 8ff4043

File tree

2 files changed

+190
-0
lines changed

2 files changed

+190
-0
lines changed
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: Application
3+
metadata:
4+
name: minecraft-rlcraft
5+
finalizers:
6+
- resources-finalizer.argocd.argoproj.io
7+
spec:
8+
project: minecraft
9+
source:
10+
repoURL: https://itzg.github.io/minecraft-server-charts
11+
targetRevision: 5.0.0
12+
chart: minecraft
13+
helm:
14+
valuesObject:
15+
image:
16+
tag: java8
17+
initContainers:
18+
- name: fix-config-permissions
19+
image: busybox
20+
command:
21+
- sh
22+
- -c
23+
- |
24+
mkdir -p /data/config
25+
chown -R 1000:1000 /data
26+
while [ -f /data/need-maintenance ]; do
27+
echo "Waiting for /data/need-maintenance to be deleted..."
28+
sleep 5
29+
done
30+
securityContext:
31+
runAsUser: 0
32+
runAsGroup: 0
33+
runAsNonRoot: false
34+
volumeMounts:
35+
- name: datadir
36+
mountPath: /data
37+
38+
serviceAnnotations:
39+
mc-router.itzg.me/externalServerName: "rl.gug.d3adb5.ca"
40+
workloadAsStatefulSet: true
41+
strategyType: RollingUpdate
42+
persistence:
43+
storageClass: longhorn
44+
dataDir:
45+
enabled: true
46+
Size: 20Gi
47+
resources:
48+
requests:
49+
cpu: 2
50+
memory: 10Gi
51+
limits:
52+
memory: 10Gi
53+
extraEnv:
54+
USE_MEOWICE_FLAGS: "true"
55+
minecraftServer:
56+
eula: true
57+
type: FORGE
58+
version: "1.12.2"
59+
difficulty: hard
60+
maxTickTime: -1
61+
enableCommandBlock: true
62+
whitelist: {{ join "," .Values.minecraft.server.rlcraft.whitelist }}
63+
ops: {{ join "," .Values.minecraft.server.rlcraft.ops }}
64+
maxPlayers: 16
65+
allowNether: true
66+
announcePlayerAchievements: true
67+
spawnProtection: 0
68+
viewDistance: 16
69+
motd: "This time I'm really gonna do it."
70+
rcon:
71+
enabled: true
72+
existingSecret: minecraft-rlcraft-secrets
73+
secretKey: rcon-password
74+
memory: 8192M
75+
overrideServerProperties: false
76+
77+
extraPorts:
78+
- name: voice-chat
79+
containerPort: 24450
80+
protocol: UDP
81+
service:
82+
enabled: true
83+
embedded: false
84+
annotations:
85+
metallb.universe.tf/allow-shared-ip: {{ .Values.metallb.ipSharingKey }}
86+
type: LoadBalancer
87+
port: 24450
88+
89+
mcbackup:
90+
enabled: true
91+
pruneBackupDays: 7
92+
persistence:
93+
storageClass: truenas-iscsi-hdd
94+
backupDir:
95+
enabled: true
96+
Size: 50Gi
97+
98+
affinity:
99+
podAntiAffinity:
100+
preferredDuringSchedulingIgnoredDuringExecution:
101+
- weight: 100
102+
podAffinityTerm:
103+
labelSelector:
104+
matchExpressions:
105+
- key: app.kubernetes.io/name
106+
operator: In
107+
values:
108+
- minecraft
109+
topologyKey: kubernetes.io/hostname
110+
111+
extraVolumes:
112+
- volumes:
113+
- name: voice-chat-config
114+
configMap:
115+
name: minecraft-rlcraft-voice-chat-config
116+
volumeMounts:
117+
- name: voice-chat-config
118+
mountPath: /data/config/voicechat/voicechat-server.properties
119+
subPath: voicechart-server.properties
120+
121+
extraDeploy:
122+
- |
123+
apiVersion: bitnami.com/v1alpha1
124+
kind: SealedSecret
125+
metadata:
126+
name: minecraft-rlcraft-secrets
127+
spec:
128+
encryptedData:
129+
{{- range $key, $value := .Values.minecraft.server.rlcraft.secrets }}
130+
{{ $key }}: {{ splitList "\n" $value | join "" }}
131+
{{- end }}
132+
- |
133+
apiVersion: v1
134+
kind: ConfigMap
135+
metadata:
136+
name: minecraft-rlcraft-voice-chat-config
137+
data:
138+
voicechart-server.properties: |
139+
port=24450
140+
bind_address=
141+
max_voice_distance=48.0
142+
crouch_distance_multiplier=1.0
143+
whisper_distance_multiplier=0.5
144+
codec=VOIP
145+
mtu_size=1024
146+
keep_alive=1000
147+
enable_groups=true
148+
voice_host=rl.gug.d3adb5.ca
149+
allow_recording=true
150+
spectator_interaction=false
151+
spectator_player_possession=false
152+
force_voice_chat=false
153+
login_timeout=10000
154+
broadcast_range=-1.0
155+
allow_pings=true
156+
use_natives=true
157+
158+
destination:
159+
server: https://kubernetes.default.svc
160+
namespace: {{ .Values.minecraft.namespace }}
161+
162+
syncPolicy:
163+
automated:
164+
prune: true
165+
selfHeal: true
166+
syncOptions:
167+
- CreateNamespace=true

argo/app-of-apps/values.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,29 @@ democraticCsi:
180180
minecraft:
181181
namespace: minecraft
182182
server:
183+
rlcraft:
184+
whitelist:
185+
- ab9c17
186+
- OnyxKier
187+
- Harkly_
188+
- Nightmar35
189+
ops:
190+
- ab9c17
191+
- OnyxKier
192+
- Harkly_
193+
- Nightmar35
194+
secrets:
195+
rcon-password: |-
196+
AgA4aG8bclIN5h2/PBu5lnMJ11r5bL0f8nzRc2escYFiLoe4Mzyezz2C+0VmOU5G5vJpNwTstAXTJc92
197+
ZoFKrKGIoihbrWG70G0s9c9qYJkZt8whZzT4fSfl9vxcPnOPrY8oor77iPjHg67lYOqlWdNGWreG3f5t
198+
DyUlic+WCepHHRz4ihg7mPXC4/FxOfPvEWnEL7ugA+6PPqvgnHttjLWRLEIH74zDtYKmD3uSaGTQ9ocT
199+
6hc4w3J0b/2+PHkxymiddS4RQR5AwE1iViRxUjhheTFAkQGSel00pXv9dN7oDsboSLUk6iDEPqbOuBB6
200+
6GlHZF5S4+57aUyuY3g/fWnWIr+A5YTIpn8u9ccSrVUGktaUxbAI43V+wflgbTIfx4yk1cULNoucRQy9
201+
+ebH8F8zuA40u0JM8JrIzLLIJrKvdLeWYw5vX4dQRcRYxGr8GPvUaNmd4BcqJE/LgpkpGLr4I/hnNb9Q
202+
HiGJKUCHLGv7vTCdI/XyCA4Ktpevke4hrZbtejJ+t0P95q1/KPSU71JJiVyVDuPS/X4WJgbUQTvcuIYm
203+
GdDkht7NKVoSGbh99W7MgxWTMuiZS/lnohMNbWT6Ilgae476SUAXRASAxX5npaZHbwbz17gK8LRXZSuM
204+
SzaZBn52czMD2bOHlpcjvZ40wZaZcjpi+d3+Grjp3ZrhyResROlfVjQuedN3OwouJDWOX3BmTnFBmsIE
205+
LhdFbSTySq+e/uYZ1YUiWgkLfiZ5N4DJzfiMy1wOemw9I7A=
183206
gug:
184207
whitelist:
185208
- ab9c17

0 commit comments

Comments
 (0)