Files
infrastructure/kubernetes/minecraft/minecraft-dep.yml
2026-02-15 18:20:55 -07:00

101 lines
2.2 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: minecraft
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: minecraft
namespace: minecraft
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: minecraft
template:
metadata:
labels:
app: minecraft
spec:
containers:
- name: tailscale
image: tailscale/tailscale:latest
env:
- name: TS_STATE_DIR
value: "/var/lib/tailscale"
- name: TS_KUBE_SECRET
value: ""
- name: TS_AUTHKEY
value: "tskey-auth-REPLACE_ME"
- name: TS_HOSTNAME
value: "minecraft"
volumeMounts:
- name: tailscale-data
mountPath: /var/lib/tailscale
- name: dev-tun
mountPath: /dev/net/tun
securityContext:
capabilities:
add:
- NET_ADMIN
- SYS_MODULE
- name: minecraft
image: itzg/minecraft-server:java21
stdin: true
tty: true
env:
- name: EULA
value: "true"
- name: MEMORY
value: "6G"
- name: CF_OVERRIDES_EXCLUSIONS
value: |
# Not applicable for server side
shaderpacks/**
volumeMounts:
- name: minecraft-data
mountPath: /data
- name: modpacks
mountPath: /modpacks
readOnly: true
resources:
requests:
memory: "6Gi"
limits:
memory: "8Gi"
volumes:
- name: minecraft-data
hostPath:
path: /data/minecraft/data
type: DirectoryOrCreate
- name: modpacks
hostPath:
path: /data/minecraft/modpacks
type: DirectoryOrCreate
- name: tailscale-data
hostPath:
path: /data/minecraft/tailscale
type: DirectoryOrCreate
- name: dev-tun
hostPath:
path: /dev/net/tun
type: CharDevice
---
# apiVersion: v1
# kind: Service
# metadata:
# name: minecraft
# namespace: minecraft
# spec:
# selector:
# app: minecraft
# ports:
# - name: minecraft
# protocol: TCP
# port: 25565
# targetPort: 25565
# type: ClusterIP