118 lines
2.7 KiB
YAML
118 lines
2.7 KiB
YAML
resources:
|
|
requests:
|
|
cpu: 1
|
|
memory: 500Mi
|
|
limits:
|
|
memory: 6Gi
|
|
cpu: 2500m
|
|
|
|
minecraftServer:
|
|
eula: "TRUE"
|
|
type: "PAPER"
|
|
version: "1.21.11"
|
|
difficulty: hard
|
|
motd: "A Minecraft Server."
|
|
memory: 6G
|
|
rcon:
|
|
enabled: true
|
|
withGeneratedPassword: false
|
|
port: 25575
|
|
existingSecret: rcon-credentials
|
|
secretKey: rcon-password
|
|
|
|
persistence:
|
|
dataDir:
|
|
enabled: true
|
|
Size: 4Gi
|
|
|
|
sidecarContainers:
|
|
- name: backup
|
|
image: itzg/mc-backup
|
|
imagePullPolicy: Always
|
|
env:
|
|
- name: RCON_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: rcon-credentials
|
|
key: rcon-password
|
|
- name: BACKUP_METHOD
|
|
value: tar
|
|
- name: BACKUP_INTERVAL
|
|
value: "15m"
|
|
- name: INITIAL_DELAY
|
|
value: "5m"
|
|
- name: PRUNE_BACKUPS_COUNT
|
|
value: "15"
|
|
- name: DEST_DIR
|
|
value: /mnt/backups
|
|
- name: LINK_LATEST
|
|
value: "true"
|
|
- name: TAR_COMPRESS_METHOD
|
|
value: gzip
|
|
- name: BACKUP_NAME
|
|
value: minecraft-main
|
|
- name: TZ
|
|
value: "America/Vancouver"
|
|
volumeMounts:
|
|
- name: datadir
|
|
mountPath: /data
|
|
readOnly: true
|
|
- name: backups
|
|
mountPath: /mnt/backups
|
|
|
|
extraVolumes:
|
|
- volumeMounts:
|
|
- name: backups
|
|
mountPath: /mnt/backups
|
|
volumes:
|
|
- name: backups
|
|
nfs:
|
|
server: 192.168.27.2
|
|
path: /backup/minecraft
|
|
|
|
initContainers:
|
|
- name: world-restore
|
|
image: busybox:latest
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
set -e
|
|
|
|
echo "=== Minecraft World Restore ==="
|
|
|
|
BACKUP_FILE="/backups/latest.tgz"
|
|
|
|
# Check if backup exists
|
|
if [[ ! -f "$BACKUP_FILE" ]]; then
|
|
echo "Skipping restore, server will start with existing/new world"
|
|
exit 0
|
|
fi
|
|
|
|
echo "✓ Backup found: $BACKUP_FILE"
|
|
echo " Size: $(du -h $BACKUP_FILE | cut -f1)"
|
|
|
|
# Check if world already exists
|
|
if [ -f /data/world/level.dat ]; then
|
|
echo "⚠ World already exists at /data/world/"
|
|
echo " Replacing with backup..."
|
|
rm -rf /data/world /data/world_nether /data/world_the_end
|
|
fi
|
|
|
|
# Extract backup
|
|
echo "Extracting backup to /data/..."
|
|
tar -xzf "$BACKUP_FILE" -C /data/
|
|
echo "✓ Extraction complete"
|
|
|
|
echo ""
|
|
echo "=== Restore Complete ==="
|
|
echo "Restored world size: $(du -sh /data/world 2>/dev/null | cut -f1 || echo 'unknown')"
|
|
ls -lh /data/ | grep -E "^d" || true
|
|
echo ""
|
|
volumeMounts:
|
|
- name: datadir
|
|
mountPath: /data
|
|
- name: backup-volume
|
|
mountPath: /backup
|
|
readOnly: true
|