# Mattermost — team messaging # PostgreSQL backend via cluster DNS: postgres # Unpinned — scheduler places freely, local-path PVC # NodePort 32374 # # Deploy: # kubectl create secret generic mattermost-secret \ # --from-literal=db-password='' # kubectl apply -f mattermost-db-init.yaml # kubectl get jobs -w # wait for completion # kubectl apply -f mattermost.yaml --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mattermost-data-pvc spec: accessModes: - ReadWriteOnce storageClassName: local-path resources: requests: storage: 10Gi --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mattermost-plugins-pvc spec: accessModes: - ReadWriteOnce storageClassName: local-path resources: requests: storage: 2Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: mattermost spec: replicas: 1 selector: matchLabels: app: mattermost template: metadata: labels: app: mattermost spec: containers: - name: mattermost image: mattermost/mattermost-team-edition:10 env: - name: MM_DB_PASSWORD valueFrom: secretKeyRef: name: mattermost-secret key: db-password - name: MM_SQLSETTINGS_DRIVERNAME value: postgres - name: MM_SQLSETTINGS_DATASOURCE value: "postgres://mattermost_user:$(MM_DB_PASSWORD)@postgres:5432/mattermost_db?sslmode=disable&connect_timeout=10" - name: MM_SERVICESETTINGS_SITEURL value: https://chat.the-fulfillment.org - name: MM_SERVICESETTINGS_LISTENADDRESS value: ":8065" ports: - containerPort: 8065 volumeMounts: - name: mattermost-data mountPath: /mattermost/data - name: mattermost-plugins mountPath: /mattermost/plugins volumes: - name: mattermost-data persistentVolumeClaim: claimName: mattermost-data-pvc - name: mattermost-plugins persistentVolumeClaim: claimName: mattermost-plugins-pvc --- apiVersion: v1 kind: Service metadata: name: mattermost spec: selector: app: mattermost ports: - port: 8065 targetPort: 8065 nodePort: 32374 type: NodePort