apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "factorio-dashboard.fullname" . }}-db labels: {{- include "factorio-dashboard.labels" . | nindent 4 }} app.kubernetes.io/component: db spec: serviceName: {{ include "factorio-dashboard.fullname" . }}-db replicas: 1 selector: matchLabels: {{- include "factorio-dashboard.selectorLabels" . | nindent 6 }} app.kubernetes.io/component: db template: metadata: labels: {{- include "factorio-dashboard.selectorLabels" . | nindent 8 }} app.kubernetes.io/component: db spec: containers: - name: timescaledb image: timescale/timescaledb:latest-pg16 ports: - containerPort: {{ .Values.db.port }} env: - name: POSTGRES_USER value: {{ .Values.db.user | quote }} - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: {{ include "factorio-dashboard.secretName" . }} key: DATABASE_URL optional: false - name: POSTGRES_PASSWORD value: {{ .Values.db.password | quote }} - name: POSTGRES_DB value: {{ .Values.db.name | quote }} volumeMounts: - name: db-data mountPath: /var/lib/postgresql/data readinessProbe: exec: command: ["pg_isready", "-U", {{ .Values.db.user | quote }}] initialDelaySeconds: 10 periodSeconds: 5 volumeClaimTemplates: - metadata: name: db-data spec: accessModes: ["ReadWriteOnce"] {{- if .Values.db.storageClassName }} storageClassName: {{ .Values.db.storageClassName | quote }} {{- end }} resources: requests: storage: {{ .Values.db.storage }}