Compare commits

..

15 Commits

Author SHA1 Message Date
Thorsten Roßner
42f6151121 chore(release): 1.3.2 [skip ci]
## [1.3.2](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.3.1...v1.3.2) (2025-05-06)

### Bug Fixes

* **dovecot:** Update Helm chart to fix migration mode ([7ba84b9](7ba84b99ca))
* **helmfile:** Explicitly template auth-modules in OX App Suite; Streamline name of OX App Suite EE image ([6cbb6b6](6cbb6b6922))
2025-05-06 19:18:51 +00:00
Thorsten Roßner
6cbb6b6922 fix(helmfile): Explicitly template auth-modules in OX App Suite; Streamline name of OX App Suite EE image 2025-05-06 16:33:37 +02:00
Thorsten Roßner
7ba84b99ca fix(dovecot): Update Helm chart to fix migration mode 2025-05-06 16:33:37 +02:00
Thorsten Roßner
f49980b3ef docs(groupware-migration.md): Update with more details 2025-05-06 16:33:37 +02:00
René Fischer
69e66c65f6 chore(scaling.md): Second round of review changes 2025-05-05 11:25:50 +02:00
René Fischer
aed14e1ce1 chore(scaling.md): Review changes 2025-05-05 11:25:50 +02:00
René Fischer
e557393025 docs(scaling.md): Add scaling guidelines 2025-05-05 11:25:50 +02:00
Thorsten Roßner
45b924e8fa chore(release): 1.3.1 [skip ci]
## [1.3.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.3.0...v1.3.1) (2025-04-24)

### Bug Fixes

