apiVersion: apps/v1 kind: Deployment metadata: name: nextcloud labels: app: nextcloud spec: replicas: 1 selector: matchLabels: app: nextcloud template: metadata: labels: app: nextcloud spec: volumes: - name: nextcloud-storage persistentVolumeClaim: claimName: nextcloud-pvc containers: - image: nextcloud:apache name: cron command: - /cron.sh volumeMounts: - name: nextcloud-storage mountPath: /var/www/html - image: nextcloud:apache name: nextcloud ports: - containerPort: 80 env: - name: REDIS_HOST value: redis - name: MYSQL_HOST value: postgres - name: MYSQL_PORT value: "5432" - name: MYSQL_DATABASE value: {{ .Values.pg.db }} - name: MYSQL_PASSWORD value: {{ .Values.pg.pass }} - name: MYSQL_USER value: {{ .Values.pg.user }} - name: NEXTCLOUD_ADMIN_PASSWORD value: {{ .Values.nextcloud.pass }} - name: NEXTCLOUD_ADMIN_USER value: "admin" - name: NEXTCLOUD_TRUSTED_DOMAINS value: {{ .Values.nextcloud.url }} - name: PHP_MEMORY_LIMIT value: '2048G' volumeMounts: - mountPath: /var/www/html name: nextcloud-storage --- apiVersion: v1 kind: PersistentVolume metadata: name: nextcloud-pv labels: pvc_type: nextcloud-pv spec: capacity: storage: 2500Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain hostPath: path: {{ .Values.nextcloud.path }} --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nextcloud-pvc spec: accessModes: - ReadWriteOnce volumeMode: Filesystem storageClassName: "" volumeName: nextcloud-pv resources: requests: storage: 2500Gi --- apiVersion: v1 kind: Service metadata: name: nextcloud labels: app: nextcloud spec: clusterIP: None ports: - port: 80 name: nextcloud protocol: TCP type: ClusterIP selector: app: nextcloud