Compare commits

...

42 Commits

Author SHA1 Message Date
Norbert Tretkowski
cb70206cb7 fix(nubus): Do not force recreation of the Keycloak configuration 2025-09-16 07:38:25 +02:00
Thorsten Roßner
23dfe0aaa6 feat(cryptpad): Update from 2024.6.1 to 2025.6.0 2025-09-15 12:32:35 +02:00
Thorsten Roßner
2dc76ae34c chore(kyverno): Remove functional.* from migration details 2025-09-15 12:11:39 +02:00
Thorsten Roßner
6703eb03d5 docs(debugging.md): Add info how to set fine granular log levels for Keycloak 2025-09-15 11:35:57 +02:00
Thorsten Roßner
49e3fbf533 chore(functional.yaml.gotmpl): Update comment on migration.oxAppSuite.enabled 2025-09-11 16:39:12 +02:00
Thorsten Roßner
5a2c1fcf98 feat(nextcloud): Expose forbiddenChars in functional.yaml.gotmpl; review migrations.md for required upgrade steps 2025-09-11 16:39:08 +02:00
Norbert Tretkowski
ba77f2b11c fix(ox-connector): Update from v0.27.7 to v0.27.9 2025-09-09 11:11:47 +02:00
Norbert Tretkowski
3305dfa5fb fix(intercom-service): Update from v2.19.0 to v2.19.5 2025-09-09 11:11:47 +02:00
Norbert Tretkowski
35424b88d6 feat(nubus): Update from 1.12.0 to 1.13.1 2025-09-09 11:11:44 +02:00
Thorsten Roßner
ce4874a922 chore(openproject): Avoid OOM kills in dev deployments 2025-09-09 08:04:24 +00:00
Thorsten Roßner
813e92c1b0 feat(xwiki): Update from 16.10.5 to 17.4.4 and configure openDesk's Collabora for .odt, .rtf and .docx export of wiki pages 2025-09-09 08:04:24 +00:00
Thomas Kaltenbrunner
d8fc3e04f5 fix(open-xchange): Add client onboarding for mail 2025-09-08 12:23:52 +00:00
Thorsten Roßner
70178bb512 chore(mr-templates): Update based on feedback from technical weekly 2025-09-04 11:23:02 +02:00
Thorsten Roßner
d90e3ff92f chore(mr-templates): Update Default.md to provide details on template selection 2025-09-04 11:23:02 +02:00
Thorsten Roßner
f848b9a0f4 fix(nextcloud): Update from 31.0.6 to 31.0.7 including the latest app versions 2025-09-04 11:22:59 +02:00
Oliver Günther
f77f3291ca feat(openproject): Update OpenProject from 16.2.1 to 16.3.2 2025-09-02 14:26:43 +00:00
Viktor Pracht
c70a0bdc4c feat(open-xchange): Update from 8.39 to 8.40 2025-09-02 12:23:55 +00:00
Niels Lindenthal
5ab706e204 chore(README.md): Streamline sentence based capitalization 2025-09-01 07:45:31 +02:00
Thorsten Roßner
5c771baa88 chore(mr-templates): Improve wording in "Developer Checklist" section(s) 2025-08-27 17:04:00 +02:00
Thorsten Roßner
a7400f0402 chore(functional.yaml.gotmpl): Fix default link for linkPrivacyStatement 2025-08-27 15:58:17 +02:00
Thorsten Roßner
38f2bdd2b9 feat(collabora): Support for macro execution controlled by functional.weboffice.macros.enabled (default: false) 2025-08-27 10:14:41 +02:00
Thorsten Roßner
0314a7076a fix(helmfile): Add more detailed descriptions on functional.authentication.realmSettings and provide two accessCodeLifespan* options 2025-08-27 06:18:54 +00:00
Thorsten Roßner
83e8cec991 chore(release): 1.7.1 [skip ci]
## [1.7.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.7.0...v1.7.1) (2025-08-26)

### Bug Fixes

* **collabora:** Update from 25.04.3 to 25.04.4 ([84d6b50](84d6b504d2))
* **helmfile:** When optional mail domain is set, use it as sender domain for system generated (noreply) mails ([bd4c997](bd4c997950))
* **jitsi:** Increase `patchJVB` job `backoffLimit` to avoid deployment failures on infrastructure where LoadBalancer services take longer to become available ([eb2a181](eb2a1811fb))
* **nextcloud:** Fetch central navigation from cluster internal service ([dd0e516](dd0e516778))
* **nextcloud:** Stop browser from caching server-generated files ([410a1ad](410a1ade69))
* **nextcloud:** Work around a bug that breaks the `nextcloud-management` job in case the theming `primary_color` was set in Nextcloud's web UI ([4aebe22](4aebe22f22))
* **notes:** Explicitly template security contexts; add missing ingress classes and pull secrets ([834c847](834c84768a))
* **nubus:** Remove temporary `nubusUdmListener` `livenessProbe` as recommended by supplier ([688a505](688a505ef7))
* **open-xchange:** Click on top bar logo to point to portal instead of mail inbox ([9f762a7](9f762a7c2e))
* **open-xchange:** Configure correct autoreply addresses and enable FTS in Dovecot EE ([997c083](997c083335))
* **open-xchange:** Explicitly deactivate DAV support if not enabled in `functional.yaml.gotmpl` ([62ba5ab](62ba5aba49))
* **open-xchange:** Fix FTS bulk delete in Dovecot EE ([cd2a356](cd2a356b89))
* **open-xchange:** Set mail quota using `functional.groupware.quota.default` ([67fe50e](67fe50e53c))
* **opendesk-static-files:** Serve missing `.png` favicons for Notes and the Nextcloud topbar logo ([42b1105](42b11059d2))
* **ox-connector:** Update OX Connector and OX Extension to v0.27.7 ([57c96af](57c96af5a5))
* **xwiki:** Templating of `imagePullSecrets` ([bbbcd68](bbbcd6807e))
2025-08-26 13:40:33 +00:00
Thorsten Roßner
9c7b8d772c chore(publiccode.yaml): Update for 1.7.1 2025-08-26 14:28:33 +02:00
Thomas Kaltenbrunner
cd2a356b89 fix(open-xchange): Fix FTS bulk delete in Dovecot EE 2025-08-26 09:29:27 +02:00
Thorsten Roßner
4aebe22f22 fix(nextcloud): Work around a bug that breaks the nextcloud-management job in case the theming primary_color was set in Nextcloud's web UI 2025-08-25 15:48:48 +02:00
Thorsten Roßner
eb2a1811fb fix(jitsi): Increase patchJVB job backoffLimit to avoid deployment failures on infrastructure where LoadBalancer services take longer to become available 2025-08-25 15:31:16 +02:00
Thorsten Roßner
dd0e516778 fix(nextcloud): Fetch central navigation from cluster internal service 2025-08-25 15:31:16 +02:00
Thorsten Roßner
42b11059d2 fix(opendesk-static-files): Serve missing .png favicons for Notes and the Nextcloud topbar logo 2025-08-25 15:31:16 +02:00
Norbert Tretkowski
57c96af5a5 fix(ox-connector): Update OX Connector and OX Extension to v0.27.7 2025-08-25 07:56:30 +00:00
Thorsten Roßner
84d6b504d2 fix(collabora): Update from 25.04.3 to 25.04.4 2025-08-22 12:12:13 +00:00
Axel Lender
6d7937a6ca chore(dev/charts-local.py): Ignore templating in base helmfile 2025-08-22 12:10:53 +00:00
Thorsten Roßner
62ba5aba49 fix(open-xchange): Explicitly deactivate DAV support if not enabled in functional.yaml.gotmpl 2025-08-20 07:51:57 +02:00
Thorsten Roßner
9f762a7c2e fix(open-xchange): Click on top bar logo to point to portal instead of mail inbox 2025-08-19 10:12:04 +02:00
Thomas Kaltenbrunner
67fe50e53c fix(open-xchange): Set mail quota using functional.groupware.quota.default 2025-08-19 10:10:45 +02:00
Thomas Kaltenbrunner
bd4c997950 fix(helmfile): When optional mail domain is set, use it as sender domain for system generated (noreply) mails 2025-08-19 09:59:48 +02:00
Thomas Kaltenbrunner
997c083335 fix(open-xchange): Configure correct autoreply addresses and enable FTS in Dovecot EE 2025-08-19 09:48:14 +02:00
Thorsten Roßner
688a505ef7 fix(nubus): Remove temporary nubusUdmListener livenessProbe as recommended by supplier 2025-08-19 06:40:38 +00:00
Thorsten Roßner
d249448794 docs(misc): Streamline sentence heading 2025-08-19 06:40:38 +00:00
Axel Lender
bbbcd6807e fix(xwiki): Templating of imagePullSecrets 2025-08-19 06:36:59 +00:00
Thomas Kaltenbrunner
834c84768a fix(notes): Explicitly template security contexts; add missing ingress classes and pull secrets 2025-08-19 05:25:40 +00:00
Thorsten Roßner
410a1ade69 fix(nextcloud): Stop browser from caching server-generated files 2025-08-18 16:51:46 +02:00
43 changed files with 530 additions and 245 deletions

View File

@@ -14,16 +14,19 @@ Explain for the reviewer how the change addresses the issue, providing some insi
Provida a link to the issue or document the required details below. Provida a link to the issue or document the required details below.
In case it is a GitLab issue, reference it at the end of the commit message in square brackets, like `[#123]` In case it is a GitLab issue, reference it at the end of the commit message in square brackets, like `[#123]`
Provide steps for QA or reviewers to test the fix and mention anything reviewers should be aware of.
### Before the Fix ### Steps to reproduce
1. ... 1. ...
### After the Fix ### Actual behaviour
Provide steps for QA or reviewers to test the fix and mention anything reviewers should be aware of: *Based on the "Steps to reproduce" explain what the user sees while the bug isn't fixed.*
1. ... ### Expected behaviour
*Based on the "Steps to reproduce" explain what the user gets to see with the bug fix merged.*
## 🔄 Requirements for migrations ## 🔄 Requirements for migrations
@@ -44,14 +47,16 @@ Set labels:
/label ~"Testautomation::👀" /label ~"Testautomation::👀"
``` ```
# 👷 Developer Checklist # 👷 Developer Checklist
- Does the MR include new bits and pieces (e.g. new secrets) that require documentation? **Documentation:**
- [ ] No.
- [ ] Yes, and the documentation was updated accordingly.
Document in an extra comment and link to that comment: Does this MR introduce changes (e.g., new secrets, configuration options) that require documentation?
- [ ] How you verified the fix is working as expected, also in upgrade scenarios. - [ ] No
- [ ] Any regression testing done. - [ ] Yes, and the documentation has been updated accordingly
--> Link to comment: **Quality Assurance:**
- [ ] Verified that the feature works as expected, including upgrade scenarios
- [ ] Performed regression testing
- Link to internal comment(s) with detailed QA results (to avoid exposing infrastructure details):
- ...

View File

@@ -2,7 +2,12 @@ Thank you for your contribution!
Please follow these simple guidelines to continue: Please follow these simple guidelines to continue:
- Select a MR template in case you contribution is covers more than simple documentation/non functional changes:
- `Update`: Major/minor updates of openDesk core applications, the ones listed on the [README.md](../../README.md). Main commit should be `feat(component): ...`
- `Bugfix`: For (bug)fixes in the platform or non-update/feature releases of the openDesk core applications. Main commit should be `fix(component): ...`
- `Feature`: An update in the platform providing support for a specific feature. Main commit should be `feat(component): ...`
- `Other`: All other changes.
- In case you just do a `chore`/`docs` commit, you can skip the templates from above.
- Create MRs early and use the "draft" state to show that this MR isn't ready for review and merge. - Create MRs early and use the "draft" state to show that this MR isn't ready for review and merge.
- Flag the MR "ready" as soon as it can be reviewed and QA'd.
- Always assign the MR to yourself and set somebody from the development team as reviewer. If you do not know whom to chose leave the reviewer empty. - Always assign the MR to yourself and set somebody from the development team as reviewer. If you do not know whom to chose leave the reviewer empty.
- Select one of the templates in case your contribution contains more than simple documentation updates and follow the templates instructions. - Flag the MR "ready" as soon as it can be reviewed and QA'd.

View File

@@ -36,12 +36,14 @@ Set labels:
# 👷 Developer Checklist # 👷 Developer Checklist
- Does the MR include new bits and pieces (e.g. new secrets) that require documentation? **Documentation:**
- [ ] No.
- [ ] Yes, and the documentation was updated accordingly.
Document in an extra comment and link to that comment: Does this MR introduce changes (e.g., new secrets, configuration options) that require documentation?
- [ ] How you verified the feature is working as expected, also in upgrade scenarios. - [ ] No
- [ ] Any regression testing done. - [ ] Yes, and the documentation has been updated accordingly
--> Link to comment: **Quality Assurance:**
- [ ] Verified that the feature works as expected, including upgrade scenarios
- [ ] Performed regression testing
- Link to internal comment(s) with detailed QA results (to avoid exposing infrastructure details):
- ...

View File

@@ -30,12 +30,14 @@ Set labels:
# 👷 Developer Checklist # 👷 Developer Checklist
- Does the MR include new bits and pieces (e.g. new secrets) that require documentation? **Documentation:**
- [ ] No.
- [ ] Yes, and the documentation was updated accordingly.
Document in an extra comment and link to that comment: Does this MR introduce changes (e.g., new secrets, configuration options) that require documentation?
- [ ] How you verified the change is working as expected, also in upgrade scenarios. - [ ] No
- [ ] Any regression testing done. - [ ] Yes, and the documentation has been updated accordingly
--> Link to comment: **Quality Assurance:**
- [ ] Verified that the feature works as expected, including upgrade scenarios
- [ ] Performed regression testing
- Link to internal comment(s) with detailed QA results (to avoid exposing infrastructure details):
- ...

View File

@@ -5,8 +5,8 @@
## 📋 Changelog/Release Notes ## 📋 Changelog/Release Notes
- [ ] [README.md](../../README.md) component table updated including the link to the related release notes - [ ] [README.md](../../README.md) component table updated including the link to the related release notes of the updated application.
- [ ] Provide significant improvements you'd like to see in the openDesk release notes. If you have a lot of details to provide or someone else is providing the details, please use a comment on the MR and link the comment in here. - [ ] Provide significant improvements you would like to see in the [openDesk release notes](https://www.opendesk.eu/en/blog/opendesk-1-6). If you have a lot of details to provide or someone else is providing the details, you can use a comment on this MR and provide a link here.
## 🔄 Requirements for migrations ## 🔄 Requirements for migrations
@@ -28,14 +28,16 @@ Set labels:
/label ~"Testautomation::👀" /label ~"Testautomation::👀"
``` ```
## 👷 Developer Checklist # 👷 Developer Checklist
- Does the MR include new bits and pieces (e.g. new secrets) that require documentation? **Documentation:**
- [ ] No.
- [ ] Yes, and the documentation was updated accordingly.
Document in an extra comment and link to that comment: Does this MR introduce changes (e.g., new secrets, configuration options) that require documentation?
- [ ] How you verified the update is working as expected, also in upgrade scenarios. - [ ] No
- [ ] Any regression testing done. - [ ] Yes, and the documentation has been updated accordingly
--> Link to comment: **Quality Assurance:**
- [ ] Verified that the feature works as expected, including upgrade scenarios
- [ ] Performed regression testing
- Link to internal comment(s) with detailed QA results (to avoid exposing infrastructure details):
- ...

View File

@@ -1,3 +1,25 @@
## [1.7.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.7.0...v1.7.1) (2025-08-26)
### Bug Fixes
* **collabora:** Update from 25.04.3 to 25.04.4 ([84d6b50](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/84d6b504d21e687de3fb4cdabafc9cff6fe1f1d7))
* **helmfile:** When optional mail domain is set, use it as sender domain for system generated (noreply) mails ([bd4c997](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/bd4c997950750e36168434e82daf48f20d0a42df))
* **jitsi:** Increase `patchJVB` job `backoffLimit` to avoid deployment failures on infrastructure where LoadBalancer services take longer to become available ([eb2a181](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/eb2a1811fb1d11b0dd0ea0e9987f96846a855ac7))
* **nextcloud:** Fetch central navigation from cluster internal service ([dd0e516](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/dd0e516778104c47ef990d95d01bdec6b33d9bab))
* **nextcloud:** Stop browser from caching server-generated files ([410a1ad](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/410a1ade6907f676d3c4cbc68b33754e0e41e9fb))
* **nextcloud:** Work around a bug that breaks the `nextcloud-management` job in case the theming `primary_color` was set in Nextcloud's web UI ([4aebe22](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/4aebe22f22dc9e679563a46687ebdc8793c281e8))
* **notes:** Explicitly template security contexts; add missing ingress classes and pull secrets ([834c847](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/834c84768a3a6537990e27377acb170b6269dfb0))
* **nubus:** Remove temporary `nubusUdmListener` `livenessProbe` as recommended by supplier ([688a505](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/688a505ef780e7c81006a73db6465ef75dea1404))
* **open-xchange:** Click on top bar logo to point to portal instead of mail inbox ([9f762a7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/9f762a7c2ea3f8e4d3207d8d2aae44597a366ee0))
* **open-xchange:** Configure correct autoreply addresses and enable FTS in Dovecot EE ([997c083](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/997c083335b79aa7446894b6ebbb6ed1d5950a3d))
* **open-xchange:** Explicitly deactivate DAV support if not enabled in `functional.yaml.gotmpl` ([62ba5ab](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/62ba5aba496af40208a13abeb6c8f1de62e98e35))
* **open-xchange:** Fix FTS bulk delete in Dovecot EE ([cd2a356](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/cd2a356b89249b8a163f2becc57832164bc6c8e5))
* **open-xchange:** Set mail quota using `functional.groupware.quota.default` ([67fe50e](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/67fe50e53c7477016efe3b3d90c63214928f165c))
* **opendesk-static-files:** Serve missing `.png` favicons for Notes and the Nextcloud topbar logo ([42b1105](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/42b11059d29d6445e1e4e3309ad7a9a026b56c92))
* **ox-connector:** Update OX Connector and OX Extension to v0.27.7 ([57c96af](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/57c96af5a545a6a6851926b85bca0dc24263b55e))
* **xwiki:** Templating of `imagePullSecrets` ([bbbcd68](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/bbbcd6807e972c6120d90df52b8ffe9da03ebce3))
# [1.7.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.6.0...v1.7.0) (2025-08-11) # [1.7.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.6.0...v1.7.0) (2025-08-11)

