diff --git a/docs/data-storage.md b/docs/data-storage.md index 87b15d4b..29906ecf 100644 --- a/docs/data-storage.md +++ b/docs/data-storage.md @@ -70,6 +70,7 @@ XWiki,PersistentVolume,1 | -------------------- | ------------ | -------- | --------------------------------------------------------------------------------- | ---------------------------------------------- | --------------------------------------------------------------------------------------------------------- | | **ClamAV** | PVC | No | ClamAV Database | `clamav-database-clamav-simple-0` | `/var/lib/clamav` | | **Dovecot** | PVC | Yes | openDesk CE only: User mail directories | `dovecot` | `/srv/mail` | +| | PVC | No | openDesk EE only: Metacache directory | `var-lib-dovecot-dovecot-0` | `/var/lib/dovecot` | | | S3 | Yes | openDesk EE only: User mail | `dovecot` | `dovecot` | | | Cassandra | Yes | openDesk EE only: Metadata and ACLs | `dovecot_dictmap`, `dovecot_acl` | | | **Element/Synapse** | PostgreSQL | Yes | Application's main database | `matrix` | | diff --git a/helmfile/apps/open-xchange/values-dovecot-enterprise.yaml.gotmpl b/helmfile/apps/open-xchange/values-dovecot-enterprise.yaml.gotmpl index 033fc768..1632f8ba 100644 --- a/helmfile/apps/open-xchange/values-dovecot-enterprise.yaml.gotmpl +++ b/helmfile/apps/open-xchange/values-dovecot-enterprise.yaml.gotmpl @@ -37,11 +37,14 @@ dovecot: value: {{ .Values.secrets.dovecot.sharedMailboxesMasterPassword | quote }} objectStorage: bucket: {{ .Values.objectstores.dovecot.bucket | quote }} + cacheTmpfs: {{ if .Values.technical.dovecot.objectStorage.cacheTmpfs }}true{{ else }}false{{ end }} encryption: privateKey: value: {{ requiredEnv "DOVECOT_CRYPT_PRIVATE_KEY" | quote }} publicKey: value: {{ requiredEnv "DOVECOT_CRYPT_PUBLIC_KEY" | quote }} + fsCacheSize: {{ .Values.technical.dovecot.objectStorage.fsCacheSize | quote }} + ftsCacheSize: {{ .Values.technical.dovecot.objectStorage.ftsCacheSize | quote }} fqdn: {{ .Values.objectstores.dovecot.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }} username: {{ .Values.objectstores.dovecot.username | quote }} password: diff --git a/helmfile/environments/default/persistence.yaml.gotmpl b/helmfile/environments/default/persistence.yaml.gotmpl index 8ca43cb1..ab3b2527 100644 --- a/helmfile/environments/default/persistence.yaml.gotmpl +++ b/helmfile/environments/default/persistence.yaml.gotmpl @@ -16,6 +16,8 @@ persistence: size: "1Gi" storageClassName: ~ dovecot: + # With Dovecot CE this is used for the mail storage. + # Dovecot Pro (EE) uses this storage for the metacache, size: "1Gi" storageClassName: ~ mariadb: diff --git a/helmfile/environments/default/technical.yaml.gotmpl b/helmfile/environments/default/technical.yaml.gotmpl index 0c200e7d..da14afe5 100644 --- a/helmfile/environments/default/technical.yaml.gotmpl +++ b/helmfile/environments/default/technical.yaml.gotmpl @@ -8,6 +8,18 @@ technical: # Defines the value for the start parameter `-o:num_prespawn_children` numPrespawnChildren: 4 + # Dovecot EE related settings + dovecot: + objectStorage: + # Size of objectstore fs cache + fsCacheSize: "2G" + # Size of fts cache + ftsCacheSize: "2G" + # Wether fs and fts cache should reside in RAM (tmpfs) or not + # If this value is true, the cache sizes of the fs cache + fts cache + # must be considered additionally to Dovecot's memory footprint. + cacheTmpfs: false + # Nubus related settings nubus: # Nubus provisioning framework that is being used to actively provision data internally within