--- # tasks file for mail - name: Create tes3mp namespace k8s: state: present definition: apiVersion: v1 kind: Namespace metadata: name: tes3mp - name: Create a persistent volume claim k8s: state: present definition: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: data namespace: tes3mp spec: accessModes: - ReadWriteOnce resources: requests: storage: 16Gi - name: Create a config map k8s: state: present definition: apiVersion: v1 kind: ConfigMap metadata: name: config namespace: tes3mp data: tes3mp-server-default.cfg: "{{ lookup('template', 'tes3mp-server-default.cfg.j2') }}" - name: Create a deployment k8s: definition: apiVersion: v1 kind: Deployment metadata: name: tes3mp namespace: tes3mp spec: replicas: 1 selector: matchLabels: app: tes3mp template: metadata: labels: app: tes3mp spec: containers: - name: tes3mp image: tes3mp/server:0.7.0 imagePullPolicy: Always volumeMounts: - name: data mountPath: /server/data - name: config mountPath: /server/tes3mp-server-default.cfg subPath: tes3mp-server-default.cfg ports: - containerPort: 25565 env: - name: TES3MP_SERVER_GENERAL_HOSTNAME value: tes3.eom.dev - name: TES3MP_SERVER_GENERAL_PASSWORD value: "{{ tes3mp_server_general_password }}" command: - "./tes3mp-server" args: - "$@" volumes: - name: data persistentVolumeClaim: claimName: data - name: config configMap: name: config - name: Expose deployment as a service k8s: definition: apiVersion: v1 kind: Service metadata: name: tes3mp namespace: tes3mp spec: selector: app: tes3mp ports: - port: 25565 targetPort: 25565 name: tes3mp protocol: UDP type: LoadBalancer externalTrafficPolicy: Local