|
@@ -0,0 +1,173 @@
|
|
|
+# https://github.com/itzg/docker-minecraft-server/blob/master/README.md
|
|
|
+#
|
|
|
+# Check health with:
|
|
|
+# docker container inspect -f "{{.State.Health.Status}}" mc
|
|
|
+
|
|
|
+apiVersion: v1
|
|
|
+kind: Service
|
|
|
+metadata:
|
|
|
+ name: minecraft
|
|
|
+ labels:
|
|
|
+ run: minecraft
|
|
|
+spec:
|
|
|
+ ports:
|
|
|
+ - name: rcon
|
|
|
+ port: 25575
|
|
|
+ targetPort: 25575
|
|
|
+ - name: server
|
|
|
+ port: 25565
|
|
|
+ targetPort: 25565
|
|
|
+ selector:
|
|
|
+ run: minecraft
|
|
|
+ type: LoadBalancer
|
|
|
+ loadBalancerIP: 10.42.42.215
|
|
|
+ externalTrafficPolicy: Local
|
|
|
+---
|
|
|
+apiVersion: v1
|
|
|
+kind: PersistentVolume
|
|
|
+metadata:
|
|
|
+ name: minecraft-data
|
|
|
+spec:
|
|
|
+ capacity:
|
|
|
+ storage: 10Ti
|
|
|
+ volumeMode: Filesystem
|
|
|
+ accessModes:
|
|
|
+ - ReadWriteMany
|
|
|
+ persistentVolumeReclaimPolicy: Retain # Keep 4eva
|
|
|
+ storageClassName: default
|
|
|
+ mountOptions:
|
|
|
+ - hard
|
|
|
+ - nfsvers=3
|
|
|
+ nfs:
|
|
|
+ path: /mnt/DroboFS/Shares/Kubernetes/volumes/static/minecraft-data
|
|
|
+ server: 10.42.42.10
|
|
|
+ claimRef:
|
|
|
+ name: minecraft-data
|
|
|
+ namespace: default
|
|
|
+---
|
|
|
+apiVersion: v1
|
|
|
+kind: PersistentVolumeClaim
|
|
|
+metadata:
|
|
|
+ name: minecraft-data
|
|
|
+spec:
|
|
|
+ storageClassName: standard
|
|
|
+ accessModes:
|
|
|
+ - ReadWriteMany
|
|
|
+ resources:
|
|
|
+ requests:
|
|
|
+ storage: 10Ti
|
|
|
+status: {}
|
|
|
+---
|
|
|
+apiVersion: apps/v1
|
|
|
+kind: Deployment
|
|
|
+metadata:
|
|
|
+ name: minecraft
|
|
|
+spec:
|
|
|
+ replicas: 1
|
|
|
+ selector:
|
|
|
+ matchLabels:
|
|
|
+ run: minecraft
|
|
|
+ strategy:
|
|
|
+ type: Recreate
|
|
|
+ template:
|
|
|
+ metadata:
|
|
|
+ labels:
|
|
|
+ run: minecraft
|
|
|
+ spec:
|
|
|
+ terminationGracePeriodSeconds: 90
|
|
|
+ containers:
|
|
|
+ - image: itzg/minecraft-server:latest
|
|
|
+ imagePullPolicy: "Always"
|
|
|
+ name: minecraft
|
|
|
+ env:
|
|
|
+ - name: TZ
|
|
|
+ value: US/Michigan
|
|
|
+ - name: MEMORY
|
|
|
+ value: "3G"
|
|
|
+ # max tick time is default 60.0 seconds (60000 here), -1 to disable
|
|
|
+ - name: MAX_TICK_TIME
|
|
|
+ value: "-1"
|
|
|
+ - name: MAX_PLAYERS
|
|
|
+ value: "6"
|
|
|
+ - name: VERSION
|
|
|
+ value: "1.19.2"
|
|
|
+ - name: EULA
|
|
|
+ value: "TRUE"
|
|
|
+ - name: CF_API_KEY
|
|
|
+ value: "$$2a$$10$$JU91aPtRDMOid0cAfwDGwuk3IETckr93LyV/zW3Xfz49TrT0PoiYy"
|
|
|
+ - name: TYPE
|
|
|
+ value: "FORGE"
|
|
|
+# - name: GENERIC_PACK
|
|
|
+# value: "lol.zip"
|
|
|
+# - name: TYPE
|
|
|
+# value: "AUTO_CURSEFORGE"
|
|
|
+# - name: CF_MODPACK_ZIP
|
|
|
+# value: "lol.zip"
|
|
|
+ # Values below this line will likely have no effect.
|
|
|
+ # Update the configuration in the data directory instead
|
|
|
+ - name: MOTD
|
|
|
+ value: "Enjoy MonkeyBOX!"
|
|
|
+ - name: OPS
|
|
|
+ value: "Aspectra7495"
|
|
|
+ - name: RCON_PASSWORD
|
|
|
+ value: "0202"
|
|
|
+ - name: ANNOUNCE_PLAYER_ACHIEVEMENTS
|
|
|
+ value: "true"
|
|
|
+ - name: MODE
|
|
|
+ value: "survival"
|
|
|
+ - name: SERVER_NAME
|
|
|
+ value: "monkeybox"
|
|
|
+ - name: STOP_SERVER_ANNOUNCE_DELAY
|
|
|
+ value: "60"
|
|
|
+ - name: ENABLE_ROLLING_LOGS
|
|
|
+ value: "true"
|
|
|
+ ports:
|
|
|
+ - containerPort: 25575
|
|
|
+ - containerPort: 25565
|
|
|
+ resources:
|
|
|
+ limits:
|
|
|
+ memory: "8192Mi"
|
|
|
+ cpu: "8000m"
|
|
|
+ requests:
|
|
|
+ memory: "3384Mi"
|
|
|
+ cpu: "2000m"
|
|
|
+ volumeMounts:
|
|
|
+ - mountPath: /data
|
|
|
+ name: minecraft-data
|
|
|
+ restartPolicy: Always
|
|
|
+ volumes:
|
|
|
+ - name: minecraft-data
|
|
|
+ persistentVolumeClaim:
|
|
|
+ claimName: minecraft-data
|
|
|
+status: {}
|
|
|
+#---
|
|
|
+## Hosting
|
|
|
+#apiVersion: networking.k8s.io/v1
|
|
|
+#kind: Ingress
|
|
|
+#metadata:
|
|
|
+# name: minecraft-ingress
|
|
|
+# annotations:
|
|
|
+# cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
|
|
+# ## No basic auth for minecraft
|
|
|
+# ## type of authentication
|
|
|
+# #nginx.ingress.kubernetes.io/auth-type: basic
|
|
|
+# ## name of the secret that contains the user/password definitions
|
|
|
+# #nginx.ingress.kubernetes.io/auth-secret: basic-auth
|
|
|
+# ## message to display with an appropriate context why the authentication is required
|
|
|
+# #nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - Octoprint'
|
|
|
+#spec:
|
|
|
+# tls:
|
|
|
+# - hosts:
|
|
|
+# - minecraft.monkeybox.org
|
|
|
+# secretName: minecraft-tls
|
|
|
+# rules:
|
|
|
+# - host: minecraft.monkeybox.org
|
|
|
+# http:
|
|
|
+# paths:
|
|
|
+# - path: /
|
|
|
+# pathType: Prefix
|
|
|
+# backend:
|
|
|
+# service:
|
|
|
+# name: minecraft
|
|
|
+# port:
|
|
|
+# number: 80
|