apiVersion: apps/v1 kind: Deployment metadata: name: nextcloud namespace: {{ .namespace }} spec: replicas: 1 strategy: type: Recreate selector: matchLabels: component: web template: metadata: labels: component: web spec: securityContext: runAsUser: 0 runAsNonRoot: false seccompProfile: type: RuntimeDefault containers: - name: nextcloud image: nextcloud:34.0.0-apache ports: - name: http containerPort: 80 protocol: TCP env: - name: NEXTCLOUD_TRUSTED_DOMAINS value: {{ .domain }} - name: NEXTCLOUD_ADMIN_USER value: {{ .adminUser }} - name: NEXTCLOUD_ADMIN_PASSWORD valueFrom: secretKeyRef: name: nextcloud-secrets key: adminPassword - name: POSTGRES_DB value: {{ .db.name }} - name: POSTGRES_USER value: {{ .db.user }} - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: nextcloud-secrets key: dbPassword - name: POSTGRES_HOST value: {{ .db.host }} - name: REDIS_HOST value: {{ .redis.host }} - name: REDIS_HOST_PORT value: "6379" - name: REDIS_HOST_PASSWORD valueFrom: secretKeyRef: name: nextcloud-secrets key: redis.password - name: OVERWRITEPROTOCOL value: https - name: OVERWRITECLIURL value: https://{{ .domain }} - name: TRUSTED_PROXIES value: 10.0.0.0/8 resources: limits: cpu: 1000m ephemeral-storage: 1Gi memory: 1Gi requests: cpu: 50m ephemeral-storage: 50Mi memory: 256Mi volumeMounts: - name: nextcloud-data mountPath: /var/www/html livenessProbe: httpGet: path: /status.php port: 80 httpHeaders: - name: Host value: {{ .domain }} initialDelaySeconds: 120 timeoutSeconds: 5 periodSeconds: 30 failureThreshold: 6 readinessProbe: httpGet: path: /status.php port: 80 httpHeaders: - name: Host value: {{ .domain }} initialDelaySeconds: 60 timeoutSeconds: 3 periodSeconds: 15 failureThreshold: 3 securityContext: readOnlyRootFilesystem: false volumes: - name: nextcloud-data persistentVolumeClaim: claimName: nextcloud-data restartPolicy: Always