Files
kubernetes/namespaces/mineclonia/mineclonia-deployment.yml
2025-03-25 09:44:40 -04:00

64 lines
2.2 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: mineclonia
namespace: mineclonia
spec:
replicas: 1
selector:
matchLabels:
app: mineclonia
template:
metadata:
labels:
app: mineclonia
spec:
initContainers:
- name: mineclonia-updater
image: alpine
command: ["/bin/sh", "-c"]
args:
- |
set -e
apk add --no-cache curl unzip jq
mkdir -p /var/lib/minetest/.minetest
latest_release=$(curl -s https://codeberg.org/api/v1/repos/mineclonia/mineclonia/releases/latest | jq -r '.tag_name')
if [ ! -d "/var/lib/minetest/.minetest/games/mineclonia" ] || [ "$(cat /var/lib/minetest/.minetest/games/mineclonia/version.txt)" != "$latest_release" ]; then
echo "Updating Mineclonia to version $latest_release"
rm -rf /var/lib/minetest/.minetest/games/mineclonia
curl -L https://codeberg.org/mineclonia/mineclonia/archive/$latest_release.zip -o /tmp/mineclonia.zip
unzip /tmp/mineclonia.zip -d /var/lib/minetest/.minetest/games/
echo "$latest_release" > /var/lib/minetest/.minetest/games/mineclonia/version.txt
else
echo "Mineclonia is up to date"
fi
# Ensure ownership of all data
chown -R 30000:30000 /var/lib/minetest
ls -ahl /var/lib/minetest
volumeMounts:
- name: data
mountPath: /var/lib/minetest
containers:
- name: mineclonia
image: ghcr.io/luanti-org/luanti
ports:
- containerPort: 30000
protocol: UDP
- containerPort: 30000
protocol: TCP
volumeMounts:
- name: data
mountPath: /var/lib/minetest
- name: config
mountPath: /etc/minetest
args: ["minetest", "--gameid", "mineclonia"]
stdin: true
tty: true
volumes:
- name: config
configMap:
name: mineclonia-config
- name: data
persistentVolumeClaim:
claimName: mineclonia-data