mirror of
https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk.git
synced 2025-12-06 15:31:38 +01:00
Compare commits
52 Commits
hermann/fe
...
trossner/x
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
da4d258d22 | ||
|
|
62ba5aba49 | ||
|
|
9f762a7c2e | ||
|
|
67fe50e53c | ||
|
|
bd4c997950 | ||
|
|
997c083335 | ||
|
|
688a505ef7 | ||
|
|
d249448794 | ||
|
|
bbbcd6807e | ||
|
|
834c84768a | ||
|
|
410a1ade69 | ||
|
|
9980d50dce | ||
|
|
25ba486ba0 | ||
|
|
a84d440f9f | ||
|
|
f549fdfd19 | ||
|
|
3507c62f83 | ||
|
|
5d01f6023d | ||
|
|
90b22904da | ||
|
|
174d4fc61c | ||
|
|
e35dac087a | ||
|
|
ef8d67f3c1 | ||
|
|
7f17a80597 | ||
|
|
797308f1ec | ||
|
|
39c057904a | ||
|
|
bba9b716a3 | ||
|
|
6fd52b167e | ||
|
|
3106ca793e | ||
|
|
8eaa12e53b | ||
|
|
09f54b4134 | ||
|
|
5537dbbd7c | ||
|
|
9d51e40063 | ||
|
|
489986e906 | ||
|
|
13ab665900 | ||
|
|
0df6212ca9 | ||
|
|
0d8c148062 | ||
|
|
f0057c6417 | ||
|
|
cd000826df | ||
|
|
672e649b60 | ||
|
|
09a0aace45 | ||
|
|
c3dfa2a607 | ||
|
|
31b7ec7827 | ||
|
|
bdc7331cb5 | ||
|
|
e273abbecf | ||
|
|
386dbbf453 | ||
|
|
6e054008a2 | ||
|
|
02318a478a | ||
|
|
b610a8825c | ||
|
|
248213a285 | ||
|
|
879838bbb2 | ||
|
|
1185f4d97a | ||
|
|
573e11f5c5 | ||
|
|
3b9ddab603 |
@@ -385,7 +385,8 @@ db-cleanup:
|
|||||||
"STACKIT")
|
"STACKIT")
|
||||||
# In case of STACKIT resources the db content should just be dropped
|
# In case of STACKIT resources the db content should just be dropped
|
||||||
echo "[psql] [${ENV_DATABASE}] DROP OWNED BY ${PGUSER} in ${POSTGRES_DATABASE} on ${PGHOST}"
|
echo "[psql] [${ENV_DATABASE}] DROP OWNED BY ${PGUSER} in ${POSTGRES_DATABASE} on ${PGHOST}"
|
||||||
psql -c "DROP OWNED BY ${PGUSER}" || true;
|
PGDATABASE=${POSTGRES_DATABASE} # env var PGDATABASE is interpreted by psql
|
||||||
|
psql -c "DROP OWNED BY ${PGUSER};" || true;
|
||||||
;;
|
;;
|
||||||
"RUN")
|
"RUN")
|
||||||
# Usually, e.g. in "RUN" cluster, databases can simply be dropped and recreated
|
# Usually, e.g. in "RUN" cluster, databases can simply be dropped and recreated
|
||||||
@@ -403,7 +404,7 @@ db-cleanup:
|
|||||||
done;
|
done;
|
||||||
# Cleanup Objectstore
|
# Cleanup Objectstore
|
||||||
- |
|
- |
|
||||||
export BUCKETS="migrations nextcloud openproject nubus notes"
|
export BUCKETS="migrations nextcloud openproject nubus notes openxchange dovecot"
|
||||||
export AWS_DEFAULT_REGION=""
|
export AWS_DEFAULT_REGION=""
|
||||||
export AWS_ENDPOINT=""
|
export AWS_ENDPOINT=""
|
||||||
export AWS_ACCESS_KEY_ID=""
|
export AWS_ACCESS_KEY_ID=""
|
||||||
|
|||||||
32
CHANGELOG.md
32
CHANGELOG.md
@@ -1,3 +1,35 @@
|
|||||||
|
# [1.7.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.6.0...v1.7.0) (2025-08-11)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **collabora:** Connect to Collabora Controller websocket via service ([5d01f60](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/5d01f6023d6d300e106cc86dfca09a4ae388f4ca))
|
||||||
|
* **collabora:** Update from 25.04.2 to 25.04.3 ([3507c62](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/3507c62f832556c5d76e7a5b206acbdbcaca37a8))
|
||||||
|
* **helmfile:** Adds default-enterprise-overrides to default values in helmfile-generic ([672e649](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/672e649b608fa03f04834837f13c360a08e8eb6c))
|
||||||
|
* **nextcloud:** Block filesystem-unsafe characters in file and folder names ([0df6212](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/0df6212ca9399d39bedc30c064cbae80c2684e44))
|
||||||
|
* **nextcloud:** Include latest Helm chart version with supports `configuration.sharing.restrictUserEnumerationToGroup` ([c3dfa2a](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/c3dfa2a6075ae388764acbb20bd8282a64183ed3))
|
||||||
|
* **notes:** Set Pod Disruption Budget (PDB) labels ([e35dac0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e35dac087aac54f545d361dee881196b264af906))
|
||||||
|
* **nubus:** Add `livenessProbe` for `nubusUdmListener` to mitigate cases where the listener becomes uninitialized and stops forwarding provisioning data to NATS. Temporary until upstream provides a probe ([ef8d67f](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/ef8d67f3c1525de6f958ac7a8893b4b30ea3f7dc))
|
||||||
|
* **open-xchange:** Disable documents role ([573e11f](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/573e11f5c5103ee5906b0168317054a7e5a22e87))
|
||||||
|
* **open-xchange:** Postfix to support submissions and external secrets ([13ab665](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/13ab6659001abf5b6c683bf6a9309972ef7412b3))
|
||||||
|
* **open-xchange:** Support application specific passwords in groupware when CalDAV/CardDAV support is enabled, see `functional.groupware.davSupport.enabled` for reference ([90b2290](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/90b22904dab0195f505021beb785317f8969ff7d))
|
||||||
|
* **open-xchange:** Use dedicated pod for migration ([6fd52b1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/6fd52b167eeed5c7e9eda2a21b209680131380ee))
|
||||||
|
* **opendesk-certificates:** Update Helm chart to remove default host for `webmail` being set even if OX App Suite is not enabled ([09a0aac](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/09a0aace45227b60e9b39671e747958bd339c8c9))
|
||||||
|
* **opendesk-services:** Update opendesk-alerts from 1.1.1 to 1.1.2, update opendesk-dashboards from 1.1.1 to 1.1.2 ([174d4fc](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/174d4fc61cbb718818015779012fa65353987f3c))
|
||||||
|
* **openproject:** Update from 16.2.0 to 16.2.1 ([bba9b71](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/bba9b716a3fdf915bfc2925f1c27fe91494edcb0))
|
||||||
|
* **ox-connector:** Update OX Connector and OX Extension to v0.27.2; review `migrations.md` for required upgrade steps ([9d51e40](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/9d51e40063d73226fc8a25365cbfa92ff09f0910))
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **nextcloud:** Enhance theming options for Nextcloud ([bdc7331](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/bdc7331cb59da96941c3250625af3cb5f9b12e15))
|
||||||
|
* **notes:** Switch to new Helm chart with support for self-signed deployments; review `migrations.md` for required upgrade steps ([3106ca7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/3106ca793ee1e0021f7c03e620873c49adb54199))
|
||||||
|
* **nubus:** Allow configuration of limits for password reset requests via `security.passwordResetLimits` ([09f54b4](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/09f54b41347ff5c90064c8d4c2c6a9db7f05d54c))
|
||||||
|
* **nubus:** Update from 1.11.2 to 1.12.0 ([5537dbb](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/5537dbbd7cb93dcb2aeafe9017c68a89d2e19293))
|
||||||
|
* **open-xchange:** Update from 8.38 to 8.39 ([489986e](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/489986e906e828f3877e7a9087541f10c5bbfe8c))
|
||||||
|
* **open-xchange:** Use internal endpoint for provisioning and support for optionally spinning up a dedicated internal Pod just for provisioning (see `technial.oxAppSuite.provisioning.dedicatedCoreMwPod` for details) ([31b7ec7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/31b7ec78274e5a901b51aaaeed01e6ac82298b73))
|
||||||
|
* **openproject:** Update from 16.1.1 to 16.2.0 ([e273abb](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e273abbecf58b098e76c49e1763b4c3074bf5cec))
|
||||||
|
|
||||||
# [1.6.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.5.0...v1.6.0) (2025-07-14)
|
# [1.6.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.5.0...v1.6.0) (2025-07-14)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,9 +41,9 @@ openDesk currently features the following functional main components:
|
|||||||
| 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.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/) |
|
||||||
| 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 | [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) |
|
||||||
| 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.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) |
|
||||||
| Project management | OpenProject | GPL-3.0-only | [16.2.0](https://www.openproject.org/docs/release-notes/16-2-0/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
|
| 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/) |
|
||||||
| 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.2](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.3](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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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,14 +60,14 @@ 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.
|
||||||
|
|
||||||
openCode provides some boundaries when it comes to open source license compliance openDesk has to adhere to:
|
openCode provides some boundaries when it comes to open source license compliance openDesk has to adhere to:
|
||||||
|
|
||||||
- The components must be published under a license listed in the [openCode license allow list](https://wikijs.opencode.de/de/Hilfestellungen_und_Richtlinien/Lizenzcompliance#h-2-open-source-lizenzliste).
|
- The components must be published under a license listed in the [openCode license allow list](https://opencode.de/de/wissen/rechtssichere-nutzung/open-source-lizenzen).
|
||||||
- Delivered artifacts (container images) must contain only components licensed under the aforementioned allow list. A container must not contain any artifact using a license from the [openCode license block list](https://wikijs.opencode.de/de/Hilfestellungen_und_Richtlinien/Lizenzcompliance#h-3-negativliste-aller-nicht-freigegebenen-lizenzen).
|
- Delivered artifacts (container images) must contain only components licensed under the aforementioned allow list. A container must not contain any artifact using a license from the [openCode license block list](https://opencode.de/de/wissen/rechtssichere-nutzung/open-source-lizenzen#3.-Negativliste-aller-nicht-freigegebenen-Lizenzen).
|
||||||
|
|
||||||
Deviations from the above requirements must be documented in the openDesk license deviation report.
|
Deviations from the above requirements must be documented in the openDesk license deviation report.
|
||||||
|
|
||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ SPDX-License-Identifier: Apache-2.0
|
|||||||
* [Manual checks/actions](#manual-checksactions)
|
* [Manual checks/actions](#manual-checksactions)
|
||||||
* [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)
|
||||||
* [Replace Helm chart: New Notes Helm chart with support for self-signed deployments](#replace-helm-chart-new-notes-helm-chart-with-support-for-self-signed-deployments)
|
* [Replace Helm chart: New Notes Helm chart with support for self-signed deployments](#replace-helm-chart-new-notes-helm-chart-with-support-for-self-signed-deployments)
|
||||||
* [Post-upgrade to v1.7.0+](#post-upgrade-to-v170)
|
* [Post-upgrade to v1.7.0+](#post-upgrade-to-v170)
|
||||||
* [Upstream fix: Provisioning of functional mailboxes](#upstream-fix-provisioning-of-functional-mailboxes)
|
* [Upstream fix: Provisioning of functional mailboxes](#upstream-fix-provisioning-of-functional-mailboxes)
|
||||||
@@ -128,6 +129,16 @@ If you would like more details about the automated migrations, please read secti
|
|||||||
|
|
||||||
### Pre-upgrade to v1.7.0+
|
### Pre-upgrade to v1.7.0+
|
||||||
|
|
||||||
|
### 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`
|
||||||
|
|
||||||
|
Previously, the default values referenced in `helmfile_generic.yaml.gotmpl` did not include the necessary Enterprise overrides from `helmfile/environment/default-ee-overrides/`.
|
||||||
|
|
||||||
|
As a result, when deploying openDesk Enterprise Edition from the project root, the correct Enterprise charts and images for Collabora, Nextcloud, OpenXchange, and Dovecot were not applied. This issue does not affect deployments started at the component level (e.g., `helmfile/apps/collabora`).
|
||||||
|
|
||||||
|
Please verify that your deployment uses the correct Enterprise charts and images. If not, migrate to the Enterprise versions before upgrading to openDesk EE v1.7.0.
|
||||||
|
|
||||||
#### Replace Helm chart: New Notes Helm chart with support for self-signed deployments
|
#### Replace Helm chart: New Notes Helm chart with support for self-signed deployments
|
||||||
|
|
||||||
**Target group:** All deployments that set `app.notes.enabled: true` (default is `false`).
|
**Target group:** All deployments that set `app.notes.enabled: true` (default is `false`).
|
||||||
|
|||||||
@@ -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/).
|
||||||
|
|
||||||
|
|||||||
@@ -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% backward‑compatible. 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% backward‑compatible. 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, non‑binding migration hints are collected in `migrations.md`
|
- Additional, non‑binding 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 |
|
||||||
| **Account‑Manager Mail / Ticket** | Enterprise customers | Targeted information & upgrade advice | Customer Success |
|
| **Account‑Manager 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
|
||||||
|
|||||||
@@ -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 | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes |
|
| **notes**/impress/backend | :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 | 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/yProvider | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes |
|
| **notes**/impress/y-provider | :x: | n/a | n/a | n/a | n/a | n/a | n/a | n/a | no |
|
||||||
| **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 |
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,9 @@ imagePullSecrets:
|
|||||||
ingress:
|
ingress:
|
||||||
enabled: {{ .Values.ingress.enabled }}
|
enabled: {{ .Values.ingress.enabled }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ .Values.annotations.coco.ingress | toYaml | nindent 4 }}
|
{{- with .Values.annotations.coco.ingress }}
|
||||||
|
{{ . | toYaml | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
className: {{ .Values.ingress.ingressClassName | quote }}
|
className: {{ .Values.ingress.ingressClassName | quote }}
|
||||||
hosts:
|
hosts:
|
||||||
- host: "{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}"
|
- host: "{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}"
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ collabora:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.apps.collaboraController.enabled }}
|
{{- if .Values.apps.collaboraController.enabled }}
|
||||||
--o:indirection_endpoint.url=https://{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}/controller/routeToken
|
--o:indirection_endpoint.url=https://{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}/controller/routeToken
|
||||||
--o:monitors.monitor[0]=wss://{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}/controller/ws
|
--o:monitors.monitor[0]=ws://collabora-controller-cool-controller:9000/controller/ws
|
||||||
--o:monitors.monitor[0][@retryInterval]=5
|
--o:monitors.monitor[0][@retryInterval]=5
|
||||||
{{- end }}
|
{{- end }}
|
||||||
username: "collabora-internal-admin"
|
username: "collabora-internal-admin"
|
||||||
@@ -77,8 +77,8 @@ ingress:
|
|||||||
# HAProxy
|
# HAProxy
|
||||||
haproxy.org/timeout-tunnel: "{{ .Values.ingress.parameters.bodyTimeout.collabora }}s"
|
haproxy.org/timeout-tunnel: "{{ .Values.ingress.parameters.bodyTimeout.collabora }}s"
|
||||||
haproxy.org/backend-config-snippet: |
|
haproxy.org/backend-config-snippet: |
|
||||||
balance url_param WOPISrc check_post
|
balance url_param WOPISrc check_post
|
||||||
hash-type consistent
|
hash-type consistent
|
||||||
# HAProxy - Community: https://haproxy-ingress.github.io/
|
# HAProxy - Community: https://haproxy-ingress.github.io/
|
||||||
haproxy-ingress.github.io/timeout-tunnel: "{{ .Values.ingress.parameters.bodyTimeout.collabora }}s"
|
haproxy-ingress.github.io/timeout-tunnel: "{{ .Values.ingress.parameters.bodyTimeout.collabora }}s"
|
||||||
haproxy-ingress.github.io/balance-algorithm: "url_param WOPISrc check_post"
|
haproxy-ingress.github.io/balance-algorithm: "url_param WOPISrc check_post"
|
||||||
@@ -89,9 +89,9 @@ ingress:
|
|||||||
acl admin_url path_beg /cool/adminws/
|
acl admin_url path_beg /cool/adminws/
|
||||||
acl admin_url path_beg /browser/dist/admin/admin.html
|
acl admin_url path_beg /browser/dist/admin/admin.html
|
||||||
http-request deny if admin_url
|
http-request deny if admin_url
|
||||||
{{- with .Values.annotations.collabora.ingress }}
|
{{- with .Values.annotations.collabora.ingress }}
|
||||||
{{ . | toYaml | nindent 4 }}
|
{{ . | toYaml | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
enabled: {{ .Values.ingress.enabled }}
|
enabled: {{ .Values.ingress.enabled }}
|
||||||
className: {{ .Values.ingress.ingressClassName | quote }}
|
className: {{ .Values.ingress.ingressClassName | quote }}
|
||||||
hosts:
|
hosts:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -322,7 +322,7 @@ patchJVB:
|
|||||||
{{ .Values.seLinuxOptions.jitsiPatchJVB | toYaml | nindent 6 }}
|
{{ .Values.seLinuxOptions.jitsiPatchJVB | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.jitsiPatchJVB.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.jitsiPatchJVB.registry | quote }}
|
||||||
repository: {{ .Values.images.jitsiPatchJVB.repository | quote }}
|
repository: {{ .Values.images.jitsiPatchJVB.repository | quote }}
|
||||||
tag: {{ .Values.images.jitsiPatchJVB.tag | quote }}
|
tag: {{ .Values.images.jitsiPatchJVB.tag | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -161,7 +161,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
|
||||||
|
|
||||||
|
|||||||
@@ -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 }}
|
||||||
|
|||||||
@@ -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 }}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ image:
|
|||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|
||||||
imageInitCassandra:
|
imageInitCassandra:
|
||||||
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.cassandra.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.cassandra.registry | quote }}
|
||||||
repository: {{ .Values.images.cassandra.repository | quote }}
|
repository: {{ .Values.images.cassandra.repository | quote }}
|
||||||
tag: {{ .Values.images.cassandra.tag | quote }}
|
tag: {{ .Values.images.cassandra.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -377,6 +377,9 @@ appsuite:
|
|||||||
open-xchange-admin-soap-usercopy: "disabled"
|
open-xchange-admin-soap-usercopy: "disabled"
|
||||||
open-xchange-admin-user-copy: "disabled"
|
open-xchange-admin-user-copy: "disabled"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.functional.groupware.davSupport.enabled }}
|
||||||
|
open-xchange-authentication-application-storage-rdb: "enabled"
|
||||||
|
{{- end }}
|
||||||
properties:
|
properties:
|
||||||
com.openexchange.hostname: {{ printf "%s.%s" .Values.global.hosts.openxchange .Values.global.domain }}
|
com.openexchange.hostname: {{ printf "%s.%s" .Values.global.hosts.openxchange .Values.global.domain }}
|
||||||
com.openexchange.UIWebPath: "/appsuite/"
|
com.openexchange.UIWebPath: "/appsuite/"
|
||||||
@@ -499,6 +502,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>\""
|
||||||
@@ -509,6 +515,12 @@ appsuite:
|
|||||||
com.openexchange.net.ssl.custom.truststore.path: "/etc/ssl/certs/truststore.jks"
|
com.openexchange.net.ssl.custom.truststore.path: "/etc/ssl/certs/truststore.jks"
|
||||||
com.openexchange.net.ssl.custom.truststore.password: {{ .Values.secrets.certificates.password | quote }}
|
com.openexchange.net.ssl.custom.truststore.password: {{ .Values.secrets.certificates.password | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.functional.groupware.davSupport.enabled }}
|
||||||
|
com.openexchange.authentication.application.appTypes: "caldav,carddav"
|
||||||
|
com.openexchange.authentication.application.enabled: "true"
|
||||||
|
com.openexchange.authentication.application.storage.rdb.loginNameSource: "mail"
|
||||||
|
com.openexchange.authentication.application.storage.rdb.contextLookupNamePart: "full"
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.certificate.selfSigned }}
|
{{- if .Values.certificate.selfSigned }}
|
||||||
extraEnv:
|
extraEnv:
|
||||||
- name: "JAVA_OPTS_APPEND"
|
- name: "JAVA_OPTS_APPEND"
|
||||||
@@ -536,13 +548,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 }}
|
||||||
@@ -562,6 +567,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 }}/"
|
||||||
@@ -601,6 +620,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)
|
||||||
@@ -641,6 +662,20 @@ appsuite:
|
|||||||
initContainer:
|
initContainer:
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.openxchangeCoreMW | toYaml | nindent 8 }}
|
{{ .Values.resources.openxchangeCoreMW | toYaml | nindent 8 }}
|
||||||
|
{{- if .Values.functional.groupware.davSupport.enabled }}
|
||||||
|
yamlFiles:
|
||||||
|
app-password-apps.yml:
|
||||||
|
caldav:
|
||||||
|
displayName_t10e: "Calendar Client (CalDAV)"
|
||||||
|
restrictedScopes: [dav,read_caldav,write_caldav]
|
||||||
|
requiredCapabilities: [caldav]
|
||||||
|
sortOrder: 30
|
||||||
|
carddav:
|
||||||
|
displayName_t10e: "Addressbook Client (CardDAV)"
|
||||||
|
restrictedScopes: [dav,read_carddav,write_carddav]
|
||||||
|
requiredCapabilities: [carddav]
|
||||||
|
sortOrder: 40
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
core-ui:
|
core-ui:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
# SPDX-FileCopyrightText: 2024-2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
---
|
---
|
||||||
additionalAnnotations:
|
additionalAnnotations:
|
||||||
@@ -7,44 +7,5 @@ additionalLabels:
|
|||||||
{{ .Values.monitoring.prometheus.prometheusRules.labels | toYaml | nindent 2 }}
|
{{ .Values.monitoring.prometheus.prometheusRules.labels | toYaml | nindent 2 }}
|
||||||
|
|
||||||
config:
|
config:
|
||||||
collabora:
|
{{ .Values.apps | toYaml | nindent 2 }}
|
||||||
enable: {{ .Values.apps.collabora.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.collabora.namespace | quote }}
|
|
||||||
matrix:
|
|
||||||
enable: {{ .Values.apps.element.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.element.namespace | quote }}
|
|
||||||
diagrams:
|
|
||||||
enable: {{ .Values.apps.cryptpad.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.cryptpad.namespace | quote }}
|
|
||||||
nextcloud:
|
|
||||||
enable: {{ .Values.apps.nextcloud.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.nextcloud.namespace | quote }}
|
|
||||||
openXChange:
|
|
||||||
enable: {{ .Values.apps.oxAppSuite.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.oxAppSuite.namespace | quote }}
|
|
||||||
xwiki:
|
|
||||||
enable: {{ .Values.apps.xwiki.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.xwiki.namespace | quote }}
|
|
||||||
nubus:
|
|
||||||
enable: {{ .Values.apps.nubus.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.nubus.namespace | quote }}
|
|
||||||
openProject:
|
|
||||||
enable: {{ .Values.apps.openproject.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.openproject.namespace | quote }}
|
|
||||||
jitsi:
|
|
||||||
enable: {{ .Values.apps.jitsi.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.jitsi.namespace | quote }}
|
|
||||||
collabora:
|
|
||||||
enable: {{ .Values.apps.collabora.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.collabora.namespace | quote }}
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
# SPDX-FileCopyrightText: 2024-2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
---
|
---
|
||||||
@@ -8,45 +8,5 @@ additionalLabels:
|
|||||||
{{ .Values.monitoring.grafana.dashboards.labels | toYaml | nindent 2 }}
|
{{ .Values.monitoring.grafana.dashboards.labels | toYaml | nindent 2 }}
|
||||||
|
|
||||||
config:
|
config:
|
||||||
apps:
|
{{ .Values.apps | toYaml | nindent 2 }}
|
||||||
collabora:
|
|
||||||
enable: {{ .Values.apps.collabora.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.collabora.namespace | quote }}
|
|
||||||
matrixElement:
|
|
||||||
enable: {{ .Values.apps.element.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.element.namespace | quote }}
|
|
||||||
diagrams:
|
|
||||||
enable: {{ .Values.apps.cryptpad.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.cryptpad.namespace | quote }}
|
|
||||||
nextcloud:
|
|
||||||
enable: {{ .Values.apps.nextcloud.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.nextcloud.namespace | quote }}
|
|
||||||
openxchange:
|
|
||||||
enable: {{ .Values.apps.oxAppSuite.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.oxAppSuite.namespace | quote }}
|
|
||||||
xwiki:
|
|
||||||
enable: {{ .Values.apps.xwiki.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.xwiki.namespace | quote }}
|
|
||||||
nubus:
|
|
||||||
enable: {{ .Values.apps.nubus.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.nubus.namespace | quote }}
|
|
||||||
openproject:
|
|
||||||
enable: {{ .Values.apps.openproject.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.openproject.namespace | quote }}
|
|
||||||
jitsi:
|
|
||||||
enable: {{ .Values.apps.jitsi.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.jitsi.namespace | quote }}
|
|
||||||
collabora:
|
|
||||||
enable: {{ .Values.apps.collabora.enabled }}
|
|
||||||
selectors:
|
|
||||||
namespace: {{ .Values.apps.collabora.namespace | quote }}
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -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 }}/"
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ global:
|
|||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.cassandra.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.cassandra.registry | quote }}
|
||||||
repository: {{ .Values.images.cassandra.repository | quote }}
|
repository: {{ .Values.images.cassandra.repository | quote }}
|
||||||
tag: {{ .Values.images.cassandra.tag | quote }}
|
tag: {{ .Values.images.cassandra.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -62,7 +62,7 @@ livenessProbe:
|
|||||||
metrics:
|
metrics:
|
||||||
enabled: false
|
enabled: false
|
||||||
image:
|
image:
|
||||||
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.cassandraExporter.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.cassandraExporter.registry | quote }}
|
||||||
repository: {{ .Values.images.cassandraExporter.repository | quote }}
|
repository: {{ .Values.images.cassandraExporter.repository | quote }}
|
||||||
tag: {{ .Values.images.cassandraExporter.tag | quote }}
|
tag: {{ .Values.images.cassandraExporter.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ global:
|
|||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.memcached.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.memcached.registry | quote }}
|
||||||
repository: {{ .Values.images.memcached.repository | quote }}
|
repository: {{ .Values.images.memcached.repository | quote }}
|
||||||
tag: {{ .Values.images.memcached.tag | quote }}
|
tag: {{ .Values.images.memcached.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ global:
|
|||||||
allowInsecureImages: true
|
allowInsecureImages: true
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.minio.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.minio.registry | quote }}
|
||||||
repository: {{ .Values.images.minio.repository | quote }}
|
repository: {{ .Values.images.minio.repository | quote }}
|
||||||
tag: {{ .Values.images.minio.tag | quote }}
|
tag: {{ .Values.images.minio.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -54,7 +54,7 @@ image:
|
|||||||
volumePermissions:
|
volumePermissions:
|
||||||
enabled: true
|
enabled: true
|
||||||
image:
|
image:
|
||||||
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.minio.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.minio.registry | quote }}
|
||||||
repository: {{ .Values.images.bitnamiOSShell.repository | quote }}
|
repository: {{ .Values.images.bitnamiOSShell.repository | quote }}
|
||||||
tag: {{ .Values.images.bitnamiOSShell.tag | quote }}
|
tag: {{ .Values.images.bitnamiOSShell.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ global:
|
|||||||
storageClass: {{ coalesce .Values.persistence.storages.redis.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
|
storageClass: {{ coalesce .Values.persistence.storages.redis.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.redis.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.redis.registry | quote }}
|
||||||
repository: {{ .Values.images.redis.repository | quote }}
|
repository: {{ .Values.images.redis.repository | quote }}
|
||||||
tag: {{ .Values.images.redis.tag | quote }}
|
tag: {{ .Values.images.redis.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
# SPDX-FileCopyrightText: 2024-2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
---
|
---
|
||||||
@@ -6,17 +6,11 @@ commonAnnotations:
|
|||||||
{{ .Values.annotations.xwiki.common | toYaml | nindent 2 }}
|
{{ .Values.annotations.xwiki.common | toYaml | nindent 2 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
{{- if eq .Values.databases.xwiki.type "mariadb" }}
|
name: "{{ .Values.images.xwiki.registry }}/{{ .Values.images.xwiki.repository }}"
|
||||||
name: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.xwikiMariadb.registry }}/{{ .Values.images.xwikiMariadb.repository }}"
|
tag: {{ .Values.images.xwiki.tag | quote }}
|
||||||
tag: {{ .Values.images.xwikiMariadb.tag | quote }}
|
|
||||||
{{- else if eq .Values.databases.xwiki.type "postgresql" }}
|
|
||||||
name: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.xwikiPostgres.registry }}/{{ .Values.images.xwikiPostgres.repository }}"
|
|
||||||
tag: {{ .Values.images.xwikiPostgres.tag | quote }}
|
|
||||||
{{- else }}
|
|
||||||
{{- fail "Unsupported value for .Values.databases.xwiki.type, supported values are 'mariadb' or 'postgresql'" }}
|
|
||||||
{{- 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 }}
|
||||||
@@ -171,7 +165,7 @@ properties:
|
|||||||
# 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 }}"
|
||||||
## 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"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ 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.7"
|
||||||
verify: true
|
verify: true
|
||||||
oxAppSuite:
|
oxAppSuite:
|
||||||
registry: "registry.opencode.de"
|
registry: "registry.opencode.de"
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ 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.2.3.1@sha256:b6dbe27d7242488dfdb400219abbc6c97fb83df029975e1127f52abc8444475e"
|
tag: "25.04.3.4.1@sha256:929ce210bb1ff46275af64e94ce02ab0a0470572eba8251ad35b8b4296c3a171"
|
||||||
|
|
||||||
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"
|
||||||
@@ -13,7 +14,7 @@ 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: "31.0.6@sha256:cf893f2a7e1613a8c7641651c8a459f321c8bbbd234071b89f5638163ada00ef"
|
||||||
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"
|
||||||
|
|||||||
@@ -134,6 +134,7 @@ annotations:
|
|||||||
pod: ~
|
pod: ~
|
||||||
service: ~
|
service: ~
|
||||||
notesFrontend:
|
notesFrontend:
|
||||||
|
ingress: ~
|
||||||
ingressMedia: ~
|
ingressMedia: ~
|
||||||
pod: ~
|
pod: ~
|
||||||
service: ~
|
service: ~
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ charts:
|
|||||||
registry: "registry.opencode.de"
|
registry: "registry.opencode.de"
|
||||||
repository: "bmi/opendesk/components/supplier/collabora/charts-mirror"
|
repository: "bmi/opendesk/components/supplier/collabora/charts-mirror"
|
||||||
name: "collabora-online"
|
name: "collabora-online"
|
||||||
version: "1.1.41"
|
version: "1.1.45"
|
||||||
verify: true
|
verify: true
|
||||||
collaboraController:
|
collaboraController:
|
||||||
# Enterprise Component
|
# Enterprise Component
|
||||||
@@ -84,8 +84,6 @@ charts:
|
|||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
# upstreamRegistry: "https://registry.opencode.de"
|
# upstreamRegistry: "https://registry.opencode.de"
|
||||||
# upstreamRepository: "bmi/opendesk/components/platform-development/charts/opendesk-dkimpy-milter/opendesk-dkimpy-milter"
|
# upstreamRepository: "bmi/opendesk/components/platform-development/charts/opendesk-dkimpy-milter/opendesk-dkimpy-milter"
|
||||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
|
||||||
# upstreamMirrorStartFrom: ["1", "0", "0"]
|
|
||||||
registry: "registry.opencode.de"
|
registry: "registry.opencode.de"
|
||||||
repository: "bmi/opendesk/components/platform-development/charts/opendesk-dkimpy-milter"
|
repository: "bmi/opendesk/components/platform-development/charts/opendesk-dkimpy-milter"
|
||||||
name: "opendesk-dkimpy-milter"
|
name: "opendesk-dkimpy-milter"
|
||||||
@@ -99,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"
|
||||||
@@ -119,7 +117,7 @@ charts:
|
|||||||
registry: "registry.opencode.de"
|
registry: "registry.opencode.de"
|
||||||
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
|
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
|
||||||
name: "opendesk-well-known"
|
name: "opendesk-well-known"
|
||||||
version: "6.1.4"
|
version: "6.1.3"
|
||||||
verify: true
|
verify: true
|
||||||
home:
|
home:
|
||||||
# providerCategory: "Platform"
|
# providerCategory: "Platform"
|
||||||
@@ -129,7 +127,7 @@ charts:
|
|||||||
registry: "registry.opencode.de"
|
registry: "registry.opencode.de"
|
||||||
repository: "bmi/opendesk/components/platform-development/charts/opendesk-home"
|
repository: "bmi/opendesk/components/platform-development/charts/opendesk-home"
|
||||||
name: "opendesk-home"
|
name: "opendesk-home"
|
||||||
version: "1.1.0"
|
version: "1.0.2"
|
||||||
verify: true
|
verify: true
|
||||||
intercomService:
|
intercomService:
|
||||||
# providerCategory: "Supplier"
|
# providerCategory: "Supplier"
|
||||||
@@ -301,7 +299,7 @@ charts:
|
|||||||
registry: "registry.opencode.de"
|
registry: "registry.opencode.de"
|
||||||
repository: "bmi/opendesk/components/platform-development/charts/opendesk-impress"
|
repository: "bmi/opendesk/components/platform-development/charts/opendesk-impress"
|
||||||
name: "impress"
|
name: "impress"
|
||||||
version: "1.0.0"
|
version: "1.0.1"
|
||||||
verify: true
|
verify: true
|
||||||
nubus:
|
nubus:
|
||||||
# providerCategory: "Supplier"
|
# providerCategory: "Supplier"
|
||||||
@@ -323,7 +321,7 @@ charts:
|
|||||||
registry: "registry.opencode.de"
|
registry: "registry.opencode.de"
|
||||||
repository: "bmi/opendesk/components/platform-development/charts/opendesk-alerts"
|
repository: "bmi/opendesk/components/platform-development/charts/opendesk-alerts"
|
||||||
name: "opendesk-alerts"
|
name: "opendesk-alerts"
|
||||||
version: "1.1.1"
|
version: "1.1.2"
|
||||||
verify: true
|
verify: true
|
||||||
opendeskDashboards:
|
opendeskDashboards:
|
||||||
# providerCategory: "Platform"
|
# providerCategory: "Platform"
|
||||||
@@ -333,7 +331,7 @@ charts:
|
|||||||
registry: "registry.opencode.de"
|
registry: "registry.opencode.de"
|
||||||
repository: "bmi/opendesk/components/platform-development/charts/opendesk-dashboards"
|
repository: "bmi/opendesk/components/platform-development/charts/opendesk-dashboards"
|
||||||
name: "opendesk-dashboards"
|
name: "opendesk-dashboards"
|
||||||
version: "1.1.1"
|
version: "1.1.2"
|
||||||
verify: true
|
verify: true
|
||||||
opendeskKeycloakBootstrap:
|
opendeskKeycloakBootstrap:
|
||||||
# providerCategory: "Platform"
|
# providerCategory: "Platform"
|
||||||
@@ -353,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.2"
|
version: "4.0.1"
|
||||||
verify: true
|
verify: true
|
||||||
openproject:
|
openproject:
|
||||||
# providerCategory: "Supplier"
|
# providerCategory: "Supplier"
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ functional:
|
|||||||
|
|
||||||
filestore:
|
filestore:
|
||||||
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,6 +152,11 @@ 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:
|
||||||
|
|||||||
@@ -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: []
|
||||||
|
|||||||
@@ -10,25 +10,31 @@ images:
|
|||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
# upstreamRegistry: "https://registry-1.docker.io"
|
# upstreamRegistry: "https://registry-1.docker.io"
|
||||||
# upstreamRepository: "bitnami/os-shell"
|
# upstreamRepository: "bitnami/os-shell"
|
||||||
registry: "registry-1.docker.io"
|
# upstreamMirrorTagFilterRegEx: '^(\d+)-debian-(\d+)-r(\d+)$'
|
||||||
repository: "bitnami/os-shell"
|
# upstreamMirrorStartFrom: ["12", "12", "44"]
|
||||||
tag: "12-debian-12-r44@sha256:6388c7c27a09472906e2f2094410c9ffdadf23b4b242293ce023d0314ec10920"
|
registry: "registry.opencode.de"
|
||||||
|
repository: "bmi/opendesk/components/community/images-mirror/os-shell"
|
||||||
|
tag: "12-debian-12-r44@sha256:e0eab38c4e2e2ebfc9043bc9bc482109ec5cca3123154c1af8e040ea23c5ce98"
|
||||||
cassandra:
|
cassandra:
|
||||||
# providerCategory: "Community"
|
# providerCategory: "Community"
|
||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
# upstreamRegistry: "https://registry-1.docker.io"
|
# upstreamRegistry: "https://registry-1.docker.io"
|
||||||
# upstreamRepository: "bitnami/cassandra"
|
# upstreamRepository: "bitnami/cassandra"
|
||||||
registry: "registry-1.docker.io"
|
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-debian-(\d+)-r(\d+)$'
|
||||||
repository: "bitnami/cassandra"
|
# upstreamMirrorStartFrom: ["5", "0", "4", "12", "4"]
|
||||||
tag: "5.0.4-debian-12-r4@sha256:9d909ebe10802dae2fb99ef7c8e9e0dbc496c8d30366e2f7abbe0713b945fa7d"
|
registry: "registry.opencode.de"
|
||||||
|
repository: "bmi/opendesk/components/community/images-mirror/cassandra"
|
||||||
|
tag: "5.0.4-debian-12-r4@sha256:93be59e318070e5c1d515c2b5840e9e07babfbac845b2c9bcc1cdf8efda6bb18"
|
||||||
cassandraExporter:
|
cassandraExporter:
|
||||||
# providerCategory: "Community"
|
# providerCategory: "Community"
|
||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
# upstreamRegistry: "https://registry-1.docker.io"
|
# upstreamRegistry: "https://registry-1.docker.io"
|
||||||
# upstreamRepository: "bitnami/cassandra-exporter"
|
# upstreamRepository: "bitnami/cassandra-exporter"
|
||||||
registry: "registry-1.docker.io"
|
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-debian-(\d+)-r(\d+)$'
|
||||||
repository: "bitnami/cassandra-exporter"
|
# upstreamMirrorStartFrom: ["2", "3", "8", "12", "46"]
|
||||||
tag: "2.3.8-debian-12-r46@sha256:e44c65f08d85153041f68bcf180f948341d74018eef8b56e8869ed87fdfd34f0"
|
registry: "registry.opencode.de"
|
||||||
|
repository: "bmi/opendesk/components/community/images-mirror/cassandra-exporter"
|
||||||
|
tag: "2.3.8-debian-12-r46@sha256:3b460a6287f24ef96626439825c9e3fa822784d802209f38c7541d8289eb51d8"
|
||||||
clamd:
|
clamd:
|
||||||
# providerCategory: "Community"
|
# providerCategory: "Community"
|
||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
@@ -44,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.2.2.1@sha256:03ec7f7740c5030eeb4f642c41fa0b9989d7a0dab81435a86b5c82479d0f78e2"
|
tag: "25.04.3.2.1@sha256:e2940b19d855bf6e557c445aaf5b2b7db978af9aeae7e6400bfcc99411dd8bb9"
|
||||||
collaboraController:
|
collaboraController:
|
||||||
# Enterprise Component
|
# Enterprise Component
|
||||||
# providerCategory: "Supplier"
|
# providerCategory: "Supplier"
|
||||||
@@ -210,8 +216,10 @@ images:
|
|||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
# upstreamRegistry: "https://registry-1.docker.io"
|
# upstreamRegistry: "https://registry-1.docker.io"
|
||||||
# upstreamRepository: "bitnami/kubectl"
|
# upstreamRepository: "bitnami/kubectl"
|
||||||
registry: "registry-1.docker.io"
|
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||||
repository: "bitnami/kubectl"
|
# upstreamMirrorStartFrom: ["1", "32", "0"]
|
||||||
|
registry: "registry.opencode.de"
|
||||||
|
repository: "bmi/opendesk/components/community/images-mirror/kubectl"
|
||||||
tag: "1.32.0@sha256:48c81b7aaf4fabf2733a0b888960f6982181fbcd2c3f8dfcebc4a1a065631162"
|
tag: "1.32.0@sha256:48c81b7aaf4fabf2733a0b888960f6982181fbcd2c3f8dfcebc4a1a065631162"
|
||||||
jvb:
|
jvb:
|
||||||
# providerCategory: "Supplier"
|
# providerCategory: "Supplier"
|
||||||
@@ -286,9 +294,11 @@ images:
|
|||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
# upstreamRegistry: "https://registry-1.docker.io"
|
# upstreamRegistry: "https://registry-1.docker.io"
|
||||||
# upstreamRepository: "bitnami/memcached"
|
# upstreamRepository: "bitnami/memcached"
|
||||||
registry: "registry-1.docker.io"
|
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-debian-(\d+)-r(\d+)$'
|
||||||
repository: "bitnami/memcached"
|
# upstreamMirrorStartFrom: ["1", "6", "38", "12", "3"]
|
||||||
tag: "1.6.38-debian-12-r3@sha256:3e548fba727578be9d996262471f5f3e07726d625702d26743a5e0f34684cb21"
|
registry: "registry.opencode.de"
|
||||||
|
repository: "bmi/opendesk/components/community/images-mirror/memcached"
|
||||||
|
tag: "1.6.38-debian-12-r3@sha256:ea35c7d38b5e080a900991220323e31539b2877069d8aa4dc6814fe384e3c0da"
|
||||||
migrations:
|
migrations:
|
||||||
# providerCategory: "Platform"
|
# providerCategory: "Platform"
|
||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
@@ -310,9 +320,11 @@ images:
|
|||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
# upstreamRegistry: "https://registry-1.docker.io"
|
# upstreamRegistry: "https://registry-1.docker.io"
|
||||||
# upstreamRepository: "bitnami/minio"
|
# upstreamRepository: "bitnami/minio"
|
||||||
registry: "registry-1.docker.io"
|
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-debian-(\d+)-r(\d+)$'
|
||||||
repository: "bitnami/minio"
|
# upstreamMirrorStartFrom: ["2025", "4", "22", "12", "1"]
|
||||||
tag: "2025.4.22-debian-12-r1@sha256:d7cd0e172c4cc0870f4bdc3142018e2a37be9acf04d68f386600daad427e0cab"
|
registry: "registry.opencode.de"
|
||||||
|
repository: "bmi/opendesk/components/community/images-mirror/minio"
|
||||||
|
tag: "2025.4.22-debian-12-r1@sha256:b5c26fa4a2cc2abffe096a54d9e7fd3976d72e38bd2186338b1a06d66c63e651"
|
||||||
nextcloud:
|
nextcloud:
|
||||||
# providerCategory: "Platform"
|
# providerCategory: "Platform"
|
||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
@@ -320,7 +332,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: "31.0.6@sha256:0fc39982b568383b531e7b5864c421725085bb70787a44cb30e401d6face8efa"
|
||||||
nextcloudExporter:
|
nextcloudExporter:
|
||||||
# providerCategory: "Platform"
|
# providerCategory: "Platform"
|
||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
@@ -752,7 +764,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.0@sha256:e4d50068411a7d5afbaf245211df9b7d18f622fed4b6c3c634bc7f88a3149419"
|
tag: "16.2.1@sha256:4b0c0589ad21b727cf4a7c896f8f446607319ac3ff476855f7576b5eb1173cff"
|
||||||
openprojectBootstrap:
|
openprojectBootstrap:
|
||||||
# providerCategory: "Platform"
|
# providerCategory: "Platform"
|
||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
@@ -936,9 +948,11 @@ images:
|
|||||||
# providerResponsible: "openDesk"
|
# providerResponsible: "openDesk"
|
||||||
# upstreamRegistry: "https://registry-1.docker.io"
|
# upstreamRegistry: "https://registry-1.docker.io"
|
||||||
# upstreamRepository: "bitnami/redis"
|
# upstreamRepository: "bitnami/redis"
|
||||||
registry: "registry-1.docker.io"
|
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-debian-(\d+)-r(\d+)$'
|
||||||
repository: "bitnami/redis"
|
# upstreamMirrorStartFrom: ["7", "4", "3", "12", "0"]
|
||||||
tag: "7.4.3-debian-12-r0@sha256:a25b5d07a14ec13730022c7cd9bab6308d55ccd86b74af7315553c17be884889"
|
registry: "registry.opencode.de"
|
||||||
|
repository: "bmi/opendesk/components/community/images-mirror/redis"
|
||||||
|
tag: "7.4.3-debian-12-r0@sha256:fbdf361bbb6a17be28913fb9e4a1cfe3244331d2cbf449ecfe7a1fbbab02efc4"
|
||||||
synapse:
|
synapse:
|
||||||
# providerCategory: "Supplier"
|
# providerCategory: "Supplier"
|
||||||
# providerResponsible: "Element"
|
# providerResponsible: "Element"
|
||||||
@@ -983,24 +997,12 @@ images:
|
|||||||
registry: "registry-1.docker.io"
|
registry: "registry-1.docker.io"
|
||||||
repository: "library/nginx"
|
repository: "library/nginx"
|
||||||
tag: "1.28.0-alpine3.21@sha256:aed99734248e851764f1f2146835ecad42b5f994081fa6631cc5d79240891ec9"
|
tag: "1.28.0-alpine3.21@sha256:aed99734248e851764f1f2146835ecad42b5f994081fa6631cc5d79240891ec9"
|
||||||
xwikiMariadb:
|
xwiki:
|
||||||
# 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-solr"
|
||||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)-mariadb.+$'
|
registry: "git.xwikisas.com:5050"
|
||||||
# upstreamMirrorStartFrom: ["0", "12"]
|
repository: "xwikisas/swp/xwiki-solr"
|
||||||
registry: "registry.opencode.de"
|
tag: "1.0.0"
|
||||||
repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/xwiki"
|
|
||||||
tag: "0.25-mariadb-jetty-alpine@sha256:7175ef5e454b4eb0f6fd6a92a9503d8a680db3ca97b25c3a4eedac9c9bfbcdaf"
|
|
||||||
xwikiPostgres:
|
|
||||||
# providerCategory: "Supplier"
|
|
||||||
# providerResponsible: "XWiki"
|
|
||||||
# upstreamRegistry: "https://git.xwikisas.com:5050"
|
|
||||||
# upstreamRepository: "xwikisas/swp/xwiki"
|
|
||||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)-postgres.+$'
|
|
||||||
# upstreamMirrorStartFrom: ["0", "23"]
|
|
||||||
registry: "registry.opencode.de"
|
|
||||||
repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/xwiki"
|
|
||||||
tag: "0.25-postgres-jetty-alpine@sha256:1bfc57a65f8bc6b059d550791699b5afa33b91db8d4c75ca8f6f3d2299f7c335"
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ name: "openDesk"
|
|||||||
platforms:
|
platforms:
|
||||||
- "web"
|
- "web"
|
||||||
developmentStatus: "stable"
|
developmentStatus: "stable"
|
||||||
softwareVersion: "1.6.0"
|
softwareVersion: "1.7.0"
|
||||||
releaseDate: "2025-07-14"
|
releaseDate: "2025-08-11"
|
||||||
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"
|
||||||
|
|||||||
Reference in New Issue
Block a user