apiVersion: batch/v1 kind: Job metadata: name: start-server spec: template: metadata: labels: app: minecraft-server spec: restartPolicy: OnFailure initContainers: - name: copy-data-to-local image: alpine command: ["/bin/sh"] args: ["-c", "cp -r /data/* /local-data/"] volumeMounts: - name: local-data mountPath: /local-data - name: minecraft-data mountPath: /data containers: - name: minecraft-server image: minecraft resources: limits: memory: "11000Mi" cpu: "5" requests: memory: "1500Mi" cpu: "500m" ports: - containerPort: 25565 env: - name: EULA value: "TRUE" - name: TYPE value: "AUTO_CURSEFORGE" - name: CF_API_KEY valueFrom: secretKeyRef: name: curseforge-api key: key - name: CF_PAGE_URL value: "https://www.curseforge.com/minecraft/modpacks/vault-hunters-1-18-2/files/5925838" - name: VERSION value: "1.18.2" - name: INIT_MEMORY value: "1G" - name: MAX_MEMORY value: "10G" - name: MOTD value: "VaultHunters baby!" - name: ENABLE_RCON value: "false" - name: CREATE_CONSOLE_IN_PIPE value: "true" - name: ONLINE_MODE value: "false" - name: ENABLE_AUTOSTOP value: "true" - name: AUTOSTOP_TIMEOUT_EST value: "1800" # stop 30 min after last disconnect volumeMounts: - name: local-data mountPath: /data - name: copy-data-to-persistent image: rsync command: ["/bin/sh"] # args: ["-c", "sleep infinity"] args: ["/run-rsync.sh"] volumeMounts: - name: local-data mountPath: /local-data - name: minecraft-data mountPath: /persistent-data - name: rsync-config mountPath: /run-rsync.sh subPath: run-rsync.sh volumes: - name: minecraft-data persistentVolumeClaim: claimName: minecraft-data - name: local-data emptyDir: {} - name: rsync-config configMap: name: rsync-config defaultMode: 0777