--- # tasks file for ericomeehan.cluster-gateway - name: Create persistent volume for gateway k8s: state: present definition: apiVersion: v1 kind: PersistentVolume metadata: name: gateway-pv spec: capacity: storage: {{ gateway_storage }} accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: standard hostPath: path: /mnt/data/pv.gateway.eom.dev nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - alpha-worker-0 - name: Create persistent volume claim for gateway k8s: state: present definition: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pv-claim.gateway.eom.dev namespace: {{ namespace }} spec: accessModes: - ReadWriteOnce resources: requests: storage: {{ gateway_storage }} storageClassName: standard volumeName: pv.gateway.eom.dev - name: Create a deployment k8s: definition: apiVersion: apps/v1 kind: Deployment metadata: name: deployment.gateway.eom.dev namespace: {{ namespace }} spec: replicas: 1 selector: matchLabels: app: eom.dev template: metadata: labels: app: eom.dev spec: containers: - name: gateway image: gateway volumeMounts: - name: pv.gateway.eom.dev mountPath: /usr/src/gateway/files ports: - containerPort: 3000 env: - name: REDMINE_DB_MYSQL value: "mariadb" - name: REDMINE_DB_PORT value: "8086" - name: REDMINE_DB_DATABASE value: "gateway" - name: REDMINE_DB_USERNAME value: "gateway" - name: REDMINE_DB_PASSWORD value: "{{ gateway_db_password }}" volumes: - name: pv.gateway.eom.dev persistentVolumeClaim: claimName: pv-claim.gateway.eom.dev - name: Expose deployment as a service k8s: definition: apiVersion: v1 kind: Service metadata: name: service.gateway.eom.dev namespace: {{ namespace }} spec: selector: app: eom.dev ports: - port: 3000 protocol: TCP name: gateway-port-3000 type: ClusterIP