apiVersion: apps/v1 kind: Deployment metadata: name: nextcloud labels: app.kubernetes.io/name: nextcloud spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/name: nextcloud template: metadata: labels: app.kubernetes.io/name: nextcloud spec: containers: - name: nextcloud image: nextcloud env: - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: TRUSTED_PROXIES value: 10.0.0.0/8 - name: POSTGRES_HOST value: postgres.$(NAMESPACE).svc.cluster.local - name: POSTGRES_DB valueFrom: secretKeyRef: name: postgres-credentials-secret key: database - name: POSTGRES_USER valueFrom: secretKeyRef: name: postgres-credentials-secret key: username - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: postgres-credentials-secret key: password ports: - name: http containerPort: 80 resources: requests: cpu: 750m memory: 75Mi limits: cpu: 1000m memory: 1Gi volumeMounts: - name: nextcloud-pv mountPath: /var/www/html volumes: - name: nextcloud-pv persistentVolumeClaim: claimName: nextcloud-pvc --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nextcloud-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: v1 kind: Service metadata: name: nextcloud labels: app.kubernetes.io/name: nextcloud spec: selector: app.kubernetes.io/name: nextcloud ports: - name: http port: 80 targetPort: http