--- kind: StatefulSet apiVersion: apps/v1 metadata: name: weather-database namespace: home-monitor labels: app: weather-database spec: replicas: 1 selector: matchLabels: app: weather-database serviceName: weather-database template: metadata: labels: app: weather-database spec: containers: - name: weather-database image: timescale/timescaledb terminationMessagePath: "/dev/termination-log" terminationMessagePolicy: File imagePullPolicy: IfNotPresent env: - name: POSTGRES_USER valueFrom: secretKeyRef: name: weather-database-credentials key: username - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: weather-database-credentials key: password - name: POSTGRES_DB value: weather volumeMounts: - name: data mountPath: /var/lib/postgresql/data restartPolicy: Always terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst nodeSelector: kubernetes.io/hostname: kubernetes schedulerName: default-scheduler volumeClaimTemplates: - metadata: name: data spec: accessModes: [ "ReadWriteOnce" ] storageClassName: local-path resources: requests: storage: 4Gi --- kind: Service apiVersion: v1 metadata: name: weather-database spec: ports: - name: client port: 5432 selector: app: weather-database type: ClusterIP