apiVersion: apps/v1
kind: Deployment
metadata:
  name: tfg
  namespace: minecraft
  labels:
    app.kubernetes.io/name: tfg
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: tfg
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app.kubernetes.io/name: tfg
    spec:
      containers:
        - name: tfg
          image: itzg/minecraft-server:java21-graalvm
          env:
            - name: ALLOW_FLIGHT
              value: "true"
            - name: CF_API_KEY
              value: $2a$10$GE.ruAAiogu1Zq2/oyPhzuGgFkXxID2ofiIXtnehJlS98/sK6J.Ya
            - name: CF_FILE_ID
              value: "6123835"
            - name: CF_OVERRIDES_EXCLUSIONS
              value: |
                shaderpacks/**
            - name: CF_PARALLEL_DOWNLOADS
              value: "1"
            - name: CF_SLUG
              value: terrafirmagreg-modern
            - name: EULA
              value: "TRUE"
            - name: MAX_TICK_TIME
              value: "-1"
            - name: MEMORY
              value: 12G
            - name: MOD_PLATFORM
              value: AUTO_CURSEFORGE
            - name: ONLINE_MODE
              value: "false"
            - name: OVERRIDE_SERVER_PROPERTIES
              value: "true"
            - name: SPAWN_PROTECTION
              value: "0"
            - name: OPS
              value: |
                RoyalCat33
                RoyalCat20
                Zoryka
          ports:
            - containerPort: 25565
              protocol: TCP
          volumeMounts:
            - mountPath: /data
              name: tfg-data
            - mountPath: /downloads
              name: curseforge-downloads
      restartPolicy: Always
      volumes:
        - name: tfg-data
          persistentVolumeClaim:
            claimName: tfg-data
        - name: curseforge-downloads
          persistentVolumeClaim:
            claimName: curseforge-downloads