* **ci:** Update Helm to v3.17.3 ([9446faa](9446faaa59))
* **ci:** Update Helm to v3.17.3 ([d794a20](d794a2036e))
* **docs:** Update "Ingress controller" section and add footnote on volume provisioner in `requirements.md` ([17efbd7](17efbd79f1))
* **helmfile:** Conditional templating of additional annotations in selected components to unblock openDesk deployment despite a bug in Helm 3.17 (https://github.com/helm/helm/issues/30587) ([861b84b](861b84b14d))
* **postfix:** Disable unauthenticated relaying of mails in `postfix-ox` ([7414f05](7414f05005))
2025-04-24 12:05:42 +00:00
Thorsten Roßner
9446faaa59 fix(ci): Update Helm to v3.17.3 2025-04-24 11:44:22 +02:00
Thorsten Roßner
17efbd79f1 fix(docs): Update "Ingress controller" section and add footnote on volume provisioner in requirements.md 2025-04-24 11:09:22 +02:00
Thorsten Roßner
d794a2036e fix(ci): Update Helm to v3.17.3 2025-04-24 09:50:19 +02:00
Thomas Kaltenbrunner
7414f05005 fix(postfix): Disable unauthenticated relaying of mails in postfix-ox 2025-04-24 07:54:34 +02:00
Thorsten Roßner
3d80c7e2b1 chore: Update publiccode.yml for v1.3.1 2025-04-23 16:53:16 +02:00
Thorsten Roßner
d74742808c ci: Authorize container access in scan job 2025-04-23 16:53:16 +02:00
Thorsten Roßner
861b84b14d fix(helmfile): Conditional templating of additional annotations in selected components to unblock openDesk deployment despite a bug in Helm 3.17 (https://github.com/helm/helm/issues/30587) 2025-04-23 16:52:32 +02:00
14 changed files with 170 additions and 38 deletions

View File

@@ -232,8 +232,8 @@ variables:
extends: ".environments"
environment:
name: "${NAMESPACE}"
image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/helm:1.1.0\
@sha256:74f349066ac5d20e3afaa6abd28781b4c8dc086f67e3d3c1b8345e4a9c3371b1"
image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/helm:1.3.1\
@sha256:de527f493044f06009045c369be831ababbc8dd74adaa378613c5acb1e654959"
script:
- "cd ${CI_PROJECT_DIR}/helmfile/apps/${COMPONENT}"
# MASTER_PASSWORD_WEB_VAR as precedence for MASTER_PASSWORD
@@ -769,6 +769,17 @@ avscan-prepare:
stage: "scan"
image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/clamav-imagescan:1.0.0"
before_script:
- "mkdir -p ~/.docker"
- |
cat << EOF > ~/.docker/config.json
{
"auths": {
"$CI_REGISTRY": {
"auth": "$(printf %s:%s ${CI_REGISTRY_USER} ${CI_REGISTRY_PASSWORD} | base64 | tr -d '\n')"
}
}
}
EOF
- "sed -i \"/^DatabaseMirror .*$/c DatabaseMirror ${DATABASE_MIRROR}\" /etc/clamav/freshclam.conf"
- "freshclam"
- "mkdir /scan"

View File

@@ -1,3 +1,22 @@
## [1.3.2](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.3.1...v1.3.2) (2025-05-06)
### Bug Fixes
* **dovecot:** Update Helm chart to fix migration mode ([7ba84b9](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/7ba84b99caf61e5a4a35b71d875e9ede0f71423e))
* **helmfile:** Explicitly template auth-modules in OX App Suite; Streamline name of OX App Suite EE image ([6cbb6b6](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/6cbb6b6922864467ca365bcc9b1cfa49182df050))
## [1.3.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.3.0...v1.3.1) (2025-04-24)
### Bug Fixes
* **ci:** Update Helm to v3.17.3 ([9446faa](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/9446faaa597777e9fb15d33953e02fdbfef646b2))
* **ci:** Update Helm to v3.17.3 ([d794a20](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/d794a2036ed6543bf89a0b661cc8a4c8a383a5f0))
* **docs:** Update "Ingress controller" section and add footnote on volume provisioner in `requirements.md` ([17efbd7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/17efbd79f177f635885735823696a6e50b919d3e))
* **helmfile:** Conditional templating of additional annotations in selected components to unblock openDesk deployment despite a bug in Helm 3.17 (https://github.com/helm/helm/issues/30587) ([861b84b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/861b84b14de9fb42c483f3ddb9e083305750d137))
* **postfix:** Disable unauthenticated relaying of mails in `postfix-ox` ([7414f05](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/7414f05005e019f2121e8458fe63e795819fe92c))
# [1.3.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.2.1...v1.3.0) (2025-04-22)

View File

@@ -17,6 +17,8 @@ SPDX-License-Identifier: Apache-2.0
* [Add multiple user accounts via CSV file](#add-multiple-user-accounts-via-csv-file)
* [Start the migration](#start-the-migration)
* [Monitor migration status](#monitor-migration-status)
* [Appendix](#appendix)
* [Validating master authentication](#validating-master-authentication)
<!-- TOC -->
Most organizations already have email accounts on various platforms that need to be migrated to openDesk. This document describes the migration from M365 accounts to openDesk using the [audriga Migration Service](https://www.audriga.com) in combination with the master authentication option in openDesk. Other source platforms are also supported, and their migrations work in a similar manner.
@@ -70,7 +72,7 @@ In openDesk, you have to have all user accounts with mailboxes pre-defined befor
## Deploy openDesk with master authentication
With openDesk 1.0 Enterprise, you can set openDesk's email components (OX AppSuite and OX Dovecot) to master authentication mode to run the migration as described in this document using the following two settings for your deployment:
With openDesk 1.0 Enterprise, you can set openDesk's email components (OX AppSuite and OX Dovecot) to master authentication mode to run the migration as described in this document using the following two settings for your deployment. This is NOT available in openDesk Community deployments:
```
secrets:
@@ -85,10 +87,12 @@ functional:
1. You must specify a master password, it will be referenced later in this document.
2. You need to enable the actual master authentication mode.
To validate the master authentication mode please read the appendix section at the end of the document.
Updating your deployment with these settings will allow you to continue with the migration scenario. Once the migration is completed, you can remove `secrets.oxAppSuite.adminPassword` and need to turn off the migration mode by setting `functional.migration.oxAppSuite.enabled` to `false` or removing that setting, as `false` is the default before you update your deployment once again.
> **Note**<br>
> For the changes to take effect, it is sufficient to re-deploy the `open-xchange` component alone.
> For the changes to take effect, it is sufficient to re-deploy the `open-xchange` component alone. But you have to restart the Dovecot Pod(s) manually when switching to/from the master authentication mode for the changes to take effect.
> **Note**<br>
> While in master authentication mode, regular users cannot log in to the webmail module of openDesk or access the mail using IMAP, as it is not recommended that users interact with the target mail infrastructure during the migration scenario described in this document.
@@ -182,3 +186,39 @@ Click on "Details" to get further information about the migration.
You can access a detailed log for each account by clicking "Protocol" on the right-hand side. Here, you can see detected duplicates or encountered errors (e.g., if emails cannot be transferred due to your provider's size limitations).
You will receive status emails for the migration job's submission and start, as well as when the migration job is finished. The emails are sent to the email address you have entered during the configuration. Those emails include a link to the status website so you can easily track and monitor your migration. Once the migration has been started, you can safely close the status website and shut down your computer; the migration will continue. You can re-open the status website anytime.
# Appendix
## Validating master authentication
Below are details in case you want to verify master authentication for Dovecot and OX AppSuite.
Set a few variables first:
```shell
export MIG_DOMAIN=your-opendesk-domain.tld
export MIG_WEBMAIL_HOST=webmail
export MIG_USERNAME=eva
export MIG_MASTER_PASSWORD=YourMasterPassword
export MIG_IMAP_PORT=31123
```
Ensure that you have defined a (your) default context for the migration where the account (in this example `eva`) can be found. The following should be executed in OX App Suite's `open-xchange-core-mw-default-0` container, in the example we set the default context to `1`:
```shell
/opt/open-xchange/sbin/changecontext -c 1 -L defaultcontext -A $MASTER_ADMIN_USER -P $MASTER_ADMIN_PW
```
With the preparation from above you should be able to successfully authenticate to both components:
**OX App Suite**
```shell
curl -X POST -d "name=${MIG_USERNAME}&password=${MIG_MASTER_PASSWORD}" "https://${MIG_WEBMAIL_HOST}.${MIG_DOMAIN}/appsuite/api/login?action=login"
```
**Dovecot**
```shell
echo "a001 LOGIN ${MIG_USERNAME} ${MIG_MASTER_PASSWORD}" | openssl s_client -ign_eof -connect ${MIG_DOMAIN}:${MIG_IMAP_PORT}
```

View File

@@ -1,4 +1,5 @@
<!--
SPDX-FileCopyrightText: 2024-2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
SPDX-License-Identifier: Apache-2.0
-->
@@ -12,6 +13,8 @@ This section covers the internal system requirements and external service requir
* [Hardware](#hardware)
* [Kubernetes](#kubernetes)
* [Ingress controller](#ingress-controller)
* [Supported controllers](#supported-controllers)
* [Minimal configuration](#minimal-configuration)
* [Volume provisioner](#volume-provisioner)
* [Certificate management](#certificate-management)
* [External services](#external-services)
@@ -25,15 +28,13 @@ openDesk is a Kubernetes-only solution and requires an existing Kubernetes (K8s)
- K8s cluster >= v1.24, [CNCF Certified Kubernetes distribution](https://www.cncf.io/certification/software-conformance/)
- Domain and DNS Service
- Ingress controller (Ingress NGINX) >= [4.11.5/1.11.5](https://github.com/kubernetes/ingress-nginx/releases) - tested with v1.11.1 up to v1.11.5
- **Important Note**: We are working on support for more recent versions, but please ensure to use at least 1.11.5 due to ["security issues"](https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities) in earlier versions.
- Ingress-NGINX introduced new security defaults in version 1.12.0, which are currently not compatible with openDesk. While we are working to adhere to these defaults, you can find additional information below on how to configure Ingress-NGINX >= 1.12.0 to be compatible with openDesk.
- Ingress controller (Ingress NGINX) >= [4.11.5/1.11.5](https://github.com/kubernetes/ingress-nginx/releases)
- [Helm](https://helm.sh/) >= v3.9.0
- [Helmfile](https://helmfile.readthedocs.io/en/latest/) >= **v1.0.0-rc8**
- [Helmfile](https://helmfile.readthedocs.io/en/latest/) >= v1.0.0-rc8
- [HelmDiff](https://github.com/databus23/helm-diff) >= v3.6.0
- Volume provisioner supporting RWO (read-write-once)
- Volume provisioner supporting RWO (read-write-once)[^1]
- Certificate handling with [cert-manager](https://cert-manager.io/)
- [OpenKruise](https://openkruise.io/)[^1] >= v1.6
- [OpenKruise](https://openkruise.io/)[^2] >= v1.6
# Hardware
@@ -60,21 +61,33 @@ The deployment is tested against [kubespray](https://github.com/kubernetes-sigs/
The deployment is intended to be used only over HTTPS via a configured FQDN, therefore it is required to have a properly
configured ingress controller deployed in your cluster.
**Supported controllers:**
## Supported controllers
- [Ingress NGINX Controller](https://github.com/kubernetes/ingress-nginx)
> **Note**<br>
> The platform development team is evaluating the use of [Gateway API](https://gateway-api.sigs.k8s.io/).
**Compatibility with Ingress NGINX >= 1.12.0**
With the release 1.12.0 Ingress NGINX introduced new security default settings, which are incompatible with current openDesk releases. If you want to use Ingress-NGINX >= 1.12.0 the following settings have to be set
- The annotation risk level has to be set to `critical`. See the [documentation](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#annotations-risk-level) for details.
- Strict path type validation has to be disabled. See the [documentation](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#strict-validate-path-type) for details.
With the release 1.12.0 Ingress NGINX introduced new security default settings, which are incompatible with current openDesk releases. If you want to use Ingress-NGINX >= 1.12.0 the following settings have to be set:
```
controller.config.annotations-risk-level=Critical
controller.config.strict-validate-path-type=false
```
See the [`annotations-risk-level` documentation](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#annotations-risk-level) and [`strict-validate-path-type` documentation](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#strict-validate-path-type) for details.
> **Important Note**<br>
> Ensure to install at least Ingress NGINX 1.12.1 due to ["security issues"](https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities) in 1.12.0.
> Ensure to install at least Ingress NGINX 1.11.5 or 1.12.1 due to [security issues](https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities) in earlier versions.
## Minimal configuration
> **Note**<br>
> The platform development team is evaluating the use of [Gateway API](https://gateway-api.sigs.k8s.io/). If you can provide input on that topic, please get in contact with us.
Several components in openDesk make use of snippet annotations, which are disabled by default. Please enable them using the following configuration:
```
controller.allowSnippetAnnotations=true
controller.admissionWebhooks.allowSnippetAnnotations=true
```
See the [`allowSnippetAnnotations` documentation](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#allow-snippet-annotations) for context.
# Volume provisioner
@@ -122,4 +135,6 @@ Helmfile requires [HelmDiff](https://github.com/databus23/helm-diff) to compare
# Footnotes
[^1]: Required for Dovecot Pro as part of openDesk Enterprise Edition.
[^1]: Due to [restrictions on Kubernetes `emptyDir`](https://github.com/kubernetes/kubernetes/pull/130277) you need a volume provisioner that has sticky bit support, otherwise the OpenProject seeder job will fail.
[^2]: Required for Dovecot Pro as part of openDesk Enterprise Edition.

View File

@@ -1,23 +1,39 @@
<!--
SPDX-FileCopyrightText: 2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
SPDX-License-Identifier: Apache-2.0
-->
<h1>Scaling</h1>
This document covers the possibilities to scale applications.
This document covers the possibilities to scale the applications in openDesk.
# Horizontal scalability
It provides rough benchmarks for configuring your own environment across various scale levels.
In production, resource demands are primarily driven by actual usage patterns and system load, especially the number of concurrently active users.
Consequently, we strongly recommend implementing monitoring and logging solutions to detect usage trends and enable timely intervention when needed.
We are working on generating this document automatically based on the file
[`replicas.yaml.gotmpl`](../helmfile/environments/default/replicas.yaml.gotmpl) that contains necessary annotations.
In the meantime, this file can be used to check the components scaling support/capabilities.
| Application | Recommendation | Note(s) |
| ------------ | -------------- | ------- |
| Collabora | - 1 vCPU per 15 active users <br/> - 50 MB RAM per active user <br/> - 1 MBit/s per 10 active users | - |
| Element | Per 10k users with values for federation enabled / federation switched off:<br/><br/> Homeserver:<br/> - 15 / 10 vCPU<br/> - 12 / 8 GB RAM<br/><br/>Postgres:<br/> - 10 / 4 vCPU<br/> - 16 / 32 GB RAM | Required hardware resources are impacted by whether or not federation is being used |
| Cryptpad | No large-scale deployments seen, minimum requirements: <br/> - 2 vCPU <br/> - 2 GB RAM <br/> - 20 GB storage (depending on planned usage) | Most of the computation is done client-side |
| Jitsi | Jitsi-Meet server: <br/> - 4 vCPU <br/> - 8 GB RAM <br/> <br/> For every 200 concurrent users one JVB with: <br/> - 8 vCPU <br/> - 8 GB RAM <br/><br/> Network bandwidth: <br/> - 1 GBit/s - 10 GBit/s small deployments <br/> - 10 Gbit/s *per bridge* large deployments<br/> | JVB network bandwidth calculation depends on the stream resolution (HD vs. 4k). |
| Nextcloud | Up to 5k / more than 5k users: <br/> - 4 to 20 Nextcloud AIO Pods with 8 vCPUs and 32 / 64 GB RAM each <br/> - 2 / 4 DB servers with 8 / 16 vCPUs and 64 / 128 GB RAM each, plus DB load balancer | - |
| OpenProject | - 4-6 vCPU per ~500 users <br/> - 6-8 GB per ~500 users <br/> - +20-50 GB storage per ~500 users, depending on workload and attachment storage[^1] <br/><br/> - Web Workers: +4 per ~500 users <br/> - Background Workers: +1-2 multithreaded workers per ~500 users, depending on workload | These values are guidelines and should be adjusted based on actual monitoring of resource usage. Scaling should prioritize CPU and RAM, prioritize scaling Web Workers first, followed by Background Workers and Disk Space as needed. |
| Open-Xchange | For ~200 users (64 concurrent users to App Suite & 128 users to Dovecot): <br/> - 10 vCPU <br/> - 58 GB RAM <br/> - 660 GB storage | - |
| XWiki | Advise for small instances: <br> - 4 vCPU <br/> - 6 GB RAM | - |
[^1]: Nextcloud is configured for attachment storage as well.
# Upstream information
While scaling services horizontally is the ideal solution, information about vertical scaling is helpful
when defining the application's resources, see [`resources.yaml.gotmpl`](../helmfile/environments/default/resources.yaml.gotmpl) for references.
Linked below is documentation related to scaling from the upstream application:
Linked below is documentation related to scaling for upstream applications, where publically available:
- [OpenProject system requirements](https://www.openproject.org/docs/installation-and-operations/system-requirements/)
- [Collabora Online Technical Documentation](https://mautic.collaboraoffice.com/asset/60:collabora-online-technical-information-pdf)
- [OpenProject System Requirements](https://www.openproject.org/docs/installation-and-operations/system-requirements/)
- [XWiki Performance](https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Performances/)
- [Element Requirements and Recommendations](https://ems-docs.element.io/books/element-server-suite-documentation-lts-2404/page/requirements-and-recommendations)
- [Jitsi DevOps Guide (scalable setup)](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-scalable/), [Jitsi Meet Needs](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-requirements/)

View File

@@ -10,9 +10,10 @@ global:
{{ .Values.global.hosts | toYaml | nindent 4 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
{{- if .Values.annotations.jitsiGlobal.pod }}
podAnnotations:
{{ .Values.annotations.jitsiGlobal.pod | toYaml | nindent 4}}
{{- end }}
containerSecurityContext:
allowPrivilegeEscalation: false
enabled: true
@@ -78,10 +79,12 @@ jitsi:
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
ingress:
enabled: {{ .Values.ingress.enabled }}
{{- if .Values.annotations.jitsiWeb.ingress }}
annotations:
{{- with .Values.annotations.jitsiWeb.ingress }}
{{ . | toYaml | nindent 8 }}
{{- end }}
{{- end }}
ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
hosts:
- host: "{{ .Values.global.hosts.jitsi }}.{{ .Values.global.domain }}"
@@ -109,8 +112,10 @@ jitsi:
type: "RuntimeDefault"
seLinuxOptions:
{{ .Values.seLinuxOptions.jitsi | toYaml | nindent 8 }}
{{- if .Values.annotations.jitsiWeb.pod }}
podAnnotations:
{{ .Values.annotations.jitsiWeb.pod | toYaml | nindent 6 }}
{{- end }}
prosody:
image:
repository: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.prosody.registry }}/{{ .Values.images.prosody.repository }}"
@@ -160,8 +165,10 @@ jitsi:
type: "RuntimeDefault"
seLinuxOptions:
{{ .Values.seLinuxOptions.prosody | toYaml | nindent 8 }}
{{- if .Values.annotations.jitsiProsody.pod }}
podAnnotations:
{{ .Values.annotations.jitsiProsody.pod | toYaml | nindent 6 }}
{{- end }}
jicofo:
replicaCount: {{ .Values.replicas.jicofo }}
image:
@@ -185,8 +192,10 @@ jitsi:
type: "RuntimeDefault"
seLinuxOptions:
{{ .Values.seLinuxOptions.jicofo | toYaml | nindent 8 }}
{{- if .Values.annotations.jitsiJicofo.pod }}
podAnnotations:
{{ .Values.annotations.jitsiJicofo.pod | toYaml | nindent 6 }}
{{- end }}
jigasi:
replicaCount: {{ .Values.replicas.jigasi }}
enabled: {{ .Values.sip.jigasi.enabled }}
@@ -216,8 +225,10 @@ jitsi:
type: "RuntimeDefault"
seLinuxOptions:
{{ .Values.seLinuxOptions.jigasi | toYaml | nindent 8 }}
{{- if .Values.annotations.jitsiJigasi.pod }}
podAnnotations:
{{ .Values.annotations.jitsiJigasi.pod | toYaml | nindent 6 }}
{{- end }}
jvb:
replicaCount: {{ .Values.replicas.jvb }}
# The `useNodeIP` option provided by the upstream charts does not support all relevant scenarios, but since
@@ -234,8 +245,10 @@ jitsi:
{{ .Values.resources.jvb | toYaml | nindent 6 }}
service:
type: {{ coalesce .Values.service.type.jitsiVideoBridge .Values.cluster.service.type | quote }}
{{- if .Values.annotations.jitsiJvb.service }}
annotations:
{{ .Values.annotations.jitsiJvb.service | toYaml | nindent 8 }}
{{- end }}
securityContext:
allowPrivilegeEscalation: false
capabilities: {}
@@ -248,14 +261,18 @@ jitsi:
type: "RuntimeDefault"
seLinuxOptions:
{{ .Values.seLinuxOptions.jvb | toYaml | nindent 8 }}
{{- if .Values.annotations.jitsiJvb.pod }}
podAnnotations:
{{ .Values.annotations.jitsiJvb.pod | toYaml | nindent 6 }}
{{- end }}
metrics:
prometheusAnnotations:
{{ .Values.annotations.jitsiJvb.metricsPrometheus | toYaml | nindent 8 }}
{{- if .Values.annotations.jitsiJvb.metricsGrafana }}
grafanaDashboards:
annotations:
{{ .Values.annotations.jitsiJvb.metricsGrafana | toYaml | nindent 10 }}
{{- end }}
jibri:
replicaCount: {{ .Values.replicas.jibri }}
image:
@@ -272,16 +289,19 @@ jitsi:
# Chart does not allow to template more
capabilities:
add: ["SYS_ADMIN"]
{{- if .Values.annotations.jitsiJibri.pod }}
podAnnotations:
{{ .Values.annotations.jitsiJibri.pod | toYaml | nindent 6 }}
{{- end }}
imagePullSecrets:
{{- range .Values.global.imagePullSecrets }}
- name: {{ . | quote }}
{{- end }}
{{- if .Values.annotations.jitsi.serviceAccount }}
serviceAccount:
annotations:
{{ .Values.annotations.jitsi.serviceAccount | toYaml | nindent 6 }}
{{- end }}
patchJVB:
configuration:
@@ -308,8 +328,10 @@ patchJVB:
repository: {{ .Values.images.jitsiPatchJVB.repository | quote }}
tag: {{ .Values.images.jitsiPatchJVB.tag | quote }}
{{- if .Values.annotations.jitsi.pod }}
podAnnotations:
{{ .Values.annotations.jitsi.pod | toYaml | nindent 2 }}
{{- end }}
replicaCount: {{ .Values.replicas.jitsiKeycloakAdapter }}

View File

@@ -277,14 +277,16 @@ appsuite:
packages:
status:
{{- if .Values.functional.migration.oxAppSuite.enabled }}
open-xchange-authentication-masterpassword: "enabled"
open-xchange-authentication-ldap: "disabled"
open-xchange-authentication-oauth: "disabled"
open-xchange-oidc: "disabled"
open-xchange-authentication-oauth: "disabled"
open-xchange-authentication-masterpassword: "enabled"
open-xchange-authentication-database: "disabled"
open-xchange-authentication-ldap: "disabled"
{{- else }}
open-xchange-oidc: "enabled"
open-xchange-authentication-database: "disabled"
open-xchange-authentication-oauth: "enabled"
open-xchange-authentication-masterpassword: "disabled"
open-xchange-authentication-database: "disabled"
open-xchange-authentication-ldap: "disabled"
{{- end }}
# OX Documents (office-web) is not used in openDesk
@@ -428,8 +430,10 @@ appsuite:
com.openexchange.share.cryptKey: {{ .Values.secrets.oxAppSuite.shareCryptKey | quote }}
com.openexchange.conference.element.authToken: {{ .Values.secrets.oxAppSuite.synapseAsToken | quote }}
propertiesFiles:
{{- if .Values.functional.migration.oxAppSuite.enabled }}
/opt/open-xchange/etc/masterpassword-authentication.properties:
com.openexchange.authentication.masterpassword.password: {{ .Values.secrets.oxAppSuite.migrationsMasterPassword | quote }}
{{- end }}
/opt/open-xchange/etc/AdminDaemon.properties:
MASTER_ACCOUNT_OVERRIDE: "true"
/opt/open-xchange/etc/AdminUser.properties:
@@ -628,8 +632,10 @@ appsuite:
repository: {{ .Values.images.openxchangeDocumentConverter.repository | quote }}
tag: {{ .Values.images.openxchangeDocumentConverter.tag | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
{{- if .Values.annotations.openxchangeAppsuiteCoreDocumentconverter.pod }}
podAnnotations:
{{ .Values.annotations.openxchangeAppsuiteCoreDocumentconverter.pod | toYaml | nindent 6 }}
{{- end }}
redis: *redisConfiguration
replicaCount: {{ .Values.replicas.openxchangeCoreDocumentConverter }}
resources:
@@ -718,8 +724,10 @@ appsuite:
endpoint: "."
accessKey: "."
secretKey: "."
{{- if .Values.annotations.openxchangeAppsuiteCoreImageconverter.pod }}
podAnnotations:
{{ .Values.annotations.openxchangeAppsuiteCoreImageconverter.pod | toYaml | nindent 6 }}
{{- end }}
redis: *redisConfiguration
replicaCount: {{ .Values.replicas.openxchangeCoreImageConverter }}
resources:

View File

@@ -57,7 +57,7 @@ postfix:
{{- end }}
rspamdHost: ""
relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }}
relayNets: {{ join " " .Values.cluster.networking.cidr | quote }}
allowRelayNets: false
smtpSASLAuthEnable: "yes"
smtpSASLPasswordMaps: "lmdb:/etc/postfix/sasl_passwd.map"
smtpTLSSecurityLevel: "encrypt"

View File

@@ -66,6 +66,7 @@ postfix:
rspamdHost: ""
relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }}
relayNets: {{ join " " .Values.cluster.networking.cidr | quote }}
allowRelayNets: true
smtpSASLAuthEnable: "yes"
smtpSASLPasswordMaps: "lmdb:/etc/postfix/sasl_passwd.map"
smtpTLSSecurityLevel: "encrypt"

View File

@@ -6,7 +6,7 @@ charts:
registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/product-development/charts/opendesk-dovecot-pro"
name: "dovecot"
version: "2.0.2"
version: "2.0.3"
verify: true
oxAppSuite:
registry: "registry.opencode.de"

View File

@@ -16,6 +16,6 @@ images:
tag: "1.1.9@sha256:ad28c9dd8cdb4bdd325fe132215d0cf094392c3ddd1f114707b09bb7d1c61a9e"
openxchangeCoreMW:
registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/images-mirror/core-mw"
repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/images-mirror/middleware-public-sector-pro"
tag: "8.35.85@sha256:54d01a16ea29a3ae8f1857e5bdf6d2e34046b8a3fa3d6179bb3ad3d047e1318f"
...

View File

@@ -419,7 +419,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-postfix"
name: "postfix"
version: "3.0.0"
version: "3.0.1"
verify: true
postgresql:
# providerCategory: "Platform"

View File

@@ -3,5 +3,5 @@
---
global:
systemInformation:
releaseVersion: "v1.3.0"
releaseVersion: "v1.3.2"
...

View File

@@ -22,8 +22,8 @@ name: "openDesk"
platforms:
- "web"
developmentStatus: "stable"
softwareVersion: "1.3.0"
releaseDate: "2025-04-22"
softwareVersion: "1.3.1"
releaseDate: "2025-04-23"
softwareType: "standalone/web"
url: "https://gitlab.opencode.de/bmi/opendesk/"
logo: "openDesk-logo-rgb-color.svg"