apiVersion: v1 kind: Namespace metadata: name: nextcloud --- apiVersion: apps/v1 kind: Deployment metadata: name: nextcloud-db namespace: nextcloud spec: replicas: 1 selector: matchLabels: app: nextcloud-db template: metadata: labels: app: nextcloud-db spec: # nodeName: kube-master containers: - name: db image: docker.io/library/postgres:14 imagePullPolicy: IfNotPresent env: - name: POSTGRES_DB valueFrom: secretKeyRef: name: nextcloud-credentials key: POSTGRES_DB - name: POSTGRES_USER valueFrom: secretKeyRef: name: nextcloud-credentials key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: nextcloud-credentials key: POSTGRES_PASSWORD volumeMounts: # - name: pgdata # mountPath: /var/lib/postgresql/data - name: nextcloud-database-data mountPath: /var/lib/postgresql/data ports: - name: postgres containerPort: 5432 volumes: - name: pgdata hostPath: path: /opt/kubernetes/Nextcloud_kube/data/pgdata - name: nextcloud-database-data persistentVolumeClaim: claimName: nextcloud-database --- apiVersion: v1 kind: Service metadata: name: db namespace: nextcloud spec: selector: app: nextcloud-db ports: - protocol: TCP port: 5432 targetPort: postgres --- # if remote access required #apiVersion: v1 #kind: Service #metadata: # name: db-nodeport # namespace: nextcloud #spec: # type: NodePort # selector: # app: nextcloud-db # ports: # - protocol: TCP # port: 5432 # targetPort: postgres # nodePort: 32366