View File

@@ -16,7 +16,7 @@ SPDX-License-Identifier: Apache-2.0
* [Testing](#testing) * [Testing](#testing)
* [Permissions](#permissions) * [Permissions](#permissions)
* [Releases](#releases) * [Releases](#releases)
* [Data Storage](#data-storage) * [Data storage](#data-storage)
* [Feedback](#feedback) * [Feedback](#feedback)
* [Development](#development) * [Development](#development)
* [License](#license) * [License](#license)
@@ -32,18 +32,18 @@ For production use, the [openDesk Enterprise Edition](./README-EE.md) is recomme
openDesk currently features the following functional main components: openDesk currently features the following functional main components:
| Function | Functional Component | License | Component<br/>Version | Upstream Documentation | | Function | Functional component | License | Component<br/>version | Upstream documentation |
|----------------------|-----------------------------|----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------| |----------------------|-----------------------------|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|
| Chat & collaboration | Element ft. Nordeck widgets | AGPL-3.0-or-later (Element Web), AGPL-3.0-only (Synapse), Apache-2.0 (Nordeck widgets) | [1.11.89](https://github.com/element-hq/element-web/releases/tag/v1.11.89) | [For the most recent release](https://element.io/user-guide) | | Chat & collaboration | Element ft. Nordeck widgets | AGPL-3.0-or-later (Element Web), AGPL-3.0-only (Synapse), Apache-2.0 (Nordeck widgets) | [1.11.89](https://github.com/element-hq/element-web/releases/tag/v1.11.89) | [For the most recent release](https://element.io/user-guide) |
| Collaborative notes | Notes (aka Docs) | MIT | [3.2.1](https://github.com/suitenumerique/docs/releases/tag/v3.2.1) | Online documentation/welcome document available in installed application | | Collaborative notes | Notes (aka Docs) | MIT | [3.2.1](https://github.com/suitenumerique/docs/releases/tag/v3.2.1) | Online documentation/welcome document available in installed application |
| Diagram editor | CryptPad ft. diagrams.net | AGPL-3.0-only | [2024.9.0](https://github.com/cryptpad/cryptpad/releases/tag/2024.9.0) | [For the most recent release](https://docs.cryptpad.org/en/) | | Diagram editor | CryptPad ft. diagrams.net | AGPL-3.0-only | [2025.6.0](https://github.com/cryptpad/cryptpad/releases/tag/2025.6.0) | [For the most recent release](https://docs.cryptpad.org/en/) |
| File management | Nextcloud | AGPL-3.0-or-later | [31.0.6](https://nextcloud.com/de/changelog/#31-0-6) | [Nextcloud 31](https://docs.nextcloud.com/) | | File management | Nextcloud | AGPL-3.0-or-later | [31.0.7](https://nextcloud.com/de/changelog/#31-0-7) | [Nextcloud 31](https://docs.nextcloud.com/) |
| Groupware | OX App Suite | GPL-2.0-only (backend), AGPL-3.0-or-later (frontend) | [8.39](https://documentation.open-xchange.com/appsuite/releases/8.39/) | Online documentation available from within the installed application; [Additional resources](https://documentation.open-xchange.com/) | | Groupware | OX App Suite | GPL-2.0-only (backend), AGPL-3.0-or-later (frontend) | [8.40](https://documentation.open-xchange.com/appsuite/releases/8.40/) | Online documentation available from within the installed application; [Additional resources](https://documentation.open-xchange.com/) |
| Knowledge management | XWiki | LGPL-2.1-or-later | [16.10.5](https://www.xwiki.org/xwiki/bin/view/ReleaseNotes/Data/XWiki/16.10.5/) | [For the most recent release](https://www.xwiki.org/xwiki/bin/view/Documentation) | | Knowledge management | XWiki | LGPL-2.1-or-later | [17.4.4](https://www.xwiki.org/xwiki/bin/view/ReleaseNotes/Data/XWiki/17.4.4/) | [For the most recent release](https://www.xwiki.org/xwiki/bin/view/Documentation) |
| Portal & IAM | Nubus | AGPL-3.0-or-later | [1.12.0](https://docs.software-univention.de/nubus-kubernetes-release-notes/1.x/en/1.12.html#version-1-12-0-2025-07-31) | [Univention's documentation website](https://docs.software-univention.de/n/en/nubus.html) | | Portal & IAM | Nubus | AGPL-3.0-or-later | [1.13.1](https://docs.software-univention.de/nubus-kubernetes-release-notes/1.x/en/1.13.html) | [Univention's documentation website](https://docs.software-univention.de/n/en/nubus.html) |
| Project management | OpenProject | GPL-3.0-only | [16.2.1](https://www.openproject.org/docs/release-notes/16-2-1/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) | | Project management | OpenProject | GPL-3.0-only | [16.3.2](https://www.openproject.org/docs/release-notes/16-3-2/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
| Videoconferencing | Jitsi | Apache-2.0 | [2.0.9955](https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_9955) | [For the most recent release](https://jitsi.github.io/handbook/docs/category/user-guide/) | | Videoconferencing | Jitsi | Apache-2.0 | [2.0.9955](https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_9955) | [For the most recent release](https://jitsi.github.io/handbook/docs/category/user-guide/) |
| Weboffice | Collabora | MPL-2.0 | [25.04.3](https://www.collaboraoffice.com/code-25-04-release-notes/) | Online documentation available from within the installed application; [Additional resources](https://sdk.collaboraonline.com/) | | Weboffice | Collabora | MPL-2.0 | [25.04.4](https://www.collaboraoffice.com/code-25-04-release-notes/) | Online documentation available from within the installed application; [Additional resources](https://sdk.collaboraonline.com/) |
While not all components are perfectly designed for the execution inside containers, one of the project's objectives is to While not all components are perfectly designed for the execution inside containers, one of the project's objectives is to
align the applications with best practices regarding container design and operations. align the applications with best practices regarding container design and operations.
@@ -108,7 +108,7 @@ in the files from the release's git-tag:
Find more information in our [Workflow documentation](./docs/developer/workflow.md). Find more information in our [Workflow documentation](./docs/developer/workflow.md).
# Data Storage # Data storage
More information about different data storages used within openDesk are described in the More information about different data storages used within openDesk are described in the
[Data Storage documentation](./docs/data-storage.md). [Data Storage documentation](./docs/data-storage.md).

View File

@@ -129,7 +129,7 @@ def grep_yaml(file):
with open(file, 'r') as file: with open(file, 'r') as file:
content = '' content = ''
for line in file.readlines(): for line in file.readlines():
if not ': {{' in line and not '- {{' in line: if not '{{' in line:
content += line content += line
return yaml.safe_load(content) return yaml.safe_load(content)

View File

@@ -15,27 +15,27 @@ SPDX-License-Identifier: Apache-2.0
* [Keycloak Extensions](#keycloak-extensions) * [Keycloak Extensions](#keycloak-extensions)
* [OpenLDAP](#openldap) * [OpenLDAP](#openldap)
* [Authorization](#authorization) * [Authorization](#authorization)
* [LDAP Group Synchronization](#ldap-group-synchronization) * [LDAP group synchronization](#ldap-group-synchronization)
* [Provisioning](#provisioning) * [Provisioning](#provisioning)
* [OX Connector](#ox-connector) * [OX Connector](#ox-connector)
* [SCIM](#scim) * [SCIM](#scim)
* [Component integration](#component-integration) * [Component integration](#component-integration)
* [Intercom Service / Silent Login](#intercom-service--silent-login) * [Intercom Service / Silent login](#intercom-service--silent-login)
* [Central Contacts](#central-contacts) * [Central contacts](#central-contacts)
* [Central Navigation](#central-navigation) * [Central navigation](#central-navigation)
* [Filepicker](#filepicker) * [Filepicker](#filepicker)
* [Newsfeed](#newsfeed) * [Newsfeed](#newsfeed)
* [(OpenProject) File Store](#openproject-file-store) * [(OpenProject) File store](#openproject-file-store)
* [Applications vs. Services](#applications-vs-services) * [Applications vs. services](#applications-vs-services)
* [Collabora (Office)](#collabora-office) * [Collabora (weboffice)](#collabora-weboffice)
* [CryptPad Online (Diagrams)](#cryptpad-online-diagrams) * [CryptPad Online (diagrams)](#cryptpad-online-diagrams)
* [Element/Synapse (Chat \& Call)](#elementsynapse-chat--call) * [Element/Synapse (chat \& call)](#elementsynapse-chat--call)
* [Jitsi (Video Conferencing)](#jitsi-video-conferencing) * [Jitsi (video conferencing)](#jitsi-video-conferencing)
* [Nextcloud (Files)](#nextcloud-files) * [Nextcloud (files)](#nextcloud-files)
* [Nubus (Identity and Access Management / Portal)](#nubus-identity-and-access-management--portal) * [Nubus (identity and access management / portal)](#nubus-identity-and-access-management--portal)
* [OpenProject (Project management)](#openproject-project-management) * [OpenProject (project management)](#openproject-project-management)
* [OX App Suite (Groupware) with OX Dovecot (Mail backend)](#ox-app-suite-groupware-with-ox-dovecot-mail-backend) * [OX App Suite (groupware) with OX Dovecot (mail backend)](#ox-app-suite-groupware-with-ox-dovecot-mail-backend)
* [XWiki (Knowledge management)](#xwiki-knowledge-management) * [XWiki (knowledge management)](#xwiki-knowledge-management)
* [Application specific user accounts](#application-specific-user-accounts) * [Application specific user accounts](#application-specific-user-accounts)
* [Footnotes](#footnotes) * [Footnotes](#footnotes)
<!-- TOC --> <!-- TOC -->
@@ -210,7 +210,7 @@ To address these use cases, the Keycloak Extensions act as a proxy to Keycloak.
# Authorization # Authorization
## LDAP Group Synchronization ## LDAP group synchronization
LDAP group synchronization ensures that user group memberships are consistent across the applications in openDesk that make use of the IAM group information. Nubus uses OpenLDAP to store and manage user groups, which are synchronized with integrated applications to enforce access control policies. LDAP group synchronization ensures that user group memberships are consistent across the applications in openDesk that make use of the IAM group information. Nubus uses OpenLDAP to store and manage user groups, which are synchronized with integrated applications to enforce access control policies.
@@ -273,7 +273,7 @@ flowchart TD
Details can be found in the upstream documentation that is linked in the respective sections. Details can be found in the upstream documentation that is linked in the respective sections.
## Intercom Service / Silent Login ## Intercom Service / Silent login
The Intercom Service is deployed in the context of Nubus. Its role is to enable cross-application integration The Intercom Service is deployed in the context of Nubus. Its role is to enable cross-application integration
based on the user's browser interaction, as handling authentication when the frontend of an application has to call based on the user's browser interaction, as handling authentication when the frontend of an application has to call
@@ -286,7 +286,7 @@ Currently, only OX AppSuite and Element are using the frontend-based integration
**Links:** **Links:**
- [Intercom Service upstream documentation](https://docs.software-univention.de/intercom-service/latest/index.html). - [Intercom Service upstream documentation](https://docs.software-univention.de/intercom-service/latest/index.html).
## Central Contacts ## Central contacts
OX App Suite is responsible for managing contacts in openDesk. Therefore, Nextcloud's PHP backend is using the OX AppSuite's middleware Contacts API to OX App Suite is responsible for managing contacts in openDesk. Therefore, Nextcloud's PHP backend is using the OX AppSuite's middleware Contacts API to
- create a new contact in the user's contacts folder when a file is shared with an unknown email address. - create a new contact in the user's contacts folder when a file is shared with an unknown email address.
@@ -296,7 +296,7 @@ OX App Suite is responsible for managing contacts in openDesk. Therefore, Nextcl
- Currently used [OX Contacts API (deprecated)](https://documentation.open-xchange.com/components/middleware/http/8/index.html#!Contacts). - Currently used [OX Contacts API (deprecated)](https://documentation.open-xchange.com/components/middleware/http/8/index.html#!Contacts).
- New [OX Addressbooks API](https://documentation.open-xchange.com/components/middleware/http/8/index.html#!Addressbooks) the Central Contacts integration will switch to. - New [OX Addressbooks API](https://documentation.open-xchange.com/components/middleware/http/8/index.html#!Addressbooks) the Central Contacts integration will switch to.
## Central Navigation ## Central navigation
Central navigation is based on an API endpoint in the Nubus portal that returns a JSON containing the portal's contents for Central navigation is based on an API endpoint in the Nubus portal that returns a JSON containing the portal's contents for
a given user. The response from the API endpoint is used in the openDesk applications to render the central navigation. a given user. The response from the API endpoint is used in the openDesk applications to render the central navigation.
@@ -338,7 +338,7 @@ service through the Intercom Service's `/wiki` endpoint, in combination with the
**Links:** **Links:**
- [XWiki Blog feature](https://extensions.xwiki.org/xwiki/bin/view/Extension/Blog%20Application) - [XWiki Blog feature](https://extensions.xwiki.org/xwiki/bin/view/Extension/Blog%20Application)
## (OpenProject) File Store ## (OpenProject) File store
While OpenProject allows you to attach files to work packages directly, it is often preferred that the files are While OpenProject allows you to attach files to work packages directly, it is often preferred that the files are
stored within Nextcloud or to link an existing file from your openDesk Nextcloud to a work package. stored within Nextcloud or to link an existing file from your openDesk Nextcloud to a work package.
@@ -351,7 +351,7 @@ The file store must still be enabled per project in OpenProject's project admin
- [OpenProject's documentation on Nextcloud integration](https://www.openproject.org/docs/system-admin-guide/integrations/nextcloud/) - [OpenProject's documentation on Nextcloud integration](https://www.openproject.org/docs/system-admin-guide/integrations/nextcloud/)
- [OpenProject Integration Nextcloud app](https://apps.nextcloud.com/apps/integration_openproject) - [OpenProject Integration Nextcloud app](https://apps.nextcloud.com/apps/integration_openproject)
# Applications vs. Services # Applications vs. services
openDesk consists of a variety of open-source projects, please find an overview below: openDesk consists of a variety of open-source projects, please find an overview below:
@@ -366,16 +366,16 @@ openDesk consists of a variety of open-source projects, please find an overview
| Element | Secure communications platform | Application | | Element | Secure communications platform | Application |
| Jitsi | Videoconferencing | Application | | Jitsi | Videoconferencing | Application |
| MariaDB | Database | Service | | MariaDB | Database | Service |
| Memcached | Cache Database | Service | | Memcached | Cache database | Service |
| MinIO | Object Storage | Service | | MinIO | Object storage | Service |
| Nextcloud | File share | Application | | Nextcloud | File share | Application |
| Nubus (UMS) | Identity Management & Portal | Application | | Nubus (UMS) | Identity management & portal | Application |
| OpenProject | Project management | Application | | OpenProject | Project management | Application |
| OX Appsuite & Dovecot | Groupware with IMAP mail backend | Application | | OX Appsuite & Dovecot | Groupware with IMAP mail backend | Application |
| Postfix | MTA | Service | | Postfix | MTA | Service |
| PostgreSQL | Database | Service | | PostgreSQL | Database | Service |
| Redis | Cache Database | Service | | Redis | Cache database | Service |
| XWiki | Knowledge Management | Application | | XWiki | Knowledge management | Application |
The end user focussed components are called applications and provide the functional scope of openDesk, please find separate paragraphs on each of the applications below. The end user focussed components are called applications and provide the functional scope of openDesk, please find separate paragraphs on each of the applications below.
@@ -383,25 +383,25 @@ Other components are of type "Service", these are used for development and evalu
For the APIs / Protocols supported by the applications, please read the [apis.md](./docs/architecture/apis.md). For the APIs / Protocols supported by the applications, please read the [apis.md](./docs/architecture/apis.md).
## Collabora (Office) ## Collabora (weboffice)
[Collabora](https://www.collaboraonline.com) is a powerful online document editing suite. [Collabora](https://www.collaboraonline.com) is a powerful online document editing suite.
In openDesk, Collabora is used for editing Office documents such as rich texts, spreadsheets and presentations. In openDesk, Collabora is used for editing Office documents such as rich texts, spreadsheets and presentations.
## CryptPad Online (Diagrams) ## CryptPad Online (diagrams)
[CryptPad](https://cryptpad.org/) is a collaborative editor framework supporting end-to-end encryption. [CryptPad](https://cryptpad.org/) is a collaborative editor framework supporting end-to-end encryption.
In openDesk, CryptPad is for editing diagrams.net documents. In openDesk, CryptPad is for editing diagrams.net documents.
## Element/Synapse (Chat & Call) ## Element/Synapse (chat & call)
[Element Web](https://github.com/element-hq/element-web) is the web frontend for [Synapse](https://github.com/element-hq/synapse), the reference implementation of the sovereign and secure [Matrix protocol](https://matrix.org). [Element Web](https://github.com/element-hq/element-web) is the web frontend for [Synapse](https://github.com/element-hq/synapse), the reference implementation of the sovereign and secure [Matrix protocol](https://matrix.org).
In openDesk, Element is used for chat and direct audio & video calling. In openDesk, Element is used for chat and direct audio & video calling.
## Jitsi (Video Conferencing) ## Jitsi (video conferencing)
[Jitsi](https://jitsi.org) is an open-source video conferencing solution that allows users to hold secure video meetings. [Jitsi](https://jitsi.org) is an open-source video conferencing solution that allows users to hold secure video meetings.
@@ -409,27 +409,27 @@ In openDesk, Jitsi is used for video conferencing and online meetings. It integr
[Jigasi](https://github.com/jitsi/jigasi) (Jitsi's SIP component) also allows joining the meeting via phone call if an external SIP server and SIP trunk are provided. [Jigasi](https://github.com/jitsi/jigasi) (Jitsi's SIP component) also allows joining the meeting via phone call if an external SIP server and SIP trunk are provided.
## Nextcloud (Files) ## Nextcloud (files)
[Nextcloud](https://nextcloud.com) is a file storage and sync platform with powerful collaboration capabilities with desktop, mobile and web interfaces. [Nextcloud](https://nextcloud.com) is a file storage and sync platform with powerful collaboration capabilities with desktop, mobile and web interfaces.
## Nubus (Identity and Access Management / Portal) ## Nubus (identity and access management / portal)
[Nubus](https://www.univention.com/products/nubus/) is a unified Identity & Access Management, providing you with full control and digital sovereignty over your IAM processes and data. [Nubus](https://www.univention.com/products/nubus/) is a unified Identity & Access Management, providing you with full control and digital sovereignty over your IAM processes and data.
In openDesk, Nubus provides the management required for users, groups and other IAM objects, as well as the portal, the Identity provider for Single Sign-On and federation scenarios. In openDesk, Nubus provides the management required for users, groups and other IAM objects, as well as the portal, the Identity provider for Single Sign-On and federation scenarios.
## OpenProject (Project management) ## OpenProject (project management)
[OpenProject](https://www.openproject.org) is a project management tool that supports agile project management, team collaboration, issue tracking, and more. [OpenProject](https://www.openproject.org) is a project management tool that supports agile project management, team collaboration, issue tracking, and more.
## OX App Suite (Groupware) with OX Dovecot (Mail backend) ## OX App Suite (groupware) with OX Dovecot (mail backend)
[OX App Suite](https://www.open-xchange.com/products/ox-app-suite) is a groupware application using [OX Dovecot](https://www.dovecot.org/) as its backend mail store. [OX App Suite](https://www.open-xchange.com/products/ox-app-suite) is a groupware application using [OX Dovecot](https://www.dovecot.org/) as its backend mail store.
In openDesk, OX App Suite is used for email, calendar, address book and personal task management. In openDesk, OX App Suite is used for email, calendar, address book and personal task management.
## XWiki (Knowledge management) ## XWiki (knowledge management)
[XWiki](https://www.xwiki.org) is an open-source wiki platform for knowledge management and collaboration. [XWiki](https://www.xwiki.org) is an open-source wiki platform for knowledge management and collaboration.

View File

@@ -9,7 +9,7 @@ SPDX-License-Identifier: Apache-2.0
* [Software bill of materials (SBOMs)](#software-bill-of-materials-sboms) * [Software bill of materials (SBOMs)](#software-bill-of-materials-sboms)
* [Artifact SBOMs](#artifact-sboms) * [Artifact SBOMs](#artifact-sboms)
* [Source code SBOMs](#source-code-sboms) * [Source code SBOMs](#source-code-sboms)
* [License Compliance](#license-compliance) * [License compliance](#license-compliance)
* [Software supply chain security](#software-supply-chain-security) * [Software supply chain security](#software-supply-chain-security)
* [Container architectural basics](#container-architectural-basics) * [Container architectural basics](#container-architectural-basics)
* [Security](#security) * [Security](#security)
@@ -25,7 +25,7 @@ SPDX-License-Identifier: Apache-2.0
* [Top bar](#top-bar) * [Top bar](#top-bar)
* [Look and feel](#look-and-feel) * [Look and feel](#look-and-feel)
* [Central navigation](#central-navigation) * [Central navigation](#central-navigation)
* [Functional Administration](#functional-administration) * [Functional administration](#functional-administration)
* [Theming](#theming) * [Theming](#theming)
* [Central user profile](#central-user-profile) * [Central user profile](#central-user-profile)
* [Footnotes](#footnotes) * [Footnotes](#footnotes)
@@ -60,7 +60,7 @@ Today's software development platforms like GitLab or GitHub provide dependency
**Reference:** Currently we do not have source code SBOMs in place. **Reference:** Currently we do not have source code SBOMs in place.
# License Compliance # License compliance
All parts of openDesk Community Edition must be open source with source code (also) published or at least publishable on openCode. All parts of openDesk Community Edition must be open source with source code (also) published or at least publishable on openCode.
@@ -243,7 +243,7 @@ When implementing the central navigation into an application there are two optio
**Reference:** This is available in current deployments in all applications except for Jitsi, Collabora, and CryptPad. **Reference:** This is available in current deployments in all applications except for Jitsi, Collabora, and CryptPad.
## Functional Administration ## Functional administration
While applications usually support technical and functional administration the technical part should be in the responsibility of the operator and is usually done at (re)deployment time. Therefore the administrative tasks within an application should be limited to functional administration. While applications usually support technical and functional administration the technical part should be in the responsibility of the operator and is usually done at (re)deployment time. Therefore the administrative tasks within an application should be limited to functional administration.

View File

@@ -218,6 +218,9 @@ kubectl patch -n ${NAMESPACE} configmap ${CONFIGMAP_NAME} --type merge -p '{"dat
> **Note**<br> > **Note**<br>
> Because the `ums-keycloak-extensions-handler` is sending frequent requests (one per second) to Keycloak for retrieval of the Keycloak event history, you might want to stop/remove the deployment while debugging/analysing Keycloak to not get your debug output spammed by these requests. > Because the `ums-keycloak-extensions-handler` is sending frequent requests (one per second) to Keycloak for retrieval of the Keycloak event history, you might want to stop/remove the deployment while debugging/analysing Keycloak to not get your debug output spammed by these requests.
> **Note**<br>
> While you can set the standard log levels like `INFO`, `DEBUG`, `TRACE` etc. you can also set class specific logs by comma separating the details in the `KC_LOG_LEVEL` environment variable like e.g. `INFO,org.keycloak.protocol.oidc.endpoints:TRACE`. The example sets the overall loglevel to `INFO` but provides trace logs for `org.keycloak.protocol.oidc.endpoints`.
### Accessing the Keycloak admin console ### Accessing the Keycloak admin console
Deployments set to `debug.enable: true` expose the Keycloak admin console at `http://id.<your_opendesk_domain>/admin/`. This can also be achieved by updating the Ingress `ums-keycloak-extensions-proxy` with an additional path that allows access to `/admin/`. Deployments set to `debug.enable: true` expose the Keycloak admin console at `http://id.<your_opendesk_domain>/admin/`. This can also be achieved by updating the Ingress `ums-keycloak-extensions-proxy` with an additional path that allows access to `/admin/`.

View File

@@ -26,6 +26,7 @@ The following categories are available. Each category contains a set of options
* Portal options (`functional.portal.*`): Options to customize the openDesk portal, e.g. if the login dialog should be enforced. * Portal options (`functional.portal.*`): Options to customize the openDesk portal, e.g. if the login dialog should be enforced.
* Chat options (`functional.chat.*`): Configuration options for the chat component of openDesk. * Chat options (`functional.chat.*`): Configuration options for the chat component of openDesk.
* Migration options (`functional.migration.*`): Helpful setting(s) for migration scenarios. * Migration options (`functional.migration.*`): Helpful setting(s) for migration scenarios.
* Groupware options (`functional.groupware.*`): Options to customize Open-Xchange and mail settings, e.g. mail quota.
## Customization of functional options ## Customization of functional options

View File

@@ -10,6 +10,9 @@ SPDX-License-Identifier: Apache-2.0
* [Deprecation warnings](#deprecation-warnings) * [Deprecation warnings](#deprecation-warnings)
* [Automated migrations - Overview and mandatory upgrade path](#automated-migrations---overview-and-mandatory-upgrade-path) * [Automated migrations - Overview and mandatory upgrade path](#automated-migrations---overview-and-mandatory-upgrade-path)
* [Manual checks/actions](#manual-checksactions) * [Manual checks/actions](#manual-checksactions)
* [v1.7.1+](#v171)
* [Pre-upgrade to v1.7.1+](#pre-upgrade-to-v171)
* [New Helmfile default: Restricting characters for directory and filenames in fileshare module](#new-helmfile-default-restricting-characters-for-directory-and-filenames-in-fileshare-module)
* [v1.7.0+](#v170) * [v1.7.0+](#v170)
* [Pre-upgrade to v1.7.0+](#pre-upgrade-to-v170) * [Pre-upgrade to v1.7.0+](#pre-upgrade-to-v170)
* [Helmfile fix: Ensure enterprise overrides apply when deploying from project root](#helmfile-fix-ensure-enterprise-overrides-apply-when-deploying-from-project-root) * [Helmfile fix: Ensure enterprise overrides apply when deploying from project root](#helmfile-fix-ensure-enterprise-overrides-apply-when-deploying-from-project-root)
@@ -96,12 +99,14 @@ Manual checks and possible activities are also required by openDesk updates, the
We cannot hold back all migrations as some are required e.g. due to a change in a specific component that we want/need to update, we try to bundle others only with major releases. We cannot hold back all migrations as some are required e.g. due to a change in a specific component that we want/need to update, we try to bundle others only with major releases.
This section should provide you with an overview of what changes to expect in the next major release (openDesk 2.0) expected in September 2025. This section provides an overview of potential changes to be part of the next major release (openDesk 2.0).
- `functional.portal.link*` (see `functional.yaml.gotmpl` for details) are going to be moved into the `theme.*` tree, we are also going to move the icons used for the links currently found under `theme.imagery.portalEntries` in this step. - `functional.portal.link*` (see `functional.yaml.gotmpl` for details) are going to be moved into the `theme.*` tree, we are also going to move the icons used for the links currently found under `theme.imagery.portalEntries` in this step.
- We will explicitly set the [database schema configuration](https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Configuration/#HConfigurethenamesofdatabaseschemas) for XWiki to avoid the use of the `public` schema. - We will explicitly set the [database schema configuration](https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Configuration/#HConfigurethenamesofdatabaseschemas) for XWiki to avoid the use of the `public` schema.
- `persistance.storages.oxConnector.storageClassName` and `persistance.storages.nubusUdmListener.storageClassName` will be templated in Helmfile requiring you to template them explicitly if their current default values differs from the global value set in `persistence.storageClassNames.RWO`. - Adding support for `storageClassName` templating of various components requiring upgrading of the existing PVCs:
- The currently used Helm chart for Notes will be replaced requiring some config updates. - `persistence.storages.oxConnector.storageClassName`
- `persistence.storages.nubusUdmListener.storageClassName`
- `persistence.storages.nubusProvisioningNats.storageClassName`
# Automated migrations - Overview and mandatory upgrade path # Automated migrations - Overview and mandatory upgrade path
@@ -125,11 +130,49 @@ If you would like more details about the automated migrations, please read secti
# Manual checks/actions # Manual checks/actions
## v1.7.1+
### Pre-upgrade to v1.7.1+
#### New Helmfile default: Restricting characters for directory and filenames in fileshare module
**Target group:** All openDesk deployments using the fileshare module, as they may already contain files or directories with characters that are now restricted.
openDesk now enforces restrictions on the characters allowed in directory and filenames by explicitly disallowing the following set: `* " | ? ; : \ / ~ < >`
The reason is that desktop clients can not handle all characters due to restrictions in the underlying operating system and therefor syncing these directories and/or files will fail.
This change was introduced because desktop clients cannot reliably handle certain characters due to operating system limitations, causing file synchronization to fail when these characters are present.
For existing deployments, any files or directories containing restricted characters must be renamed before updates within the file or (sub)directory can succeed.
Nextcloud provides tooling for renaming affected files using an [`occ command`](https://docs.nextcloud.com/server/latest/admin_manual/occ_command.html#sanitize-filenames) that can be executed by the operator, the command also supports a dry-run mode.
You can customize the default restriction settings in `functional.yaml.gotmpl`:
```
functional:
filestore:
naming:
forbiddenChars:
- '*'
- '"'
- '|'
- '?'
- ';'
- ':'
- '\'
- '/'
- '~'
- '<'
- '>'
```
## v1.7.0+ ## v1.7.0+
### Pre-upgrade to v1.7.0+ ### Pre-upgrade to v1.7.0+
### Helmfile fix: Ensure enterprise overrides apply when deploying from project root #### Helmfile fix: Ensure enterprise overrides apply when deploying from project root
**Target group:** All openDesk Enterprise deployments initiated from the project root using `helmfile_generic.yaml.gotmpl` **Target group:** All openDesk Enterprise deployments initiated from the project root using `helmfile_generic.yaml.gotmpl`

View File

@@ -20,7 +20,7 @@ openDesk uses role-based access control (RBAC) to manage permissions. This syste
* [Administrative access to applications](#administrative-access-to-applications) * [Administrative access to applications](#administrative-access-to-applications)
* [Custom groups](#custom-groups) * [Custom groups](#custom-groups)
* [Assigning roles/groups and permissions](#assigning-rolesgroups-and-permissions) * [Assigning roles/groups and permissions](#assigning-rolesgroups-and-permissions)
* [Predefined roles / user templates](#predefined-roles--user-templates) * [Predefined roles/user templates](#predefined-rolesuser-templates)
* [*openDesk User*](#opendesk-user) * [*openDesk User*](#opendesk-user)
* [*openDesk Administrator*](#opendesk-administrator) * [*openDesk Administrator*](#opendesk-administrator)
* [Managing permissions](#managing-permissions) * [Managing permissions](#managing-permissions)
@@ -30,7 +30,7 @@ openDesk uses role-based access control (RBAC) to manage permissions. This syste
* [Delegation](#delegation) * [Delegation](#delegation)
* [Regular review](#regular-review) * [Regular review](#regular-review)
* [Applications](#applications) * [Applications](#applications)
* [Roles/groups](#rolesgroups) * [Roles/Groups](#rolesgroups)
<!-- TOC --> <!-- TOC -->
# Identity and Access Management (IAM) # Identity and Access Management (IAM)
@@ -126,7 +126,7 @@ While openDesk ships with predefined groups, additional groups can be [created](
Users get roles assigned based on their responsibilities and the tasks they need to perform. This assignment can be done by an admin through the [administration portal](https://docs.opendesk.eu/administration/). Users get roles assigned based on their responsibilities and the tasks they need to perform. This assignment can be done by an admin through the [administration portal](https://docs.opendesk.eu/administration/).
## Predefined roles / user templates ## Predefined roles/user templates
openDesk defines [templates](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-nubus/-/blob/main/udm/udm-data-loader/65-usertemplate.yaml) for the *User* and *Administrator* roles. The templates can be used by an *openDesk Administrator* to create users with these roles using the [administration portal](https://docs.opendesk.eu/administration/). openDesk defines [templates](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-nubus/-/blob/main/udm/udm-data-loader/65-usertemplate.yaml) for the *User* and *Administrator* roles. The templates can be used by an *openDesk Administrator* to create users with these roles using the [administration portal](https://docs.opendesk.eu/administration/).
@@ -191,7 +191,7 @@ While the overall role and permission setup must be checked by the customer, inc
Managing all application permissions within the IAM would require a superset of permissions to be available in the IAM. This would lead to a high level of administrative complexity. Instead, the application specific permissions are usually managed within an application itself and mapped to roles/groups that are managed in the IAM. Managing all application permissions within the IAM would require a superset of permissions to be available in the IAM. This would lead to a high level of administrative complexity. Instead, the application specific permissions are usually managed within an application itself and mapped to roles/groups that are managed in the IAM.
## Roles/groups ## Roles/Groups
Within IAM groups, the visibility of openDesk applications can be configured. Like with users, this is done in the "openDesk" tab of the [group administration](https://docs.opendesk.eu/administration/gruppen/). Within IAM groups, the visibility of openDesk applications can be configured. Like with users, this is done in the "openDesk" tab of the [group administration](https://docs.opendesk.eu/administration/gruppen/).

View File

@@ -3,30 +3,30 @@ SPDX-FileCopyrightText: 2025 Zentrum für Digitale Souveränität der Öffentlic
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
--> -->
<h1>Release Management</h1> <h1>Release management</h1>
This document outlines the release and patch management strategy for **openDesk**, ensuring that all updates, patches, and new releases are systematically **planned, tested, documented**, and **reliably deployed** into production. The process is designed to align with operational planning requirements and maintain system stability and security. This document outlines the release and patch management strategy for **openDesk**, ensuring that all updates, patches, and new releases are systematically **planned, tested, documented**, and **reliably deployed** into production. The process is designed to align with operational planning requirements and maintain system stability and security.
<!-- TOC --> <!-- TOC -->
* [Release Cycle](#release-cycle) * [Release cycle](#release-cycle)
* [Release Types](#release-types) * [Release types](#release-types)
* [Release Schedule](#release-schedule) * [Release schedule](#release-schedule)
* [Upgrades](#upgrades) * [Upgrades](#upgrades)
* [Patch Management Process](#application-administration) * [Patch management process](#patch-management-process)
* [Patch Identification & Prioritization](#patch-identification-prioritization) * [Patch identification \& prioritization](#patch-identification--prioritization)
* [Patch Workflow](#patch-workflow) * [Patch workflow](#patch-workflow)
* [Communication Plan](#communication-plan) * [Communication plan](#communication-plan)
* [Announcement Channels](#announcement-channels) * [Announcement channels](#announcement-channels)
* [Timing of Communications](#timing-of-communications) * [Timing of communications](#timing-of-communications)
* [Documentation Requirements](#documentation-requirements) * [Documentation requirements](#documentation-requirements)
* [Compliance & Review](#compliance-review) * [Compliance \& review](#compliance--review)
<!-- TOC --> <!-- TOC -->
# Release Cycle # Release cycle
openDesk follows a structured release cycle to ensure predictability and reliability: openDesk follows a structured release cycle to ensure predictability and reliability:
## Release Types ## Release types
| Type | Frequency | Content | | Type | Frequency | Content |
|----------------|---------------|---------------------------------------------------------------| |----------------|---------------|---------------------------------------------------------------|
@@ -36,7 +36,7 @@ openDesk follows a structured release cycle to ensure predictability and reliabi
> **Note:** openDesk does **not** guarantee that minor releases are 100% backwardcompatible. When a breaking change is unavoidable it is announced in the release notes under a dedicated header **“Breaking Changes”** and a migration guide is provided. > **Note:** openDesk does **not** guarantee that minor releases are 100% backwardcompatible. When a breaking change is unavoidable it is announced in the release notes under a dedicated header **“Breaking Changes”** and a migration guide is provided.
## Release Schedule ## Release schedule
- **Major releases** are scheduled for **Q3 each year**, with planning beginning in Q1. - **Major releases** are scheduled for **Q3 each year**, with planning beginning in Q1.
- **Minor releases** occur **monthly on Mondays**, typically **around 10:00 AM** local time. - **Minor releases** occur **monthly on Mondays**, typically **around 10:00 AM** local time.
@@ -54,11 +54,11 @@ openDesk follows a structured release cycle to ensure predictability and reliabi
- All breaking changes, including those in monthly minor releases, are highlighted in the release notes under Breaking Changes. - All breaking changes, including those in monthly minor releases, are highlighted in the release notes under Breaking Changes.
- Additional, nonbinding migration hints are collected in `migrations.md` - Additional, nonbinding migration hints are collected in `migrations.md`
# Patch Management Process # Patch management process
A standardized process ensures patches are developed, prioritized, and deployed efficiently. A standardized process ensures patches are developed, prioritized, and deployed efficiently.
## Patch Identification & Prioritization ## Patch identification & prioritization
Patches are categorized by severity and urgency: Patches are categorized by severity and urgency:
@@ -69,7 +69,7 @@ Patches are categorized by severity and urgency:
| **Medium** | Functional bugs with workarounds, minor usability issues | | **Medium** | Functional bugs with workarounds, minor usability issues |
| **Low** | Cosmetic issues, documentation updates | | **Low** | Cosmetic issues, documentation updates |
## Patch Workflow ## Patch workflow
The following steps define the patch workflow from issue identification to post-deployment review. This process ensures consistent quality and minimal disruption to users: The following steps define the patch workflow from issue identification to post-deployment review. This process ensures consistent quality and minimal disruption to users:
@@ -83,18 +83,18 @@ The following steps define the patch workflow from issue identification to post-
This workflow ensures that patches are handled with the same level of discipline as planned releases, supporting both reliability and agility. This workflow ensures that patches are handled with the same level of discipline as planned releases, supporting both reliability and agility.
# Communication Plan # Communication plan
A lightweight approach reduces manual effort while maintaining transparency. A lightweight approach reduces manual effort while maintaining transparency.
## Announcement Channels ## Announcement channels
| Channel | Audience | Purpose | Owner | | Channel | Audience | Purpose | Owner |
|---------|----------|---------|-------| |---------|----------|---------|-------|
| **openCode Changelog** | Community & EE | Primary source of truth for every release | DevOps | | **openCode Changelog** | Community & EE | Primary source of truth for every release | DevOps |
| **AccountManager Mail / Ticket** | Enterprise customers | Targeted information & upgrade advice | Customer Success | | **AccountManager Mail / Ticket** | Enterprise customers | Targeted information & upgrade advice | Customer Success |
## Timing of Communications ## Timing of communications
| Release Type | What | When | | Release Type | What | When |
|--------------|------|------| |--------------|------|------|
@@ -107,7 +107,7 @@ A lightweight approach reduces manual effort while maintaining transparency.
Community users consume information via openCode; Enterprise customers get an additional nudge via their account manager  **no mass mailings are sent manually**. Community users consume information via openCode; Enterprise customers get an additional nudge via their account manager  **no mass mailings are sent manually**.
# Documentation Requirements # Documentation requirements
Each release (major, minor, or patch) must include: Each release (major, minor, or patch) must include:
@@ -116,7 +116,7 @@ Each release (major, minor, or patch) must include:
- **Test reports** confirming QA coverage and results - **Test reports** confirming QA coverage and results
- **Deployment checklist** reviewed and approved by the product owner - **Deployment checklist** reviewed and approved by the product owner
# Compliance & Review # Compliance & review
- The release process is reviewed **bi-annually** to incorporate feedback and evolving requirements - The release process is reviewed **bi-annually** to incorporate feedback and evolving requirements
- Emergency patches (e.g., zero-day security issues) may bypass the standard schedule but must be documented post-deployment - Emergency patches (e.g., zero-day security issues) may bypass the standard schedule but must be documented post-deployment

View File

@@ -172,9 +172,9 @@ This list gives you an overview of templated security settings and if they compl
| **nextcloud**/opendesk-nextcloud-notifypush | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes | | **nextcloud**/opendesk-nextcloud-notifypush | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes |
| **nextcloud**/opendesk-nextcloud/aio | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes | | **nextcloud**/opendesk-nextcloud/aio | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes |
| **nextcloud**/opendesk-nextcloud/exporter | :white_check_mark: | no | no | yes | yes | 65532 | 65532 | yes | yes | | **nextcloud**/opendesk-nextcloud/exporter | :white_check_mark: | no | no | yes | yes | 65532 | 65532 | yes | yes |
| **notes**/impress/backend | :x: | n/a | n/a | n/a | n/a | n/a | n/a | n/a | no | | **notes**/impress/backend | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes |
| **notes**/impress/frontend | :x: | n/a | n/a | n/a | n/a | n/a | n/a | n/a | no | | **notes**/impress/frontend | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
| **notes**/impress/y-provider | :x: | n/a | n/a | n/a | n/a | n/a | n/a | n/a | no | | **notes**/impress/y-provider | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes |
| **nubus**/intercom-service | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes | | **nubus**/intercom-service | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
| **nubus**/intercom-service/provisioning | :x: | n/a | n/a | n/a | n/a | n/a | n/a | yes | no | | **nubus**/intercom-service/provisioning | :x: | n/a | n/a | n/a | n/a | n/a | n/a | yes | no |
| **nubus**/opendesk-keycloak-bootstrap | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes | | **nubus**/opendesk-keycloak-bootstrap | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |

View File

@@ -8,12 +8,12 @@ SPDX-License-Identifier: Apache-2.0
This document covers the current status of security measures. This document covers the current status of security measures.
<!-- TOC --> <!-- TOC -->
* [Helm Chart Trust Chain](#helm-chart-trust-chain) * [Helm chart trust chain](#helm-chart-trust-chain)
* [Kubernetes Security Enforcements](#kubernetes-security-enforcements) * [Kubernetes security enforcements](#kubernetes-security-enforcements)
* [NetworkPolicies](#networkpolicies) * [Network policies](#network-policies)
<!-- TOC --> <!-- TOC -->
# Helm Chart Trust Chain # Helm chart trust chain
Helm charts are signed and validated against GPG keys in `helmfile/files/gpg-pubkeys`. Helm charts are signed and validated against GPG keys in `helmfile/files/gpg-pubkeys`.
@@ -25,22 +25,22 @@ All charts except the ones mentioned below are verifiable:
|-------------------|:----------:| |-------------------|:----------:|
| open-xchange-repo | no | | open-xchange-repo | no |
# Kubernetes Security Enforcements # Kubernetes security enforcements
This list gives you an overview of default security settings and whether they comply with security standards: This list gives you an overview of default security settings and whether they comply with security standards:
⟶ Visit our generated detailed [Security Context](./docs/security-context.md) overview. ⟶ Visit our generated detailed [Security Context](./docs/security-context.md) overview.
# NetworkPolicies # Network policies
Kubernetes NetworkPolicies are an essential measure to secure your Kubernetes apps and clusters. Kubernetes network policies are an essential measure to secure your Kubernetes apps and clusters.
When applied, they restrict traffic to your services. When applied, they restrict traffic to your services.
NetworkPolicies protect other deployments in your cluster or other services in your deployment from getting compromised when another `NetworkPolicy` resources protect other deployments in your cluster or other services in your deployment from getting compromised when another
component is compromised. component is compromised.
We ship a default set of Otterize ClientIntents via We ship a default set of Otterize `ClientIntents` via
[Otterize intents operator](https://github.com/otterize/intents-operator) which translates intent-based access control [Otterize intents operator](https://github.com/otterize/intents-operator) which translates intent-based access control
(IBAC) into Kubernetes native NetworkPolicies. (IBAC) into Kubernetes native network policies.
This requires the Otterize intents operator to be installed. This requires the Otterize intents operator to be installed.

View File

@@ -20,6 +20,11 @@ collabora:
--o:num_prespawn_children={{ .Values.technical.collabora.numPrespawnChildren }} --o:num_prespawn_children={{ .Values.technical.collabora.numPrespawnChildren }}
--o:remote_font_config.url=https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/apps/richdocuments/settings/fonts.json --o:remote_font_config.url=https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/apps/richdocuments/settings/fonts.json
--o:net.proto={{ if eq .Values.cluster.networking.ipFamilies "DualStack" }}all{{ else }}{{ .Values.cluster.networking.ipFamilies }}{{ end }} --o:net.proto={{ if eq .Values.cluster.networking.ipFamilies "DualStack" }}all{{ else }}{{ .Values.cluster.networking.ipFamilies }}{{ end }}
--o:security.enable_macros_execution={{ .Values.functional.weboffice.macros.enabled }}
--o:security.macro_security_level={{- $val := printf "%v" .Values.functional.weboffice.macros.securityLevel -}}{{- if or (eq $val "0") (eq $val "1") -}}{{ $val }}
{{- else -}}
{{ fail (printf "Invalid value for functional.weboffice.macros.securityLevel: '%s'. Allowed values: 0 or 1" $val) }}
{{- end }}
{{- if .Values.debug.enabled }} {{- if .Values.debug.enabled }}
--o:logging.level=debug --o:logging.level=debug
{{- else }} {{- else }}

View File

@@ -132,7 +132,7 @@ configuration:
allowUsersToUpdateDisplayname: {{ .Values.functional.chat.matrix.profile.allowUsersToUpdateDisplayname }} allowUsersToUpdateDisplayname: {{ .Values.functional.chat.matrix.profile.allowUsersToUpdateDisplayname }}
smtp: smtp:
senderAddress: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}" senderAddress: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.mailDomain | default .Values.global.domain }}"
host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.apps.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }} host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.apps.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
port: 25 port: 25
tls: false tls: false

View File

@@ -302,6 +302,7 @@ jitsi:
{{- end }} {{- end }}
patchJVB: patchJVB:
backoffLimit: 12
configuration: configuration:
staticLoadbalancerIP: {{ .Values.cluster.networking.ingressGatewayIP | quote }} staticLoadbalancerIP: {{ .Values.cluster.networking.ingressGatewayIP | quote }}
loadbalancerStatusField: {{ .Values.cluster.networking.loadBalancerStatusField | quote }} loadbalancerStatusField: {{ .Values.cluster.networking.loadBalancerStatusField | quote }}

View File

@@ -130,6 +130,7 @@ configuration:
opendeskIntegration: opendeskIntegration:
centralNavigation: centralNavigation:
jsonUrl: "http://ums-portal-server/portal/navigation.json"
username: username:
value: "opendesk_username" value: "opendesk_username"
password: password:
@@ -161,7 +162,7 @@ configuration:
host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.apps.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }} host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.apps.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
port: 587 port: 587
fromAddress: {{ .Values.smtp.localpartNoReply | quote }} fromAddress: {{ .Values.smtp.localpartNoReply | quote }}
mailDomain: "{{ .Values.global.domain }}" mailDomain: "{{ .Values.global.mailDomain | default .Values.global.domain }}"
security: "tls" security: "tls"
skipVerifyPeer: true skipVerifyPeer: true
@@ -175,8 +176,7 @@ configuration:
token: token:
value: {{ .Values.secrets.nextcloud.metricsToken | quote }} value: {{ .Values.secrets.nextcloud.metricsToken | quote }}
# A sane default for windows clients would be: `* " | & ? , ; : \ / ~ < >` forbiddenChars: {{ join " " .Values.functional.filestore.naming.forbiddenChars | quote }}
forbiddenChars: "* \" | & ? , ; : \\ / ~ < >"
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false

View File

@@ -7,7 +7,6 @@ global:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
exporter: exporter:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "opendesk-nextcloud-exporter" intents.otterize.com/service-name: "opendesk-nextcloud-exporter"
{{- with .Values.annotations.nextcloudExporter.additional }} {{- with .Values.annotations.nextcloudExporter.additional }}
@@ -59,6 +58,23 @@ exporter:
{{ .Values.annotations.nextcloudExporter.serviceAccount | toYaml | nindent 6 }} {{ .Values.annotations.nextcloudExporter.serviceAccount | toYaml | nindent 6 }}
aio: aio:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
podAffinityTerm:
labelSelector:
matchExpressions:
- key: "app.kubernetes.io/name"
operator: "In"
values:
- "aio"
- key: "app.kubernetes.io/instance"
operator: "In"
values:
- "opendesk-nextcloud"
topologyKey: "kubernetes.io/hostname"
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "opendesk-nextcloud-aio" intents.otterize.com/service-name: "opendesk-nextcloud-aio"
{{- with .Values.annotations.nextcloudAio.additional }} {{- with .Values.annotations.nextcloudAio.additional }}

View File

@@ -4,10 +4,12 @@
global: global:
collaborationServerSecret: collaborationServerSecret:
value: {{ .Values.secrets.notes.collaborationSecret | quote }} value: {{ .Values.secrets.notes.collaborationSecret | quote }}
fqdn: "{{ .Values.global.hosts.notes }}.{{ .Values.global.domain }}"
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
tlsSecretName: {{ .Values.ingress.tls.secretName | quote }}
yProviderApiKey: yProviderApiKey:
value: {{ .Values.secrets.notes.collaborationSecret | quote }} value: {{ .Values.secrets.notes.collaborationSecret | quote }}
fqdn: "{{ .Values.global.hosts.notes }}.{{ .Values.global.domain }}"
tlsSecretName: {{ .Values.ingress.tls.secretName | quote }}
backend: backend:
image: image:
@@ -23,14 +25,13 @@ backend:
{{- if .Values.annotations.notesBackend.ingress }} {{- if .Values.annotations.notesBackend.ingress }}
{{ .Values.annotations.notesBackend.ingress | toYaml | nindent 6 }} {{ .Values.annotations.notesBackend.ingress | toYaml | nindent 6 }}
{{- end }} {{- end }}
ingressClassName: {{ .Values.ingress.ingressClassName }}
ingressAdmin: ingressAdmin:
enabled: true enabled: true
annotations: annotations:
{{ .Values.annotations.notesBackend.ingressAdmin | toYaml | nindent 6 }} {{ .Values.annotations.notesBackend.ingressAdmin | toYaml | nindent 6 }}
ingressClassName: {{ .Values.ingress.ingressClassName }}
replicaCount: {{ .Values.replicas.notesBackend }} replicaCount: {{ .Values.replicas.notesBackend }}
containerSecurityContext:
seLinuxOptions:
{{ .Values.seLinuxOptions.notesBackend | toYaml | nindent 6 }}
configuration: configuration:
ai: ai:
apiKey: apiKey:
@@ -57,7 +58,7 @@ backend:
value: {{ .Values.databases.notes.username | quote }} value: {{ .Values.databases.notes.username | quote }}
email: email:
brandName: "openDesk" brandName: "openDesk"
from: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}" from: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.mailDomain | default .Values.global.domain }}"
host: "postfix" host: "postfix"
port: "25" port: "25"
logoImage: {{ printf "https://%s.%s/univention/portal/icons/entries/swp.notes.svg" .Values.global.hosts.nubus .Values.global.domain | quote }} logoImage: {{ printf "https://%s.%s/univention/portal/icons/entries/swp.notes.svg" .Values.global.hosts.nubus .Values.global.domain | quote }}
@@ -100,12 +101,31 @@ backend:
value: "False" value: "False"
- name: "FRONTEND_FOOTER_FEATURE_ENABLED" - name: "FRONTEND_FOOTER_FEATURE_ENABLED"
value: "False" value: "False"
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
privileged: false
runAsUser: 1001
runAsGroup: 1001
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.notesBackend | toYaml | nindent 6 }}
podAnnotations: podAnnotations:
{{ .Values.annotations.notesBackend.pod | toYaml | nindent 4 }} {{ .Values.annotations.notesBackend.pod | toYaml | nindent 4 }}
podAnnotationsCreateUser: podAnnotationsCreateUser:
{{ .Values.annotations.notesBackend.createUserJob | toYaml | nindent 4 }} {{ .Values.annotations.notesBackend.createUserJob | toYaml | nindent 4 }}
podAnnotationsMigrate: podAnnotationsMigrate:
{{ .Values.annotations.notesBackend.migrateJob | toYaml | nindent 4 }} {{ .Values.annotations.notesBackend.migrateJob | toYaml | nindent 4 }}
podSecurityContext:
enabled: true
fsGroup: 1000
fsGroupChangePolicy: "Always"
resources: resources:
{{ .Values.resources.notesBackend | toYaml | nindent 4 }} {{ .Values.resources.notesBackend | toYaml | nindent 4 }}
service: service:
@@ -131,10 +151,16 @@ frontend:
repository: {{ .Values.images.notesFrontend.repository | quote }} repository: {{ .Values.images.notesFrontend.repository | quote }}
pullPolicy: "IfNotPresent" pullPolicy: "IfNotPresent"
tag: {{ .Values.images.notesFrontend.tag | quote }} tag: {{ .Values.images.notesFrontend.tag | quote }}
ingress:
enabled: true
annotations:
{{ .Values.annotations.notesFrontend.ingress | toYaml | nindent 6 }}
ingressClassName: {{ .Values.ingress.ingressClassName }}
ingressMedia: ingressMedia:
enabled: true enabled: true
annotations: annotations:
{{ .Values.annotations.notesFrontend.ingressMedia | toYaml | nindent 6 }} {{ .Values.annotations.notesFrontend.ingressMedia | toYaml | nindent 6 }}
ingressClassName: {{ .Values.ingress.ingressClassName }}
extraEnvVars: extraEnvVars:
- name: "ICS_BASE_URL" - name: "ICS_BASE_URL"
value: {{ printf "https://%s.%s" .Values.global.hosts.intercomService .Values.global.domain | quote }} value: {{ printf "https://%s.%s" .Values.global.hosts.intercomService .Values.global.domain | quote }}
@@ -145,10 +171,26 @@ frontend:
resources: resources:
{{ .Values.resources.notesFrontend | toYaml | nindent 4 }} {{ .Values.resources.notesFrontend | toYaml | nindent 4 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
privileged: false
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.notesFrontend | toYaml | nindent 6 }} {{ .Values.seLinuxOptions.notesFrontend | toYaml | nindent 6 }}
podAnnotations: podAnnotations:
{{ .Values.annotations.notesFrontend.pod | toYaml | nindent 4 }} {{ .Values.annotations.notesFrontend.pod | toYaml | nindent 4 }}
podSecurityContext:
enabled: true
fsGroup: 1000
fsGroupChangePolicy: "Always"
service: service:
annotations: annotations:
{{ .Values.annotations.notesFrontend.service | toYaml | nindent 6 }} {{ .Values.annotations.notesFrontend.service | toYaml | nindent 6 }}
@@ -181,16 +223,34 @@ y-provider:
subPath: "ca-certificates.crt" subPath: "ca-certificates.crt"
{{- end }} {{- end }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
privileged: false
runAsUser: 1001
runAsGroup: 1001
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.notesBackend | toYaml | nindent 6 }} {{ .Values.seLinuxOptions.notesBackend | toYaml | nindent 6 }}
ingressCollaborationApi: ingressCollaborationApi:
annotations: annotations:
{{ .Values.annotations.notesYProvider.ingressCollaborationAPI | toYaml | nindent 6 }} {{ .Values.annotations.notesYProvider.ingressCollaborationAPI | toYaml | nindent 6 }}
ingressClassName: {{ .Values.ingress.ingressClassName }}
ingressCollaborationWs: ingressCollaborationWs:
annotations: annotations:
{{ .Values.annotations.notesYProvider.ingressCollaborationWS | toYaml | nindent 6 }} {{ .Values.annotations.notesYProvider.ingressCollaborationWS | toYaml | nindent 6 }}
ingressClassName: {{ .Values.ingress.ingressClassName }}
podAnnotations: podAnnotations:
{{ .Values.annotations.notesYProvider.pod | toYaml | nindent 4 }} {{ .Values.annotations.notesYProvider.pod | toYaml | nindent 4 }}
podSecurityContext:
enabled: true
fsGroup: 1001
fsGroupChangePolicy: "Always"
service: service:
annotations: annotations:
{{ .Values.annotations.notesYProvider.service | toYaml | nindent 6 }} {{ .Values.annotations.notesYProvider.service | toYaml | nindent 6 }}

View File

@@ -550,7 +550,7 @@ nubusKeycloakExtensions:
newDeviceLoginNotificationEnable: {{ if .Values.functional.authentication.newDeviceLoginNotification.enabled }}"True"{{ else }}"False"{{ end }} newDeviceLoginNotificationEnable: {{ if .Values.functional.authentication.newDeviceLoginNotification.enabled }}"True"{{ else }}"False"{{ end }}
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }} logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }}
newDeviceLoginSubject: "New device login on your {{ .Values.theme.texts.productName }} account" newDeviceLoginSubject: "New device login on your {{ .Values.theme.texts.productName }} account"
mailFrom: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}" mailFrom: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.mailDomain | default .Values.global.domain }}"
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloakExtensionHandler.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloakExtensionHandler.registry | quote }}
repository: {{ .Values.images.nubusKeycloakExtensionHandler.repository }} repository: {{ .Values.images.nubusKeycloakExtensionHandler.repository }}
@@ -595,6 +595,7 @@ nubusPortalConsumer:
auth: auth:
accessKeyId: {{ .Values.objectstores.nubus.username | quote }} accessKeyId: {{ .Values.objectstores.nubus.username | quote }}
secretAccessKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }} secretAccessKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
existingSecret: null
bucketName: {{ .Values.objectstores.nubus.bucket | quote }} bucketName: {{ .Values.objectstores.nubus.bucket | quote }}
endpoint: {{ printf "https://%s" (.Values.objectstores.nubus.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }} endpoint: {{ printf "https://%s" (.Values.objectstores.nubus.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }}
persistence: persistence:
@@ -699,6 +700,7 @@ nubusPortalServer:
auth: auth:
accessKeyId: {{ .Values.objectstores.nubus.username | quote }} accessKeyId: {{ .Values.objectstores.nubus.username | quote }}
secretAccessKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }} secretAccessKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
existingSecret: null
bucketName: {{ .Values.objectstores.nubus.bucket | quote }} bucketName: {{ .Values.objectstores.nubus.bucket | quote }}
endpoint: {{ printf "https://%s" (.Values.objectstores.nubus.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }} endpoint: {{ printf "https://%s" (.Values.objectstores.nubus.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }}
persistence: persistence:
@@ -714,6 +716,8 @@ nubusPortalServer:
featureToggles: featureToggles:
notifications_api: false notifications_api: false
centered_layout: true centered_layout: true
# Also enable adjustments in helmfile/files/theme/portal/stylesheet.css when enabling left_sidebar
left_sidebar: false
newsfeed: {{ and .Values.apps.xwiki.enabled .Values.functional.portal.newsfeed.enabled }} newsfeed: {{ and .Values.apps.xwiki.enabled .Values.functional.portal.newsfeed.enabled }}
umc_session_refresh: true umc_session_refresh: true
welcome_message: {{ .Values.functional.portal.welcomeMessage.enabled }} welcome_message: {{ .Values.functional.portal.welcomeMessage.enabled }}
@@ -1037,7 +1041,7 @@ nubusProvisioning:
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
persistence: persistence:
size: {{ .Values.persistence.storages.nubusProvisioningNats.size }} size: {{ .Values.persistence.storages.nubusProvisioningNats.size }}
storageClass: {{ coalesce .Values.persistence.storages.nubusProvisioningNats.storageClassName .Values.persistence.storageClassNames.RWO | quote }} # storageClassName: -- coalesce .Values.persistence.storages.nubusProvisioningNats.storageClassName .Values.persistence.storageClassNames.RWO | quote --
reloader: reloader:
image: image:
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusNatsReloader.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusNatsReloader.registry | quote }}
@@ -1128,13 +1132,6 @@ nubusProvisioning:
nubusUdmListener: nubusUdmListener:
enabled: true enabled: true
# Temporary local liveness probe, should be removed once available in the upstream Nubus Helm chart
livenessProbe:
exec:
command:
- sh
- -c
- 'grep -E "^[13]$" /var/lib/univention-directory-listener/handlers/ldap_listener'
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -1458,6 +1455,8 @@ nubusUmcServer:
password: "" password: ""
podAnnotations: podAnnotations:
{{ .Values.annotations.nubusUmcServer.pod | toYaml | nindent 4 }} {{ .Values.annotations.nubusUmcServer.pod | toYaml | nindent 4 }}
# Ref.: https://docs.software-univention.de/nubus-kubernetes-operation/1.x/en/reference.html#envvar-nubusUmcServer.podManagementPolicy
podManagementPolicy: "{{ if gt .Values.replicas.umsUmcServer 4 }}Parallel{{ else }}OrderedReady{{ end }}"
postgresql: postgresql:
bundled: false bundled: false
connection: connection:

View File

@@ -101,6 +101,8 @@ config:
revokeRefreshToken: {{ .Values.functional.authentication.realmSettings.revokeRefreshToken }} revokeRefreshToken: {{ .Values.functional.authentication.realmSettings.revokeRefreshToken }}
ssoSessionIdleTimeout: {{ .Values.functional.authentication.realmSettings.ssoSessionIdleTimeout }} ssoSessionIdleTimeout: {{ .Values.functional.authentication.realmSettings.ssoSessionIdleTimeout }}
ssoSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.ssoSessionMaxLifespan }} ssoSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.ssoSessionMaxLifespan }}
accessCodeLifespanUserAction: {{ .Values.functional.authentication.realmSettings.accessCodeLifespanUserAction }}
accessCodeLifespanLogin: {{ .Values.functional.authentication.realmSettings.accessCodeLifespanLogin }}
offlineSessionIdleTimeout: {{ .Values.functional.authentication.realmSettings.offlineSessionIdleTimeout }} offlineSessionIdleTimeout: {{ .Values.functional.authentication.realmSettings.offlineSessionIdleTimeout }}
offlineSessionMaxLifespanEnabled: {{ .Values.functional.authentication.realmSettings.offlineSessionMaxLifespanEnabled }} offlineSessionMaxLifespanEnabled: {{ .Values.functional.authentication.realmSettings.offlineSessionMaxLifespanEnabled }}
offlineSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.offlineSessionMaxLifespan }} offlineSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.offlineSessionMaxLifespan }}

View File

@@ -37,6 +37,7 @@ dovecot:
dn: "uid=ldapsearch_dovecot,cn=users,{{ .Values.ldap.baseDn }}" dn: "uid=ldapsearch_dovecot,cn=users,{{ .Values.ldap.baseDn }}"
password: password:
value: {{ .Values.secrets.nubus.ldapSearch.dovecot | quote }} value: {{ .Values.secrets.nubus.ldapSearch.dovecot | quote }}
loginTrustedNetworks: {{ join " " .Values.cluster.networking.cidr | quote }}
oidc: oidc:
enabled: true enabled: true
clientID: clientID:
@@ -46,7 +47,14 @@ dovecot:
introspectionHost: {{ printf "%s.%s" .Values.global.hosts.keycloak .Values.global.domain | quote }} introspectionHost: {{ printf "%s.%s" .Values.global.hosts.keycloak .Values.global.domain | quote }}
introspectionPath: "/realms/{{ .Values.platform.realm }}/protocol/openid-connect/token/introspect" introspectionPath: "/realms/{{ .Values.platform.realm }}/protocol/openid-connect/token/introspect"
usernameAttribute: "opendesk_username" usernameAttribute: "opendesk_username"
loginTrustedNetworks: {{ join " " .Values.cluster.networking.cidr | quote }} quotaRules:
- "*:storage={{ mul .Values.functional.groupware.quota.default 1024 }}M"
- "Trash:storage=+{{ div (mul (mul .Values.functional.groupware.quota.default 1024) 20) 100 }}M"
- "LAZY_EXPUNGE:ignore"
quotaGrace: "{{ div (mul (mul .Values.functional.groupware.quota.default 1024) 10) 100 }}M"
sieve:
notify:
mailtoEnvelopeFrom: "orig_recipient"
submission: submission:
enabled: true enabled: true
ssl: "no" ssl: "no"

View File

@@ -494,6 +494,19 @@ appsuite:
# http = (await import('./io.ox/core/http.js')).default # http = (await import('./io.ox/core/http.js')).default
# await http.POST({ module: 'oxguard/smime', params: { action: 'test' } }) # await http.POST({ module: 'oxguard/smime', params: { action: 'test' } })
com.openexchange.smime.test: {{ .Values.debug.enabled | quote }} com.openexchange.smime.test: {{ .Values.debug.enabled | quote }}
{{- if or (eq (coalesce .Values.service.type.dovecot .Values.cluster.service.type) "NodePort") (eq (coalesce .Values.service.type.dovecot .Values.cluster.service.type) "LoadBalancer") }}
# Client Onboarding
com.openexchange.client.onboarding.mail.imap.host: {{ .Values.global.domain | quote }}
com.openexchange.client.onboarding.mail.imap.port: "993"
com.openexchange.client.onboarding.mail.imap.secure: "true"
com.openexchange.client.onboarding.mail.imap.requireTls: "false"
com.openexchange.client.onboarding.mail.smtp.host: {{ .Values.global.domain | quote }}
com.openexchange.client.onboarding.mail.smtp.port: "587"
com.openexchange.client.onboarding.mail.smtp.secure: "false"
com.openexchange.client.onboarding.mail.smtp.requireTls: "true"
{{- else }}
com.openexchange.client.onboarding.enabled: "false"
{{- end }}
# DAV # DAV
{{- if .Values.functional.groupware.davSupport.enabled }} {{- if .Values.functional.groupware.davSupport.enabled }}
com.openexchange.caldav.enabled: "true" com.openexchange.caldav.enabled: "true"
@@ -502,6 +515,9 @@ appsuite:
com.openexchange.carddav.url: {{ printf "https://%s.%s/carddav/[folderId]" .Values.global.hosts.openxchangeDav .Values.global.domain }} com.openexchange.carddav.url: {{ printf "https://%s.%s/carddav/[folderId]" .Values.global.hosts.openxchangeDav .Values.global.domain }}
com.openexchange.client.onboarding.caldav.url: {{ printf "https://%s.%s/" .Values.global.hosts.openxchangeDav .Values.global.domain }} com.openexchange.client.onboarding.caldav.url: {{ printf "https://%s.%s/" .Values.global.hosts.openxchangeDav .Values.global.domain }}
com.openexchange.client.onboarding.carddav.url: {{ printf "https://%s.%s/" .Values.global.hosts.openxchangeDav .Values.global.domain }} com.openexchange.client.onboarding.carddav.url: {{ printf "https://%s.%s/" .Values.global.hosts.openxchangeDav .Values.global.domain }}
{{- else }}
com.openexchange.caldav.enabled: "false"
com.openexchange.carddav.enabled: "false"
{{- end }} {{- end }}
# Other # Other
com.openexchange.secret.secretSource: "\"<user-id> + '@' + <context-id> + '/' + <random>\"" com.openexchange.secret.secretSource: "\"<user-id> + '@' + <context-id> + '/' + <random>\""
@@ -545,13 +561,6 @@ appsuite:
MASTER_ACCOUNT_OVERRIDE: "true" MASTER_ACCOUNT_OVERRIDE: "true"
/opt/open-xchange/etc/AdminUser.properties: /opt/open-xchange/etc/AdminUser.properties:
USERNAME_CHANGEABLE: "true" USERNAME_CHANGEABLE: "true"
/opt/open-xchange/etc/system.properties:
SERVER_NAME: "oxserver"
/opt/open-xchange/etc/ldapauth.properties:
java.naming.provider.url: "ldap://{{ .Values.ldap.host }}:389/{{ .Values.ldap.baseDn }}"
bindDN: "uid=ldapsearch_ox,cn=users,{{ .Values.ldap.baseDn }}"
bindDNPassword: {{ .Values.secrets.nubus.ldapSearch.ox | quote }}
bindOnly: "false"
/opt/open-xchange/etc/antivirus.properties: /opt/open-xchange/etc/antivirus.properties:
com.openexchange.antivirus.enabled: "true" com.openexchange.antivirus.enabled: "true"
{{- if .Values.antivirus.icap.host }} {{- if .Values.antivirus.icap.host }}
@@ -571,6 +580,20 @@ appsuite:
com.openexchange.filestore.s3.ox-filestore-s3.bucketName: {{ .Values.objectstores.openxchange.bucket | quote }} com.openexchange.filestore.s3.ox-filestore-s3.bucketName: {{ .Values.objectstores.openxchange.bucket | quote }}
com.openexchange.filestore.s3.ox-filestore-s3.accessKey: {{ .Values.objectstores.openxchange.username | quote }} com.openexchange.filestore.s3.ox-filestore-s3.accessKey: {{ .Values.objectstores.openxchange.username | quote }}
com.openexchange.filestore.s3.ox-filestore-s3.secretKey: {{ .Values.objectstores.openxchange.secretKey | default .Values.secrets.minio.openxchangeUser | quote }} com.openexchange.filestore.s3.ox-filestore-s3.secretKey: {{ .Values.objectstores.openxchange.secretKey | default .Values.secrets.minio.openxchangeUser | quote }}
/opt/open-xchange/etc/ldapauth.properties:
java.naming.provider.url: "ldap://{{ .Values.ldap.host }}:389/{{ .Values.ldap.baseDn }}"
bindDN: "uid=ldapsearch_ox,cn=users,{{ .Values.ldap.baseDn }}"
bindDNPassword: {{ .Values.secrets.nubus.ldapSearch.ox | quote }}
bindOnly: "false"
/opt/open-xchange/etc/noreply.properties:
com.openexchange.noreply.address: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.mailDomain | default .Values.global.domain }}"
com.openexchange.noreply.login: {{ printf "%s@%s" "opendesk-system" ( .Values.global.mailDomain | default .Values.global.domain ) }}
com.openexchange.noreply.password: {{ .Values.secrets.postfix.opendeskSystemPassword | quote }}
com.openexchange.noreply.server: "postfix"
com.openexchange.noreply.port: "25"
com.openexchange.noreply.secureMode: "plain"
/opt/open-xchange/etc/system.properties:
SERVER_NAME: "oxserver"
uiSettings: uiSettings:
io.ox.nextcloud//server: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/fs/" io.ox.nextcloud//server: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/fs/"
io.ox.public-sector//ics/url: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/" io.ox.public-sector//ics/url: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/"
@@ -610,6 +633,8 @@ appsuite:
io.ox/dynamic-theme//folderBackground: {{ .Values.theme.colors.white | quote }} io.ox/dynamic-theme//folderBackground: {{ .Values.theme.colors.white | quote }}
io.ox/dynamic-theme//folderSelected: {{ .Values.theme.colors.primary15 | quote }} io.ox/dynamic-theme//folderSelected: {{ .Values.theme.colors.primary15 | quote }}
io.ox/dynamic-theme//folderHover: {{ .Values.theme.colors.secondaryGreyLight | quote }} io.ox/dynamic-theme//folderHover: {{ .Values.theme.colors.secondaryGreyLight | quote }}
# openDesk logo in top bar links to portal
io.ox/core//logoAction: {{ printf "https://%s.%s" .Values.global.hosts.nubus .Values.global.domain | quote }}
secretETCFiles: secretETCFiles:
# Format of the OX Guard master key: # Format of the OX Guard master key:
# MC+base64(20 random bytes) # MC+base64(20 random bytes)

View File

@@ -27,7 +27,7 @@ assets:
paths: paths:
- path: "/resources/...../login/UCS/img/favicon.ico" - path: "/resources/...../login/UCS/img/favicon.ico"
data: {{ .Values.theme.imagery.login.faviconIco }} data: {{ .Values.theme.imagery.login.faviconIco }}
- path: "/static-files/login/logo.svg" - path: "/opendesk-static-files/login/logo.svg"
data: {{ .Values.theme.imagery.login.logoSvg }} data: {{ .Values.theme.imagery.login.logoSvg }}
nextcloud: nextcloud:
subdomain: {{ .Values.global.hosts.nextcloud }} subdomain: {{ .Values.global.hosts.nextcloud }}
@@ -36,11 +36,18 @@ assets:
data: {{ .Values.theme.imagery.files.faviconPng }} data: {{ .Values.theme.imagery.files.faviconPng }}
- path: "/core/img/favicon.ico" - path: "/core/img/favicon.ico"
data: {{ .Values.theme.imagery.files.faviconIco }} data: {{ .Values.theme.imagery.files.faviconIco }}
- path: "/apps/integration_swp/logo"
data: {{ .Values.theme.imagery.logoHeaderSvgB64 }}
mimeType: "image/svg+xml"
notes: notes:
subdomain: {{ .Values.global.hosts.notes }} subdomain: {{ .Values.global.hosts.notes }}
paths: paths:
- path: "/favicon.ico" - path: "/favicon.ico"
data: {{ .Values.theme.imagery.notes.faviconIco }} data: {{ .Values.theme.imagery.notes.faviconIco }}
- path: "/favicon.png"
data: {{ .Values.theme.imagery.notes.faviconPng }}
- path: "/favicon-dark.png"
data: {{ .Values.theme.imagery.notes.faviconPng }}
openproject: openproject:
subdomain: {{ .Values.global.hosts.openproject }} subdomain: {{ .Values.global.hosts.openproject }}
paths: paths:
@@ -64,7 +71,6 @@ assets:
data: {{ .Values.theme.imagery.portal.waitingSpinnerSvg }} data: {{ .Values.theme.imagery.portal.waitingSpinnerSvg }}
- path: "/static-files/login/background.jpg" - path: "/static-files/login/background.jpg"
data: {{ .Values.theme.imagery.login.backgroundJpg }} data: {{ .Values.theme.imagery.login.backgroundJpg }}
xwiki: xwiki:
subdomain: {{ .Values.global.hosts.xwiki }} subdomain: {{ .Values.global.hosts.xwiki }}
paths: paths:

View File

@@ -82,7 +82,7 @@ environment:
OPENPROJECT_SMTP__AUTHENTICATION: "cram_md5" OPENPROJECT_SMTP__AUTHENTICATION: "cram_md5"
OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "true" OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "true"
OPENPROJECT_SMTP__OPENSSL__VERIFY__MODE: "none" OPENPROJECT_SMTP__OPENSSL__VERIFY__MODE: "none"
OPENPROJECT_MAIL__FROM: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}" OPENPROJECT_MAIL__FROM: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.mailDomain | default .Values.global.domain }}"
OPENPROJECT_HOME__URL: {{ printf "https://%s.%s/" .Values.global.hosts.nubus .Values.global.domain | quote }} OPENPROJECT_HOME__URL: {{ printf "https://%s.%s/" .Values.global.hosts.nubus .Values.global.domain | quote }}
OPENPROJECT_OPENID__CONNECT_KEYCLOAK_ISSUER: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}" OPENPROJECT_OPENID__CONNECT_KEYCLOAK_ISSUER: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"
OPENPROJECT_OPENID__CONNECT_KEYCLOAK_POST__LOGOUT__REDIRECT__URI: "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/" OPENPROJECT_OPENID__CONNECT_KEYCLOAK_POST__LOGOUT__REDIRECT__URI: "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/"

View File

@@ -16,7 +16,8 @@ image:
{{- fail "Unsupported value for .Values.databases.xwiki.type, supported values are 'mariadb' or 'postgresql'" }} {{- fail "Unsupported value for .Values.databases.xwiki.type, supported values are 'mariadb' or 'postgresql'" }}
{{- end }} {{- end }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
imagePullSecrets: {{ .Values.global.imagePullSecrets }} imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 2 }}
javaOpts: javaOpts:
{{- if and (eq (env "OPENDESK_ENTERPRISE") "true") .Values.enterpriseKeys.xwiki.opendeskEnterpriseLicense .Values.enterpriseKeys.xwiki.proApplicationslicense }} {{- if and (eq (env "OPENDESK_ENTERPRISE") "true") .Values.enterpriseKeys.xwiki.opendeskEnterpriseLicense .Values.enterpriseKeys.xwiki.proApplicationslicense }}
@@ -85,7 +86,6 @@ customConfigs:
xwiki.authentication.ldap.groupcache_expiration: 300 xwiki.authentication.ldap.groupcache_expiration: 300
## Mapping for XWiki attributes to the respective LDAP attributes ## Mapping for XWiki attributes to the respective LDAP attributes
xwiki.authentication.ldap.fields_mapping: "last_name=sn,first_name=givenName,email=mailPrimaryAddress" xwiki.authentication.ldap.fields_mapping: "last_name=sn,first_name=givenName,email=mailPrimaryAddress"
xwiki.properties: xwiki.properties:
{{- if eq (env "OPENDESK_ENTERPRISE") "true" }} {{- if eq (env "OPENDESK_ENTERPRISE") "true" }}
distribution.defaultUI: "com.xwiki.projects.swp:xwiki-swp-flavor-enterprise-main" distribution.defaultUI: "com.xwiki.projects.swp:xwiki-swp-flavor-enterprise-main"
@@ -170,8 +170,11 @@ properties:
## This option overwrites the LDAP group mappings including all dynamically created mappings, ## This option overwrites the LDAP group mappings including all dynamically created mappings,
# therefore on XWiki restart an LDAP sync is triggered to load the dynamic mapping. # therefore on XWiki restart an LDAP sync is triggered to load the dynamic mapping.
"property:xwiki:XWiki.XWikiPreferences^XWiki.XWikiPreferences.ldap_group_mapping": "xwiki:XWiki.XWikiAdminGroup=cn=managed-by-attribute-KnowledgemanagementAdmin,cn=groups,{{ .Values.ldap.baseDn }}" "property:xwiki:XWiki.XWikiPreferences^XWiki.XWikiPreferences.ldap_group_mapping": "xwiki:XWiki.XWikiAdminGroup=cn=managed-by-attribute-KnowledgemanagementAdmin,cn=groups,{{ .Values.ldap.baseDn }}"
## Collabora ODT / DOCX export
"property:xwiki:Collabora.Code.Configuration^Collabora.Code.ConfigurationClass.isEnabled": 1
"property:xwiki:Collabora.Code.Configuration^Collabora.Code.ConfigurationClass.server": "http://collabora:9980"
## SMTP settings ## SMTP settings
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.from": "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}" "property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.from": "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.mailDomain | default .Values.global.domain }}"
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.host": {{ printf "%s.%s.svc.%s" "postfix" (.Values.apps.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }} "property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.host": {{ printf "%s.%s.svc.%s" "postfix" (.Values.apps.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.port": 587 "property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.port": 587
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.properties": "mail.smtp.starttls.enable=true" "property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.properties": "mail.smtp.starttls.enable=true"

View File

@@ -6,12 +6,12 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/product-development/charts/opendesk-dovecot-pro" repository: "zendis/opendesk-enterprise/components/product-development/charts/opendesk-dovecot-pro"
name: "dovecot" name: "dovecot"
version: "3.1.1" version: "3.1.8"
verify: true verify: true
oxAppSuite: oxAppSuite:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/charts-mirror" repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/charts-mirror"
name: "appsuite-public-sector-pro-chart" name: "appsuite-public-sector-pro-chart"
version: "1.19.197" version: "1.20.412"
verify: false verify: false
... ...

View File

@@ -5,8 +5,7 @@ images:
collabora: collabora:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/collabora/images/collabora-online-for-opendesk" repository: "zendis/opendesk-enterprise/components/supplier/collabora/images/collabora-online-for-opendesk"
tag: "25.04.3.4.1@sha256:929ce210bb1ff46275af64e94ce02ab0a0470572eba8251ad35b8b4296c3a171" tag: "25.04.4.3.1@sha256:b0b5fa9b061df1e8473dff9bb2cf295ab41bd7b35a78b785de518883b07e97c2"
dovecot: dovecot:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/images-mirror/dovecot-pro" repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/images-mirror/dovecot-pro"
@@ -14,9 +13,9 @@ images:
nextcloud: nextcloud:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/nextcloud/images/opendesk-nextcloud" repository: "zendis/opendesk-enterprise/components/supplier/nextcloud/images/opendesk-nextcloud"
tag: "31.0.6@sha256:07cd284179654739c8e6aea05e960ee7d3e3eb4cd09bd9a3e3747c69b9e2ec22" tag: "1.6.9@sha256:3d9f2db7d3f38f3ba86d3ad3b46d98e566c18a9545f3ca14fc357b1944b41c5c"
openxchangeCoreMW: openxchangeCoreMW:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/images-mirror/middleware-public-sector-pro" repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/images-mirror/middleware-public-sector-pro"
tag: "8.39.70@sha256:94b6e9325dfa4c91587b761946151987dd49000727ab81d10a41fdc7c17ae2cb" tag: "8.40.63@sha256:aabe36ff1e04013691f05dd2df6667c4b7106849cb8685bd7cd43efebb43c06c"
... ...

View File

@@ -134,6 +134,7 @@ annotations:
pod: ~ pod: ~
service: ~ service: ~
notesFrontend: notesFrontend:
ingress: ~
ingressMedia: ~ ingressMedia: ~
pod: ~ pod: ~
service: ~ service: ~

View File

@@ -97,7 +97,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-dovecot" repository: "bmi/opendesk/components/platform-development/charts/opendesk-dovecot"
name: "dovecot" name: "dovecot"
version: "3.1.1" version: "3.1.5"
verify: true verify: true
element: element:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -139,7 +139,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/charts-mirror" repository: "bmi/opendesk/components/supplier/univention/charts-mirror"
name: "intercom-service" name: "intercom-service"
version: "2.19.0" version: "2.19.5"
verify: true verify: true
jitsi: jitsi:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -149,7 +149,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-jitsi" repository: "bmi/opendesk/components/platform-development/charts/opendesk-jitsi"
name: "opendesk-jitsi" name: "opendesk-jitsi"
version: "3.1.0" version: "3.2.0"
verify: true verify: true
mariadb: mariadb:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -249,7 +249,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud" repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud"
name: "opendesk-nextcloud" name: "opendesk-nextcloud"
version: "4.4.0" version: "4.4.3"
verify: true verify: true
nextcloudManagement: nextcloudManagement:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -259,7 +259,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud" repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud"
name: "opendesk-nextcloud-management" name: "opendesk-nextcloud-management"
version: "4.4.0" version: "4.4.3"
verify: true verify: true
nextcloudNotifyPush: nextcloudNotifyPush:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -269,7 +269,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud" repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud"
name: "opendesk-nextcloud-notifypush" name: "opendesk-nextcloud-notifypush"
version: "4.4.0" version: "4.4.3"
verify: true verify: true
nginx: nginx:
# providerCategory: "Community" # providerCategory: "Community"
@@ -311,7 +311,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/charts-mirror" repository: "bmi/opendesk/components/supplier/univention/charts-mirror"
name: "nubus" name: "nubus"
version: "1.12.0" version: "1.13.1"
verify: true verify: true
opendeskAlerts: opendeskAlerts:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -351,7 +351,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-static-files" repository: "bmi/opendesk/components/platform-development/charts/opendesk-static-files"
name: "opendesk-static-files" name: "opendesk-static-files"
version: "4.0.1" version: "4.1.0"
verify: true verify: true
openproject: openproject:
# providerCategory: "Supplier" # providerCategory: "Supplier"
@@ -395,7 +395,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/charts-mirror" repository: "bmi/opendesk/components/supplier/open-xchange/charts-mirror"
name: "appsuite-public-sector" name: "appsuite-public-sector"
version: "2.21.167" version: "2.22.355"
verify: false verify: false
oxAppSuiteBootstrap: oxAppSuiteBootstrap:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -417,7 +417,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/charts-mirror" repository: "bmi/opendesk/components/supplier/univention/charts-mirror"
name: "ox-connector" name: "ox-connector"
version: "0.27.2" version: "0.27.9"
verify: true verify: true
postfix: postfix:
# providerCategory: "Platform" # providerCategory: "Platform"

View File

@@ -25,18 +25,47 @@ functional:
clients: ~ clients: ~
# Define additional/custom OIDC client scopes to be created in the 'opendesk' realm within Keycloak. # Define additional/custom OIDC client scopes to be created in the 'opendesk' realm within Keycloak.
clientScopes: ~ clientScopes: ~
# Configure global settings of the 'opendesk' realm within Keycloak. The values are directly # Global settings of the 'opendesk' realm within Keycloak. The values are used to set Keycloak's realm attributes
# passed into the `realmSettings` section of the `opendesk-keycloak-bootstrap` chart. # of the same name and are applied by `opendesk-keycloak-bootstrap`.
# Ref.: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-keycloak-bootstrap # Ref.: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-keycloak-bootstrap
# Note: Global settings can potentially be overridden on a client level. # Note: Global settings can potentially be overridden on a client level.
# Note: All numeric "Lifespan" values are defined in seconds.
realmSettings: realmSettings:
# The lifespan of an access token in seconds.
# Ref.: https://www.keycloak.org/docs/latest/server_admin > "Access Token Lifespan"
accessTokenLifespan: 300 accessTokenLifespan: 300
# If true, refresh tokens are revoked after use. If false, they can be reused until they expire.
# Ref.: https://www.keycloak.org/docs/latest/server_admin > "Revoke Refresh Token"
revokeRefreshToken: false revokeRefreshToken: false
# Maximum time of inactivity before the SSO session is invalidated.
# Applies to logged-in user sessions.
# Ref.: https://www.keycloak.org/docs/latest/server_admin > "SSO Session Idle "
ssoSessionIdleTimeout: 14400 ssoSessionIdleTimeout: 14400
# Absolute maximum time a session can exist, regardless of activity.
# After this, the user is forced to re-authenticate.
# Ref.: https://www.keycloak.org/docs/latest/server_admin/#_sso_session_max
ssoSessionMaxLifespan: 57600 ssoSessionMaxLifespan: 57600
# Maximum time a user has to complete login related actions like update password or configure totp.
accessCodeLifespanUserAction: 300
# Maximum time a user has to complete a login.
accessCodeLifespanLogin: 1800
# How long offline sessions remain valid when idle.
# Offline sessions are typically used with refresh tokens for background tasks or mobile apps.
# Ref.: https://www.keycloak.org/docs/latest/server_admin/ > "Offline Session Idle"
offlineSessionIdleTimeout: 2592000 offlineSessionIdleTimeout: 2592000
# Whether to enforce an absolute max lifespan on offline sessions.
# If false, only the idle timeout applies.
# Ref.: https://www.keycloak.org/docs/latest/server_admin/ > "Offline Session Max Limited"
offlineSessionMaxLifespanEnabled: false offlineSessionMaxLifespanEnabled: false
# Max total lifespan for offline sessions.
# Only applies if `offlineSessionMaxLifespanEnabled` is true.
# Here it's set, but will not be enforced unless enabled.
# Ref.: https://www.keycloak.org/docs/latest/server_admin/ > "Offline Session Max"
offlineSessionMaxLifespan: 5184000 offlineSessionMaxLifespan: 5184000
# The following `client*` settings are timeout settings for client sessions on a per client basis.
# Their logic follows the `ssoSession*` and `offlineSession*` settings.
# A value of 0 disables this timeout.
# Ref.: https://www.keycloak.org/docs/latest/server_admin/ > "Client Session Idle"
clientSessionIdleTimeout: 0 clientSessionIdleTimeout: 0
clientSessionMaxLifespan: 0 clientSessionMaxLifespan: 0
clientOfflineSessionIdleTimeout: 0 clientOfflineSessionIdleTimeout: 0
@@ -99,8 +128,27 @@ functional:
enabled: true enabled: true
filestore: filestore:
# Settings related to directory and filenames
naming:
# Disallowed characters for directory and file names.
# Some operating systems do not support these characters, preventing affected clients from syncing files.
#
# Note: After changing the settings below and redeploying Nextcloud, restart the `aio` Pod(s) to
# apply the changes.
forbiddenChars:
- '*'
- '"'
- '|'
- '?'
- ';'
- ':'
- '\'
- '/'
- '~'
- '<'
- '>'
quota: quota:
# Set the default quota for all users in GB # Set the default quota for all users in gigabyte
default: 1 default: 1
# Options related to file sharing. # Options related to file sharing.
# Changing these options might require a restart of the `opendesk-nextcloud-php` Pod(s). # Changing these options might require a restart of the `opendesk-nextcloud-php` Pod(s).
@@ -152,12 +200,19 @@ functional:
# - https://<.Values.global.hosts.openxchangeDav>.<.Values.global.domain>/carddav/[folderId]" # - https://<.Values.global.hosts.openxchangeDav>.<.Values.global.domain>/carddav/[folderId]"
# Can be switched off using the below feature toggle. # Can be switched off using the below feature toggle.
enabled: true enabled: true
quota:
# Set the default mail storage quota for users in gigabyte.
# Just provide the plain number without quoting. It will allow a quota grace of 10% and +20% in trash storage.
# If you need different rules you can use customizing on Dovecot's `quotaRules` and `quotaGrace` templating.
default: 1
migration: migration:
oxAppSuite: oxAppSuite:
# Note: Only available in openDesk Enterprise. # Note: Only available in openDesk Enterprise.
# Turn on temporary for migration purposes only. Will enable master password auth in OX AppSuite and Dovecot using # Note: Turn on temporary for migration purposes only.
# `secrets.oxAppSuite.migrationsMasterPassword`. # Will enable master password auth in Dovecot and add an additional OX App Suite Core Middelware Pod in the
# role `migration` that is master password enabled. The Pod is accessible through a ClusterIP.
# Master password is defined in `secrets.oxAppSuite.migrationsMasterPassword`.
enabled: false enabled: false
portal: portal:
@@ -167,7 +222,7 @@ functional:
# Link to the legal notice shown in the portal menu, set to "~" if you want to remove the link # Link to the legal notice shown in the portal menu, set to "~" if you want to remove the link
linkLegalNotice: "https://opendesk.eu/impressum" linkLegalNotice: "https://opendesk.eu/impressum"
# Link to the privacy statement shown in the portal menu, set to "~" if you want to remove the link # Link to the privacy statement shown in the portal menu, set to "~" if you want to remove the link
linkPrivacyStatement: "https://zendis.de/datenschutzerklaerung" linkPrivacyStatement: "https://www.zendis.de/datenschutzerklarung"
# Link to documentation, shown in the right lower corner of the portal, set to "~" if you want to remove the link # Link to documentation, shown in the right lower corner of the portal, set to "~" if you want to remove the link
linkDocumentation: "https://docs.opendesk.eu/" linkDocumentation: "https://docs.opendesk.eu/"
# Link to support, shown in the right lower corner of the portal, set to "~" if you want to remove the link # Link to support, shown in the right lower corner of the portal, set to "~" if you want to remove the link
@@ -188,5 +243,13 @@ functional:
# You can choose between "ODF" and "OOXML". # You can choose between "ODF" and "OOXML".
# Ref.: https://en.wikipedia.org/wiki/Comparison_of_Office_Open_XML_and_OpenDocument # Ref.: https://en.wikipedia.org/wiki/Comparison_of_Office_Open_XML_and_OpenDocument
defaultFormat: "ODF" defaultFormat: "ODF"
# Macro related options.
macros:
# Specifies whether the macro execution (Basic and Python scripts) is enabled in general.
# If set to false, the `securityLevel` is ignored.
enabled: false
# Chose from the following values:
# 1: Confirmation required before executing macros from untrusted sources.
# 0: All macros will be executed without confirmation.
securityLevel: 1
... ...

View File

@@ -3,5 +3,5 @@
--- ---
global: global:
systemInformation: systemInformation:
releaseVersion: "v1.7.0" releaseVersion: "v1.7.1"
... ...

View File

@@ -63,7 +63,7 @@ global:
whiteboard: "whiteboard" whiteboard: "whiteboard"
xwiki: "wiki" xwiki: "wiki"
## Credentials to fetch images from private registry ## Define a list containing names of the secrets to use when fetching images from private registries.
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
# #
imagePullSecrets: [] imagePullSecrets: []

View File

@@ -50,7 +50,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/supplier/collabora/images/collabora-online-for-opendesk" # upstreamRepository: "bmi/opendesk/components/supplier/collabora/images/collabora-online-for-opendesk"
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/collabora/images/collabora-online-for-opendesk" repository: "bmi/opendesk/components/supplier/collabora/images/collabora-online-for-opendesk"
tag: "25.04.3.2.1@sha256:e2940b19d855bf6e557c445aaf5b2b7db978af9aeae7e6400bfcc99411dd8bb9" tag: "25.04.4.3.1@sha256:2ba934fb0dc18965bfaf19151017205b0a85af8b069bc34c994a8eae0b4bee34"
collaboraController: collaboraController:
# Enterprise Component # Enterprise Component
# providerCategory: "Supplier" # providerCategory: "Supplier"
@@ -63,10 +63,11 @@ images:
# providerResponsible: "XWiki" # providerResponsible: "XWiki"
# upstreamRegistry: "https://registry-1.docker.io" # upstreamRegistry: "https://registry-1.docker.io"
# upstreamRepository: "cryptpad/cryptpad" # upstreamRepository: "cryptpad/cryptpad"
# upstreamMirrorTagFilterRegEx: '^opendesk-(\d+)$' # upstreamMirrorTagFilterRegEx: '^version-(\d+)\.(\d+)\.(\d+)$'
# upstreamMirrorStartFrom: ["2025", "6", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/cryptpad" repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/cryptpad"
tag: "opendesk-20241022@sha256:3e5bf06cb9d0a7ec8257874b8b347599200eb677fc428a2e043ccab06ef2be17" tag: "version-2025.6.0@sha256:7711c08792637534445e6f1e42407149c2568ae0490b83ea36c06ba395389dec"
dkimpy: dkimpy:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -160,7 +161,7 @@ images:
# upstreamMirrorStartFrom: ["2", "1", "0"] # upstreamMirrorStartFrom: ["2", "1", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/intercom-service" repository: "bmi/opendesk/components/supplier/univention/images-mirror/intercom-service"
tag: "2.19.0@sha256:ebb4e721f4daebf5a206359978b327e85f2d51b9bf145576778ca3b5983920f8" tag: "2.19.5@sha256:4f1bccfd29889e1edd093c8e35c9486919984faf55ca92b787a6a7aca3729e47"
jibri: jibri:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Nordeck" # providerResponsible: "Nordeck"
@@ -332,7 +333,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud" # upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud"
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud" repository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud"
tag: "31.0.6@sha256:4b99dc24ac61db1e5159fbb63e4c9f4178155fba821a9f5552060264b3dd6e31" tag: "2.10.10@sha256:b994d3d1e0664056122dc5275fdf0a4ec7215d9dc5e8b3c030c31a366eda9aa0"
nextcloudExporter: nextcloudExporter:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -392,7 +393,7 @@ images:
# upstreamMirrorStartFrom: ["0", "41", "5"] # upstreamMirrorStartFrom: ["0", "41", "5"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/data-loader" repository: "bmi/opendesk/components/supplier/univention/images-mirror/data-loader"
tag: "0.97.0@sha256:0c4a92f892d54ca3669b33391fb1fb6b45f6a9c43080beacd0d3fa061b0826ab" tag: "0.97.5@sha256:43371a04f951d733419e508af4dc4fe7d27a71fd6b616d93568bb304d5d8fe4c"
nubusGuardianAuthorizationApi: nubusGuardianAuthorizationApi:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -452,7 +453,7 @@ images:
# upstreamMirrorStartFrom: ["0", "1", "0"] # upstreamMirrorStartFrom: ["0", "1", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-bootstrap" repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-bootstrap"
tag: "0.15.2@sha256:207cb4355cead96c8dbfc5c89f77e591c226ebbcac1079c08e6f0eeb8183acea" tag: "0.17.1@sha256:3a2e39b22401c9800a5ff8538f966985512f3b154db1e6792d3e91b44a82eb90"
nubusKeycloakExtensionHandler: nubusKeycloakExtensionHandler:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -482,7 +483,7 @@ images:
# upstreamMirrorStartFrom: ["0", "8", "2"] # upstreamMirrorStartFrom: ["0", "8", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-notifier" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-notifier"
tag: "0.46.0@sha256:2856ea8767e5fa93d0bfcb7211397e121e2792a731825381400dedbdd8ff6a7b" tag: "0.46.2@sha256:96cfd086f7df7f60ab18ee2c76a6b910011d506c488863d7819727977ee32f72"
nubusLdapServer: nubusLdapServer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -492,7 +493,7 @@ images:
# upstreamMirrorStartFrom: ["0", "8", "2"] # upstreamMirrorStartFrom: ["0", "8", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server"
tag: "0.46.0@sha256:5a1612c58f4edb2e42060ac2f927414574d5689c52cbd813f5b2eca0c7c5f75c" tag: "0.46.2@sha256:88a7fb8ca353cd5e32357489cca75eec9b0cfc1802e66ad14365cc1971f7f639"
nubusLdapServerDhInitContainer: nubusLdapServerDhInitContainer:
# providerCategory: 'Community' # providerCategory: 'Community'
# providerResponsible: 'Univention' # providerResponsible: 'Univention'
@@ -510,7 +511,7 @@ images:
# upstreamMirrorStartFrom: ["0", "29", "1"] # upstreamMirrorStartFrom: ["0", "29", "1"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server-elector" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server-elector"
tag: "0.46.0@sha256:688dd37bc472d752d8e4a727374ce13ffdd3fcd65a598f39a8cf54c56d3988e0" tag: "0.46.2@sha256:8314b3d683168bd33e3bc5ba8b4689db10f302d409c8966d7620d2c7617bd7f3"
nubusLdapUpdateUniventionObjectIdentifier: nubusLdapUpdateUniventionObjectIdentifier:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -520,7 +521,7 @@ images:
# upstreamMirrorStartFrom: ["0", "34", "2"] # upstreamMirrorStartFrom: ["0", "34", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-update-univention-object-identifier" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-update-univention-object-identifier"
tag: "0.39.1@sha256:3c1ff735df4f4c133bdb3d6a833cc081c7a31e8efcb84c63ed046cd6840469e5" tag: "0.39.4@sha256:49677ee61dd6aff0e87ff9bde2f032a939749e4097f461307d064566c380c6e2"
nubusNats: nubusNats:
# providerCategory: 'Community' # providerCategory: 'Community'
# providerResponsible: 'Univention' # providerResponsible: 'Univention'
@@ -554,7 +555,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "4"] # upstreamMirrorStartFrom: ["0", "9", "4"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/notifications-api" repository: "bmi/opendesk/components/supplier/univention/images-mirror/notifications-api"
tag: "0.74.1@sha256:3613be84aa991fcd15f6cf47f32bc61345ec660c1a5bf9c3e3e843e8b803b9c4" tag: "0.79.4@sha256:b4e2fc6631e35a97ad920437b645fa4212a3ef7c563c1b048dc282535f9f7634"
nubusOpendeskExtension: nubusOpendeskExtension:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -590,7 +591,7 @@ images:
# upstreamMirrorStartFrom: ["0", "10", "0"] # upstreamMirrorStartFrom: ["0", "10", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ox-extension" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ox-extension"
tag: "0.27.2@sha256:7bb54f5ae0e797172fb92bd7a8a479f179ebd51c1fb5af98fa7b6025f9ffaca4" tag: "0.27.9@sha256:e059d4e521284b21b5aa3664e9c3261be1a195d112004542b56a784165f8ea9e"
nubusPortalConsumer: nubusPortalConsumer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -600,7 +601,7 @@ images:
# upstreamMirrorStartFrom: ["0", "27", "0"] # upstreamMirrorStartFrom: ["0", "27", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-consumer" repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-consumer"
tag: "0.74.1@sha256:1d9b7e890ee46aa4a2a78ab2e7734ac4bf037f86631a43964d1d8fab17772987" tag: "0.79.4@sha256:757bfea13aba02805e671b6dfee98f5e97e7ed83d8cbd933e33dc8f3e06e140c"
nubusPortalExtension: nubusPortalExtension:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -610,7 +611,7 @@ images:
# upstreamMirrorStartFrom: ["0", "28", "0"] # upstreamMirrorStartFrom: ["0", "28", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-extension" repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-extension"
tag: "0.74.1@sha256:cb3c3e4188cfde1d2091790bed38495bf4aa05b54c88e76fd78923db25502c1a" tag: "0.79.4@sha256:15a01dd58bdb309a54acaeb6722c497dd8f40e1269b7ae023813c4d33f73ac97"
nubusPortalFrontend: nubusPortalFrontend:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -620,7 +621,7 @@ images:
# upstreamMirrorStartFrom: ["0", "67", "0"] # upstreamMirrorStartFrom: ["0", "67", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-frontend" repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-frontend"
tag: "0.74.1@sha256:c96209ceb0220b4f05472ba8273a96ed4e526ba5b37f82876aa21a030603cf95" tag: "0.79.4@sha256:8dd1ac0122312e81413699c7d7535c0a35b0e7f9d36fbda0edba388bc1d91917"
nubusPortalServer: nubusPortalServer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -630,7 +631,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "4"] # upstreamMirrorStartFrom: ["0", "9", "4"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-server" repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-server"
tag: "0.74.1@sha256:1f143b81c7c72754784f9399999c2fcb0d34ac7ec0db6fdefb790a1c2ab4ec62" tag: "0.79.4@sha256:a4ed5cad22516e153cdffec2d658724d68effd22b60478f179fa7d6e5e0451ad"
nubusProvisioningDispatcher: nubusProvisioningDispatcher:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -640,7 +641,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"] # upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-dispatcher" repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-dispatcher"
tag: "0.60.2@sha256:356f28afe6354b91a5473c8e3f3c647ae6aca0cf7de47f4e47f6e7acf7a5ab7c" tag: "0.60.10@sha256:6307e9e1ddad0e6f3285ca11b758902f8c377a5d3de6a59b3437accb8475848f"
nubusProvisioningEventsAndConsumerApi: nubusProvisioningEventsAndConsumerApi:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -650,7 +651,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"] # upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-events-and-consumer-api" repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-events-and-consumer-api"
tag: "0.60.2@sha256:3e4fd557abc8350a8d7725ade0103ade7dc28f1ea31cfc981e03e9ce51fa7244" tag: "0.60.10@sha256:9d5f4e4a2668605349fa6cd6973c7a6acbc2ef95a37e72834c6525ac9e464740"
nubusProvisioningPrefill: nubusProvisioningPrefill:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -660,7 +661,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"] # upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-prefill" repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-prefill"
tag: "0.60.2@sha256:23eec4905847ab050a83834f6d70419182601838da4687882c93100842ff349f" tag: "0.60.10@sha256:8ea46658e66fb5be81968dcf00397b741f61d4fd84c8210b9761412e67109cd0"
nubusProvisioningUdmListener: nubusProvisioningUdmListener:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -670,7 +671,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"] # upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-listener" repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-listener"
tag: "0.60.2@sha256:38c2db4e270f67b2d97423ca727fc2a8030dce73a93bd2967d2682844d3bf480" tag: "0.60.10@sha256:fb0d96fa7b382b7d8eec9e262711e1291a0991ade185b39ee604400d4bd5fa9b"
nubusProvisioningUdmTransformer: nubusProvisioningUdmTransformer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -680,7 +681,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"] # upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-transformer" repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-transformer"
tag: "0.60.2@sha256:df38dc8528f0eec1f44db45a8156697d0424bd008c65a1619de15b6ac586d1a0" tag: "0.60.10@sha256:62b98f3e2c19de298878f5679577bfcbddacec742015d6f20b998a549318e810"
nubusSelfServiceConsumer: nubusSelfServiceConsumer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -690,7 +691,7 @@ images:
# upstreamMirrorStartFrom: ["0", "3", "2"] # upstreamMirrorStartFrom: ["0", "3", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/selfservice-invitation" repository: "bmi/opendesk/components/supplier/univention/images-mirror/selfservice-invitation"
tag: "0.19.0@sha256:4215533c7c4497e02666cf04ee77ab866263ae6e595758e8b63018b257e972ad" tag: "0.19.4@sha256:ca9865114fd35fcc1dbe1a5660a3b69d04a8f568cf15286069342e45f0c7ea91"
nubusUdmRestApi: nubusUdmRestApi:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -700,7 +701,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "3"] # upstreamMirrorStartFrom: ["0", "9", "3"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/udm-rest-api" repository: "bmi/opendesk/components/supplier/univention/images-mirror/udm-rest-api"
tag: "0.39.1@sha256:62324c259bdd8e6273aeaf93df44405ef5e42ca17281d19e2a0d86f4f44b742e" tag: "0.39.4@sha256:195a1889d67e3848bad238e400dba446521f689649b0e691a788b734b4b5a26a"
nubusUmcGateway: nubusUmcGateway:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -710,7 +711,7 @@ images:
# upstreamMirrorStartFrom: ["0", "7", "3"] # upstreamMirrorStartFrom: ["0", "7", "3"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-gateway" repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-gateway"
tag: "0.49.0@sha256:a6b779fc7f214f045fe04783d7d137b1dca15dcfafa369508225ab7734bc0287" tag: "0.50.3@sha256:faf08a490d9e99b4b07398bf23a0694ea2ff2e58296dfa6f712a6b7f12583c9d"
nubusUmcServer: nubusUmcServer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -720,7 +721,7 @@ images:
# upstreamMirrorStartFrom: ["0", "7", "3"] # upstreamMirrorStartFrom: ["0", "7", "3"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-server" repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-server"
tag: "0.49.0@sha256:94efec7b3559c27b54984d75f43d248139091255b4978ef7bf0219eb6f6d2e48" tag: "0.50.3@sha256:41f68c7636253763a18779ff4c38fd02a9903cdb38d955d23cc79cf97efcbe5c"
nubusUmcServerProxy: nubusUmcServerProxy:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -764,7 +765,7 @@ images:
# upstreamMirrorStartFrom: ["13", "1", "1"] # upstreamMirrorStartFrom: ["13", "1", "1"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/openproject/images-mirror/open_desk" repository: "bmi/opendesk/components/supplier/openproject/images-mirror/open_desk"
tag: "16.2.1@sha256:4b0c0589ad21b727cf4a7c896f8f446607319ac3ff476855f7576b5eb1173cff" tag: "16.3.2@sha256:07dfc96b97cb309d1c233b4bb65060e9cf96a586807de9b616be6ae066aa7a6c"
openprojectBootstrap: openprojectBootstrap:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -798,7 +799,7 @@ images:
# upstreamMirrorStartFrom: ["8", "6", "0"] # upstreamMirrorStartFrom: ["8", "6", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-guidedtours" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-guidedtours"
tag: "8.6.19@sha256:2c8abc8385090bac03c4540c176ec9c51cd73b0a5a477840d7250ead10701770" tag: "8.6.21@sha256:71b4819d42a808d57951405ab6215ff9fafae43e3f10a9f388484b7fbe28849e"
openxchangeCoreMW: openxchangeCoreMW:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -808,7 +809,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "51"] # upstreamMirrorStartFrom: ["8", "20", "51"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/middleware-public-sector" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/middleware-public-sector"
tag: "8.39.71@sha256:eb5a1e124e8d98aeac2bd32dab8ec690aa71c8e49e5c57916452c471e1afd628" tag: "8.40.63@sha256:7714be24df57cedf7d8e040504e7ab5b0580b068c2f66c3759a91175562b56ea"
openxchangeCoreUI: openxchangeCoreUI:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -818,7 +819,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "1"] # upstreamMirrorStartFrom: ["8", "20", "1"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-ui" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-ui"
tag: "8.39.1@sha256:d25119e36689231d09d747c32c14439d073318f6fd7d084761525579b636ee93" tag: "8.40.3@sha256:7ba6011d1fb080e86e8f0fca01ce6f1959bdc1dc11f4e2502dda89002ec14155"
openxchangeCoreUIMiddleware: openxchangeCoreUIMiddleware:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -828,7 +829,7 @@ images:
# upstreamMirrorStartFrom: ["2", "0", "0"] # upstreamMirrorStartFrom: ["2", "0", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-ui-middleware" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-ui-middleware"
tag: "2.1.3@sha256:5a9259ef6cb155a8e5b94d567af00d8899934550565fbf109ab17200cf5df7f4" tag: "2.1.8@sha256:1853e6e2b780936a18b11c208b4b39ce094e49d25830c22c5658c27274e5b7fc"
openxchangeCoreUserGuide: openxchangeCoreUserGuide:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -838,7 +839,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "799279"] # upstreamMirrorStartFrom: ["8", "20", "799279"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-user-guide" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-user-guide"
tag: "8.39.1471602@sha256:4a02e72caca3e21c2919960167f28962de7e70161dad6f7916e8d3b8e104768e" tag: "8.40.1510916@sha256:5956c792fecfbed864116bdc10c6fa8c602614cd88452a4f864d26fb9decd3e6"
openxchangeDocumentConverter: openxchangeDocumentConverter:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -848,7 +849,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "50"] # upstreamMirrorStartFrom: ["8", "20", "50"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/documentconverter" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/documentconverter"
tag: "8.39.1842@sha256:a405aface2a9a187c66b2862bc724ee075ebc0209c931abd3478f3cafaf137f7" tag: "8.40.1862@sha256:89c4b2b78d023bd730133e4c494068d476a50248f99f25a26b3173a874356bcd"
openxchangeGotenberg: openxchangeGotenberg:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -878,7 +879,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "50"] # upstreamMirrorStartFrom: ["8", "20", "50"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/imageconverter" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/imageconverter"
tag: "8.39.2122@sha256:d025984017d9a70473a4217bd9b815df08cfa9941137e6f02c024917061313a6" tag: "8.40.2187@sha256:8a018244d6ea8c6fbb2f1bf2fdd56709d7011ee0fb9ba84c81c3300cf7d23802"
openxchangeNextcloudIntegrationUI: openxchangeNextcloudIntegrationUI:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -898,7 +899,7 @@ images:
# upstreamMirrorStartFrom: ["2", "2", "1"] # upstreamMirrorStartFrom: ["2", "2", "1"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/public-sector-ui" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/public-sector-ui"
tag: "2.4.1@sha256:c9f0f5425517e1740aaf9998c5944ce36ce26eda52329754e6b8ac733e2dacc5" tag: "2.5.0@sha256:e7838687b30eb7d4976e9e0c99d23cdc0cc59b1f38d322dc8562905a723218bf"
oxConnector: oxConnector:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -908,7 +909,7 @@ images:
# upstreamMirrorStartFrom: ["0", "4", "2"] # upstreamMirrorStartFrom: ["0", "4", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ox-connector-standalone" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ox-connector-standalone"
tag: "0.27.2@sha256:4753a1d4a01acb7c6946fc9c8596fd328afe0d3c0b3098adfe85cef89fb1b7d7" tag: "0.27.9@sha256:749a59c7ae9eb7882448fce5441bf05aba84ef4ee6d8107e63d22267faa40763"
postfix: postfix:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -1002,19 +1003,19 @@ images:
# providerResponsible: "XWiki" # providerResponsible: "XWiki"
# upstreamRegistry: "https://git.xwikisas.com:5050" # upstreamRegistry: "https://git.xwikisas.com:5050"
# upstreamRepository: "xwikisas/swp/xwiki" # upstreamRepository: "xwikisas/swp/xwiki"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)-mariadb.+$' # upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-mariadb.+$'
# upstreamMirrorStartFrom: ["0", "12"] # upstreamMirrorStartFrom: ["17", "4", "4"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/xwiki" repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/xwiki"
tag: "0.25-mariadb-jetty-alpine@sha256:7175ef5e454b4eb0f6fd6a92a9503d8a680db3ca97b25c3a4eedac9c9bfbcdaf" tag: "17.4.4-mariadb-jetty-alpine@sha256:069dfcc11b7373eb1b30757144adb90cf661386503bece866a0c728ee89bb47d"
xwikiPostgres: xwikiPostgres:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "XWiki" # providerResponsible: "XWiki"
# upstreamRegistry: "https://git.xwikisas.com:5050" # upstreamRegistry: "https://git.xwikisas.com:5050"
# upstreamRepository: "xwikisas/swp/xwiki" # upstreamRepository: "xwikisas/swp/xwiki"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)-postgres.+$' # upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-postgres.+$'
# upstreamMirrorStartFrom: ["0", "23"] # upstreamMirrorStartFrom: ["17", "4", "4"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/xwiki" repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/xwiki"
tag: "0.25-postgres-jetty-alpine@sha256:1bfc57a65f8bc6b059d550791699b5afa33b91db8d4c75ca8f6f3d2299f7c335" tag: "17.4.4-postgres-jetty-alpine@sha256:fd567fe4f499d0a0919ed02558e313284f4475d928f126c6800c2410d2a61d39"
... ...

View File

@@ -293,7 +293,7 @@ resources:
openproject: openproject:
limits: limits:
cpu: 99 cpu: 99
memory: "2Gi" memory: "3Gi"
requests: requests:
cpu: 0.1 cpu: 0.1
memory: "768Mi" memory: "768Mi"

View File

@@ -68,6 +68,7 @@ theme:
notes: notes:
faviconIco: {{ readFile "./../../files/theme/notes/favicon.ico" | b64enc | quote }} faviconIco: {{ readFile "./../../files/theme/notes/favicon.ico" | b64enc | quote }}
faviconPng: {{ readFile "./../../files/theme/notes/favicon.png" | b64enc | quote }}
portal: portal:
faviconIco: {{ readFile "./../../files/theme/portal/favicon/favicon.ico" | b64enc | quote }} faviconIco: {{ readFile "./../../files/theme/portal/favicon/favicon.ico" | b64enc | quote }}
@@ -76,9 +77,9 @@ theme:
appleTouchIcon: {{ readFile "./../../files/theme/portal/favicon/apple-touch-icon.png" | b64enc | quote }} appleTouchIcon: {{ readFile "./../../files/theme/portal/favicon/apple-touch-icon.png" | b64enc | quote }}
webManifestIcon192: {{ readFile "./../../files/theme/portal/favicon/web-app-manifest-192x192.png" | b64enc | quote }} webManifestIcon192: {{ readFile "./../../files/theme/portal/favicon/web-app-manifest-192x192.png" | b64enc | quote }}
webManifestIcon512: {{ readFile "./../../files/theme/portal/favicon/web-app-manifest-512x512.png" | b64enc | quote }} webManifestIcon512: {{ readFile "./../../files/theme/portal/favicon/web-app-manifest-512x512.png" | b64enc | quote }}
waitingSpinnerSvg: {{ readFile "./../../files/theme/portal/waiting-spinner.svg" | b64enc | quote }} waitingSpinnerSvg: {{ readFile "./../../files/theme/portal/waiting-spinner.svg" | b64enc | quote }}
backgroundSvg: {{ readFile "./../../files/theme/portal/background.svg" | b64enc | quote }} backgroundSvg: {{ readFile "./../../files/theme/portal/background.svg" | b64enc | quote }}
portalTiles: portalTiles:
adminAnnouncement: {{ readFile "./../../files/theme/admin_announcements/favicon.svg" | b64enc | quote }} adminAnnouncement: {{ readFile "./../../files/theme/admin_announcements/favicon.svg" | b64enc | quote }}
adminFunctionalmailbox: {{ readFile "./../../files/theme/admin_functionalmailbox/favicon.svg" | b64enc | quote }} adminFunctionalmailbox: {{ readFile "./../../files/theme/admin_functionalmailbox/favicon.svg" | b64enc | quote }}

View File

@@ -94,7 +94,17 @@
--select-arrow: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAYAAADgKtSgAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABkSURBVHgB7Y3BCQAhDAS3BEtICVeCJdi5JVwpGsGHiGLECD4ysL9lBjCMpwk8En6p/kV4XuL9WAeo/sr/gwDHi4JAK47YYBXoxQ6bzALH4lnAa4lHgaQpHgVUxW0g4ILYMC6TAZ0BJA3bxN3RAAAAAElFTkSuQmCC'); --select-arrow: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAYAAADgKtSgAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABkSURBVHgB7Y3BCQAhDAS3BEtICVeCJdi5JVwpGsGHiGLECD4ysL9lBjCMpwk8En6p/kV4XuL9WAeo/sr/gwDHi4JAK47YYBXoxQ6bzALH4lnAa4lHgaQpHgVUxW0g4ILYMC6TAZ0BJA3bxN3RAAAAAElFTkSuQmCC');
--layout-height-header: 63px; --layout-height-header: 63px;
/* Keycloak user screens logo */ /* Keycloak user screens logo */
--login-logo: url("/static-files/login/logo.svg") no-repeat center; --login-logo: url("/opendesk-static-files/login/logo.svg") no-repeat center;
/* Unified topbar feature */
/**
--left-sidenav-close-button-border-radius: 100%;
--waffle-icon-height: 4rem;
--left-sidenavigation-border-radius: 0 1rem 1rem 0;
--left-sidenavigation-close-button-radius: 1rem;
--left-sidenavigation-hover-bg-color: var(--bgc-underlay);
--left-sidenavigation-active-bg-color: #D3D7DE;
--waffle-icon-background-color: #EEEFF2;
*/
} }
button { button {

View File

@@ -22,7 +22,7 @@ migrations:
loglevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }} loglevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }}
failOnUnexpectedState: true failOnUnexpectedState: true
environmentDetails: environmentDetails:
{{ ( omit .Values "theme" ) | toYaml | nindent 4 }} {{ ( omit .Values "theme" "functional" ) | toYaml | nindent 4 }}
cleanup: false cleanup: false
containerSecurityContext: containerSecurityContext:

View File

@@ -22,8 +22,8 @@ name: "openDesk"
platforms: platforms:
- "web" - "web"
developmentStatus: "stable" developmentStatus: "stable"
softwareVersion: "1.7.0" softwareVersion: "1.7.1"
releaseDate: "2025-08-11" releaseDate: "2025-08-26"
softwareType: "standalone/web" softwareType: "standalone/web"
url: "https://gitlab.opencode.de/bmi/opendesk/" url: "https://gitlab.opencode.de/bmi/opendesk/"
logo: ".opencode/openDesk-logo-rgb-color.svg" logo: ".opencode/openDesk-logo-rgb-color.svg"