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