64 lines
2.2 KiB
YAML
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
|