From a725e276774e80eb679fdff11b3cacf541226120 Mon Sep 17 00:00:00 2001 From: Massaki Archambault Date: Wed, 14 Jun 2023 00:42:12 -0400 Subject: [PATCH] add previewgenerator cronjob --- .../nextcloud/configurations/apache-user.conf | 2 +- .../nextcloud/configurations/php-user.ini | 2 +- kustomize/bases/nextcloud/kustomization.yaml | 4 +++ .../bases/nextcloud/nextcloud-deployment.yaml | 10 ++++-- .../nextcloud/previewgenerator-cronjob.yaml | 35 +++++++++++++++++++ .../scripts/cron-previewgenerator.sh | 5 +++ .../bases/postgres/postgres-statefulset.yaml | 4 +-- 7 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 kustomize/bases/nextcloud/previewgenerator-cronjob.yaml create mode 100644 kustomize/bases/nextcloud/scripts/cron-previewgenerator.sh diff --git a/kustomize/bases/nextcloud/configurations/apache-user.conf b/kustomize/bases/nextcloud/configurations/apache-user.conf index dd6f27d..43ab877 100644 --- a/kustomize/bases/nextcloud/configurations/apache-user.conf +++ b/kustomize/bases/nextcloud/configurations/apache-user.conf @@ -1,2 +1,2 @@ # Mitigate an issue with CPU starvation in photo app -MaxRequestWorkers 50 +# MaxRequestWorkers 50 diff --git a/kustomize/bases/nextcloud/configurations/php-user.ini b/kustomize/bases/nextcloud/configurations/php-user.ini index 55ebf8f..14d3f95 100644 --- a/kustomize/bases/nextcloud/configurations/php-user.ini +++ b/kustomize/bases/nextcloud/configurations/php-user.ini @@ -1,3 +1,3 @@ upload_max_filesize=2G post_max_size=2G -memory_limit=2G \ No newline at end of file +memory_limit=1G \ No newline at end of file diff --git a/kustomize/bases/nextcloud/kustomization.yaml b/kustomize/bases/nextcloud/kustomization.yaml index 06cec89..53eafd2 100644 --- a/kustomize/bases/nextcloud/kustomization.yaml +++ b/kustomize/bases/nextcloud/kustomization.yaml @@ -3,6 +3,7 @@ resources: - ../redis - nextcloud-deployment.yaml - nextcloud-cronjob.yaml + - previewgenerator-cronjob.yaml - nextcloud-ingress.yaml namePrefix: nextcloud- @@ -15,6 +16,9 @@ configMapGenerator: files: - php-user.ini=configurations/php-user.ini - apache-user.cfg=configurations/apache-user.conf + - name: cron-scripts + files: + - cron-previewgenerator.sh=scripts/cron-previewgenerator.sh - name: kustomize-generated-config literals: - NEXTCLOUD_EXTERNAL_HOST=cloud.badjware.dev diff --git a/kustomize/bases/nextcloud/nextcloud-deployment.yaml b/kustomize/bases/nextcloud/nextcloud-deployment.yaml index 40e13e3..793d4fa 100644 --- a/kustomize/bases/nextcloud/nextcloud-deployment.yaml +++ b/kustomize/bases/nextcloud/nextcloud-deployment.yaml @@ -85,8 +85,8 @@ spec: cpu: 2000m memory: 2Gi limits: - cpu: 3000m - memory: 3Gi + cpu: 4000m + memory: 2Gi volumeMounts: - name: nextcloud-pv mountPath: /var/www/html @@ -98,6 +98,9 @@ spec: mountPath: /etc/apache2/conf-enabled/apache-user.conf subPath: apache-user.conf readOnly: true + - name: cron-scripts + mountPath: /scripts + readOnly: true volumes: - name: nextcloud-pv persistentVolumeClaim: @@ -105,6 +108,9 @@ spec: - name: server-config configMap: name: server-config + - name: cron-scripts + configMap: + name: cron-scripts --- apiVersion: v1 kind: PersistentVolumeClaim diff --git a/kustomize/bases/nextcloud/previewgenerator-cronjob.yaml b/kustomize/bases/nextcloud/previewgenerator-cronjob.yaml new file mode 100644 index 0000000..c4e6cd3 --- /dev/null +++ b/kustomize/bases/nextcloud/previewgenerator-cronjob.yaml @@ -0,0 +1,35 @@ +apiVersion: batch/v1 +kind: CronJob +metadata: + name: previewgenerator-cron + labels: + app.kubernetes.io/name: nextcloud + app.kubernetes.io/component: previewgenerator +spec: + schedule: "3,13,23,33,43,53 * * * *" + concurrencyPolicy: Forbid + successfulJobsHistoryLimit: 1 + failedJobsHistoryLimit: 1 + jobTemplate: + metadata: + labels: + app.kubernetes.io/name: nextcloud + app.kubernetes.io/component: previewgenerator + spec: + backoffLimit: 0 # no retry + template: + metadata: + labels: + app.kubernetes.io/name: nextcloud + app.kubernetes.io/component: previewgenerator + spec: + restartPolicy: Never + serviceAccountName: server-cron + containers: + - name: run-previewgenerator-cron + image: bitnami/kubectl + imagePullPolicy: IfNotPresent + command: ["/bin/bash"] + args: + - -xc + - kubectl exec "$(kubectl get pods -l 'app.kubernetes.io/component=server' -o name)" -- /bin/bash -c '( if ! which sudo &>/dev/null; then apt update && apt install sudo; fi ) && sudo -u www-data bash -x /scripts/cron-previewgenerator.sh' diff --git a/kustomize/bases/nextcloud/scripts/cron-previewgenerator.sh b/kustomize/bases/nextcloud/scripts/cron-previewgenerator.sh new file mode 100644 index 0000000..ffe1fa9 --- /dev/null +++ b/kustomize/bases/nextcloud/scripts/cron-previewgenerator.sh @@ -0,0 +1,5 @@ +#!/bin/bash +php -f /var/www/html/occ config:app:set --value="32 64 256 1024 1920" previewgenerator squareSizes && +php -f /var/www/html/occ config:app:set --value="64 128 1024 1080 2030" previewgenerator widthSizes && +php -f /var/www/html/occ config:app:set --value="64 256 1024 1080 1920" previewgenerator heightSizes && +php -f /var/www/html/occ preview:pre-generate -vvv \ No newline at end of file diff --git a/kustomize/bases/postgres/postgres-statefulset.yaml b/kustomize/bases/postgres/postgres-statefulset.yaml index 2ac62c7..7d78d5d 100644 --- a/kustomize/bases/postgres/postgres-statefulset.yaml +++ b/kustomize/bases/postgres/postgres-statefulset.yaml @@ -41,10 +41,10 @@ spec: containerPort: 5432 resources: requests: - cpu: 500m + cpu: 750m memory: 1Gi limits: - cpu: 500m + cpu: 1000m memory: 1Gi volumeMounts: - name: postgres-pvc