--- # tasks file for deploy-production.yml - name: Create persistent volume for gondwanamc production k8s: state: present definition: apiVersion: v1 kind: PersistentVolume metadata: name: pv-gondwanamc-production spec: capacity: storage: 8Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: standard hostPath: path: /data/store-0/pv-gondwanamc-production nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - alpha-worker-0 - name: Unpack gondwanamc world data to the production persistent volume unpack: src: Gondwana.tar.gz dest: /data/store-0/pv-gondwanamc-production copy: true - name: Copy server properties to production persistent volume copy: src: server.properties dest: /data/store-0/pv-gondwanamc-production - name: Copy whitelist to production persistent volume copy: src: whitelist.json dest: /data/store-0/pv-gondwanamc-production - name: Create persistent volume claim for gondwanamc production volume k8s: state: present definition: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pv-claim-gondwanamc-production namespace: production spec: accessModes: - ReadWriteOnce resources: requests: storage: 8Gi storageClassName: standard volumeName: pv-gondwanamc-production - name: Create a production Deployment k8s: definition: apiVersion: apps/v1 kind: Deployment metadata: name: minecraft-deployment namespace: production spec: replicas: 1 selector: matchLabels: app: gondwanamc.com template: metadata: labels: app: gondwanamc.com spec: containers: - name: openminecraft image: itzg/minecraft-server volumeMounts: - name: pv-gondwanamc-production mountPath: /data ports: - containerPort: 25565 - containerPort: 24454 env: - name: EULA value: "TRUE" - name: TYPE value: "FABRIC" - name: MODS value: "https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/fabric,https://cdn.modrinth.com/data/bWrNNfkb/versions/D4KXqjtC/Floodgate-Fabric-2.2.3-SNAPSHOT%2Bbuild.28.jar,https://www.curseforge.com/api/v1/mods/306612/files/5510851/download,https://www.curseforge.com/api/v1/mods/416089/files/5500955/download" volumes: - name: pv-gondwanamc-production persistentVolumeClaim: claimName: pv-claim-gondwanamc-production - name: Expose Deployment as a Service in production k8s: definition: apiVersion: v1 kind: Service metadata: name: service-gondwanamc-com namespace: production spec: selector: app: gondwanamc.com ports: - port: 24454 protocol: TCP name: minecraft-port-24454 nodePort: "{{ nodePorts[gondwanamc-24454] }}" - port: 25565 protocol: TCP name: minecraft-port-25565 nodePort: "{{ nodePorts[gondwanamc-25565] }}" type: NodePort