Compare commits

..

14 Commits

Author SHA1 Message Date
Thomas Kaltenbrunner
e9d17dfd29 fix(postfix): Add submissions 2025-07-29 16:09:44 +02:00
Thorsten Roßner
67162e05f8 fix(opendesk-certificates): Update Helm chart to remove default host for webmail being set even if OX App Suite is not enabled 2025-07-25 14:40:32 +02:00
Thorsten Roßner
e1d816051d fix(nextcloud): Include latest Helm chart version with supports configuration.sharing.restrictUserEnumerationToGroup 2025-07-24 14:58:55 +02:00
Thomas Kaltenbrunner
c982b483de feat(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) 2025-07-24 08:54:33 +00:00
Philip Gaber
e3b6a28993 feat(nextcloud): Enhance theming options for Nextcloud 2025-07-23 15:43:29 +00:00
Oliver Günther
3f70629ad9 feat(openproject): Update from 16.1.1 to 16.2.0 2025-07-23 12:41:20 +02:00
René Fischer
420cd1640f docs(releases.md): Add release and patch management process 2025-07-21 08:47:08 +00:00
René Fischer
2be44ac055 docs(README-EE.md): Add EE features 2025-07-21 09:15:09 +02:00
René Fischer
62c72aa8f6 docs(README-EE.md): Add CE licenses 2025-07-21 09:15:09 +02:00
René Fischer
cdfca526ed docs(README-EE.md): Add overview of CE vs. EE 2025-07-21 09:15:09 +02:00
Thorsten Roßner
af94d28b6a ci(dbcleanup): Fix RUN cluster cleanup 2025-07-20 19:36:59 +02:00
Philip Gaber
50315d78ee ci(service-cleanup): Update for new opendesk-env structure and set STACKIT as default 2025-07-20 10:24:25 +00:00
Silvio Knizek
9faa326350 docs(migrations.md): Broken markdown table 2025-07-18 15:26:24 +02:00
Thomas Kaltenbrunner
c1c6b40b76 fix(open-xchange): Disable documents role 2025-07-15 04:41:50 +00:00
79 changed files with 955 additions and 1729 deletions

View File

@@ -385,8 +385,7 @@ 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}"
PGDATABASE=${POSTGRES_DATABASE} # env var PGDATABASE is interpreted by psql psql -c "DROP OWNED BY ${PGUSER}" || true;
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
@@ -404,7 +403,7 @@ db-cleanup:
done; done;
# Cleanup Objectstore # Cleanup Objectstore
- | - |
export BUCKETS="migrations nextcloud openproject nubus notes openxchange dovecot" export BUCKETS="migrations nextcloud openproject nubus notes"
export AWS_DEFAULT_REGION="" export AWS_DEFAULT_REGION=""
export AWS_ENDPOINT="" export AWS_ENDPOINT=""
export AWS_ACCESS_KEY_ID="" export AWS_ACCESS_KEY_ID=""
@@ -762,7 +761,7 @@ import-default-accounts:
- if: > - if: >
$CI_PIPELINE_SOURCE =~ "web|schedules|trigger|api" && $NAMESPACE =~ /.+/ && $CREATE_DEFAULT_ACCOUNTS == "yes" $CI_PIPELINE_SOURCE =~ "web|schedules|trigger|api" && $NAMESPACE =~ /.+/ && $CREATE_DEFAULT_ACCOUNTS == "yes"
when: "on_success" when: "on_success"
image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/user-import:3.3.2" image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/user-import:3.0.0"
script: script:
- "echo \"Starting default account import for ${DOMAIN}\"" - "echo \"Starting default account import for ${DOMAIN}\""
- "cd /app" - "cd /app"

View File

@@ -1,59 +0,0 @@
## 🐛 Issue Report Template
Thank you for reporting an issue!
Please provide the details below to help us investigate and resolve it efficiently.
If you have a feature request, please select the "Feature Request" template.
### 📦 Deployment Details
- **Release version deployed**:
_(e.g. v1.4.2, commit hash, or branch name)_
- **Deployment type**:
- [ ] Fresh installation
- [ ] Upgrade (from version: ___ )
### ☸️ Kubernetes Environment
- **Kubernetes distribution** (select one):
- [ ] Rancher RKE / RKE2
- [ ] OpenShift
- [ ] k3s
- [ ] kind / minikube
- [ ] Other: ___________
- **Kubernetes version**:
_(e.g. v1.27.3)_
### 🌐 Ingress & Certificates
- **Ingress controller in use**:
- [ ] Ingress NGINX Controller version: ___
- [ ] Other: Currently only Ingress NGINX is supported
- **Certificate status**:
- [ ] Lets Encrypt
- [ ] Other publicly verifiable certificate (issuer: ___ )
- [ ] Self-signed certificate (see [`self-signed-certificated.md`](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/develop/docs/enhanced-configuration/self-signed-certificates.md))
- [ ] Option 1
- [ ] Option 2a
- [ ] Option 2b
### 🔧 Tooling Versions
- **Helm version (`helm version`)**: ___________
- **Helmfile version (`helmfile --version`)**: ___________
### 🔍 Problem Description
- **Expected behavior**:
- **Observed behavior / error message**:
- **Steps to reproduce**:
1.
2.
3.
### 📄 Additional context
- Relevant logs (please redact sensitive info):
- Screenshots (if applicable):
- Other notes that might help:
## 🙌 Thank you for contributing to the project!

View File

@@ -1,37 +0,0 @@
## 💡 Feature Request Template
Thank you for suggesting an improvement!
To help us understand and evaluate your idea, please provide the details below.
### 📝 Summary
- **Short description of the feature**:
_(One or two sentences that capture the core idea)_
### 🎯 Use Case / Motivation
- **Who would benefit from this feature?**
- [ ] Operators / Administrators
- [ ] Developers
- [ ] End users
- [ ] Other: ___________
- **Why is this feature needed?**
_(Describe the problem, pain point, or gap this would address)_
### 🔧 Proposed Solution
- **How should it work?**
_(Describe the desired functionality. If relevant, provide examples, CLI flags, configuration snippets, or workflows.)_
### 📊 Alternatives Considered
- **Other approaches youve tried or thought of**:
_(Whats possible now, and why is it not sufficient?)_
### 📄 Additional Context
- Links to related issues, merge requests, or external references:
- Screenshots, diagrams, or mockups (if available):
## 🙌 Thank you for helping improve the project!

View File

@@ -1,61 +1,81 @@
# 🪲 Bugfix ## 📌 Summary
*Expected MR Title and git commit message* Brief description of the issue and what this MR resolves.
*`fix(<app-name>): <Short description of what has been fixed>`*
> Example:
> Fixes a bug where users were unable to save their profile due to a missing field validation.
---
## ✅ Changes ## ✅ Changes
Explain for the reviewer how the change addresses the issue, providing some insights on the underlaying cause of the bug. Explain for the reviewer how the change addresses the issue:
- ... - Fixed null check on user input
- Added unit test for edge case
- Updated error handling in the `ProfileService`
## 🧪 How to reproduce & test ---
Provida a link to the issue or document the required details below. ## 🧪 Analysis
In case it is a GitLab issue, reference it at the end of the commit message in square brackets, like `[#123]`
Provide steps for QA or reviewers to test the fix and mention anything reviewers should be aware of.
### Steps to reproduce Explain the **underlying cause** of the bug:
1. ... - What was the unexpected behavior?
- Why did it happen?
- Where in the code or logic did it occur?
### Actual behaviour ---
*Based on the "Steps to reproduce" explain what the user sees while the bug isn't fixed.* ## 📚 Related Issue(s)
### Expected behaviour - Should be listed as part of the commit message.
- Fixes #[issue-number]
- Related to #[optional additional issues]
*Based on the "Steps to reproduce" explain what the user gets to see with the bug fix merged.* ## 🧪 How to Reproduce & Test
## 🔄 Requirements for migrations Link to issue or document the required details below.
- [ ] Describe manual steps required to update existing deployments. This especially applies if this MR introduces breaking changes: ### Before the Fix:
- [ ] Any other considerations in context of the update:
# Checklist / Sign-offs 1. Go to `/profile/edit`
2. Leave the "email" field empty
3. Click "Save"
4. Observe 500 server error
## 🏷️ Labels ### After the Fix:
Set labels: 1. Same steps as above
2. Now see appropriate validation message
3. No server error occurs
``` ---
/label ~"MR-Type::Bugfix"
/label ~"PO::👀"
/label ~"QA::👀"
/label ~"Testautomation::👀"
```
# 👷 Developer Checklist ## Checklist / Sign-offs
**Documentation:** ### 💿 CI/CD
Does this MR introduce changes (e.g., new secrets, configuration options) that require documentation? - [ ] CI pipeline passes for all jobs
- [ ] No - [ ] Linting and formatting checks pass
- [ ] Yes, and the documentation has been updated accordingly - [ ] Review app (if used) reflects fix correctly
### 🖥 QA & Product
Set related labels on the MR for
- [ ] `PO::👀`
- [ ] `Tech Lead::👀`
- [ ] `Testautomation::👀`
- [ ] `QA::👀`
---
## 👷 Developer Checklist
- [ ] Code builds and passes linting
- [ ] Tests added or updated
- [ ] Verified fix locally
- [ ] Regression testing done for related functionality
- [ ] No new warnings or errors in logs
**Quality Assurance:**
- [ ] Verified that the feature works as expected, including upgrade scenarios
- [ ] Performed regression testing
- Link to internal comment(s) with detailed QA results (to avoid exposing infrastructure details):
- ...

View File

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

View File

@@ -1,48 +1,74 @@
# ⬆️ Feature ## 📌 Summary
*Expected MR Title and git commit message* Briefly describe what this feature MR does and why its needed.
*`feat(<app-name>): <Short description of the new feature>`*
> Example:
> Adds user profile editing capabilities to the dashboard. This enables users to update their personal information without admin intervention.*
---
## ✅ Changes ## ✅ Changes
List the key changes made in this MR: List the key changes made in this MR:
- ... - Added new route /profile/edit
- Created `ProfileEditForm` component
- Integrated with backend API for user updates
- Added unit tests and basic form validation
---
## 🧪 Tests ## 🧪 Tests
Provide steps for QA or reviewers to test the feature and mention anything reviewers should be aware of: Provide steps for QA or reviewers to test the feature.
- ... 1. Login as any user
2. Navigate to `/profile/edit`
3. Update profile info and save
4. Verify changes are persisted and reflected in the UI
## 🔄 Requirements for migrations ---
- [ ] Describe manual steps required to update existing deployments. This especially applies if this MR introduces breaking changes: ## 📚 Related Issue(s)
- [ ] Any other considerations in context of the update:
# Checklist / Sign-offs - Closes #[issue number]
- Depends on #[merge request or issue, if any]
## 🏷️ Labels ---
Set labels: ## 🕵️ Notes for Reviewer
``` Mention anything reviewers should be aware of:
/label ~"MR-Type::Feature"
/label ~"PO::👀"
/label ~"QA::👀"
/label ~"Testautomation::👀"
```
# 👷 Developer Checklist - Known issues or limitations
- Code sections that may need special attention
- Design considerations or edge cases handled
**Documentation:** ---
Does this MR introduce changes (e.g., new secrets, configuration options) that require documentation? ## Checklist / Sign-offs
- [ ] No
- [ ] Yes, and the documentation has been updated accordingly
**Quality Assurance:** ### 💿 CI/CD
- [ ] Verified that the feature works as expected, including upgrade scenarios
- [ ] Performed regression testing - [ ] CI pipeline passes for all jobs
- Link to internal comment(s) with detailed QA results (to avoid exposing infrastructure details): - [ ] Linting and formatting checks pass
- ... - [ ] Review app (if used) reflects fix correctly
### 🖥 QA & Product
Set related labels on the MR for
- [ ] `PO::👀`
- [ ] `Tech Lead::👀`
- [ ] `Testautomation::👀`
- [ ] `QA::👀`
---
## 👷 Developer Checklist
- [ ] Code builds and passes linting
- [ ] Tests added or updated
- [ ] Verified fix locally
- [ ] Regression testing done for related functionality
- [ ] No new warnings or errors in logs

View File

@@ -1,42 +1,33 @@
# 🎉 Other ## 📌 Summary
*Expected MR Title and git commit message* Provide a concise summary of **what** this MR does and **why**.
*`fix(<component>): <Short description of what has been changed>`*
> Example:
> This MR updates the CI configuration to cache NPM dependencies and reduce pipeline execution time.
---
## ✅ Changes ## ✅ Changes
Explain for the reviewer and QA the reason for the MR and what changes are included. List the key updates made:
- ... - ...
## 🔄 Requirements for migrations
- [ ] Describe manual steps required to update existing deployments. This especially applies if this MR introduces breaking changes:
- [ ] Any other considerations in context of the update:
# Checklist / Sign-offs
## 🏷️ Labels
Set labels:
```
/label ~"MR-Type::Other"
/label ~"PO::👀"
/label ~"QA::👀"
/label ~"Testautomation::👀"
```
# 👷 Developer Checklist
**Documentation:**
Does this MR introduce changes (e.g., new secrets, configuration options) that require documentation?
- [ ] No
- [ ] Yes, and the documentation has been updated accordingly
**Quality Assurance:**
- [ ] Verified that the feature works as expected, including upgrade scenarios
- [ ] Performed regression testing
- Link to internal comment(s) with detailed QA results (to avoid exposing infrastructure details):
- ... - ...
---
## 🧪 Tests (if applicable)
Explain how reviewers or CI can verify the change works as intended.
> Example:
>- For CI: Check job `build:frontend` completes in <3 mins.
>- For docs: View rendered markdown locally or in GitLab.
---
## 🧾 Checks
- [ ] CI passes
- [ ] No functional changes
- [ ] Verified (if needed)

View File

@@ -1,42 +1,49 @@
# ⬆️ Application Update ## ⬆️ Application Update
*Expected MR Title and git commit message* Expected MR Title and git commit message:
*`feat/fix(<app-name>): Update from <old-version> to <new-version>`*
## 📋 Changelog/Release Notes `feat/fix(<app-name>): Update from <old-version> to <new-version>`
- [ ] [README.md](../../README.md) component table updated including the link to the related release notes of the updated application. ### 📋 Changelog/Release Notes
- [ ] Provide significant improvements you would like to see in the [openDesk release notes](https://www.opendesk.eu/en/blog/opendesk-1-6). If you have a lot of details to provide or someone else is providing the details, you can use a comment on this MR and provide a link here.
## 🔄 Requirements for migrations - [ ] Upstream release notes: `[link]`
- [ ] No breaking changes (or listed below)
- [ ] Relevant changes communicated (if needed)
- [ ] Minimum version of the application required in existing deployments to update/upgrade: ---
- [ ] Describe manual steps required to update existing deployments. This especially applies if the upgrade includes any breaking changes:
- [ ] Any other considerations in context of the update:
# Checklist / Sign-offs ### 🔄 Migrations to Run (if any)
## 🏷️ Labels Describe any migrations that need to be performed when upgrading to this application version.
Set labels: - [ ] Database migrations
- [ ] Configuration changes
- [ ] Cache clears / rebuilds
- [ ] Other: _describe_
``` ## Checklist / Sign-offs
/label ~"MR-Type::AppUpdate"
/label ~"PO::👀"
/label ~"QA::👀"
/label ~"Testautomation::👀"
```
# 👷 Developer Checklist ### 💿 CI/CD
**Documentation:** - [ ] CI pipeline passes for all jobs
- [ ] Linting and formatting checks pass
- [ ] Review app (if used) reflects fix correctly
Does this MR introduce changes (e.g., new secrets, configuration options) that require documentation? ### 🖥 QA & Product
- [ ] No
- [ ] Yes, and the documentation has been updated accordingly
**Quality Assurance:** Set related labels on the MR for
- [ ] Verified that the feature works as expected, including upgrade scenarios
- [ ] Performed regression testing - [ ] `PO::👀`
- Link to internal comment(s) with detailed QA results (to avoid exposing infrastructure details): - [ ] `Tech Lead::👀`
- ... - [ ] `Testautomation::👀`
- [ ] `QA::👀`
---
## 👷 Developer Checklist
- [ ] Code builds and passes linting
- [ ] Tests added or updated
- [ ] Verified fix locally
- [ ] Regression testing done for related functionality
- [ ] No new warnings or errors in logs

View File

@@ -1,100 +1,3 @@
# [1.8.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.7.1...v1.8.0) (2025-09-25)
### Bug Fixes
* **clamav:** [bmi/opendesk/deployment/opendesk[#234](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/234)] Update Helm chart to support conditional proxy credentials ([dee7525](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/dee75256492577c7b2ab6bafd741e06f98acfccd))
* **element:** Let Synapse create room `v12` by default; review `migrations.md` for details ([af9d4cd](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/af9d4cda6cf641e65fe49054e1397159272f3bd1))
* **helmfile:** Add more detailed descriptions on `functional.authentication.realmSettings` and provide two `accessCodeLifespan*` options ([0314a70](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/0314a7076ae7d377d86c3ff3acda691966a36635))
* **helmfile:** Do not set portal "Support" link by default ([776fe92](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/776fe92ae18963b11503d4d7e20bbf298902ad9b))
* **intercom-service:** Update from v2.19.0 to v2.19.5 ([3305dfa](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/3305dfa5fb4a22bd5354dec1f65eb0e95eed678d))
* **jitsi:** [bmi/opendesk/deployment/opendesk[#228](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/228)] Turn off Gravatar option, by default this still keeps the input field in the Jitsi UI, but does not longer issue requests to gravatar.com; check `migrations.md` in case the option should be enabled ([083fa98](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/083fa9842d6bd9c27eabac28f49668e5bee02a42))
* **nextcloud:** App "Spreed" and core app "Comments" not enabled by default; review `migrations.md` for potential upgrade steps ([31d35b2](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/31d35b25c6cf0e4a18cf6f33b01a6dd0fd10545e))
* **nextcloud:** Update from 31.0.6 to 31.0.7 including the latest app versions ([f848b9a](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/f848b9a0f4d6f65babb983b6527bfc63776b455a))
* **open-xchange:** Add client onboarding for mail ([d8fc3e0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/d8fc3e04f584da23bfd0590676f26cbac65bf4cf))
* **open-xchange:** Set guest mode to inherit theming and set theme for notification mail button ([f2ce251](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/f2ce25193a78eee3f103aabb368bf8457900fa1c))
* **open-xchange:** Switch off Element integration when `apps.element.enabled: [secure]` ([7a2dbc5](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/7a2dbc5f8cca5981ffc171f2be1b72c40877ac2c))
* **open-xchange:** Update Dovecot charts with improved auth cache defaults ([836d8a4](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/836d8a494dcd2e8ab8ea95684742cd143cac6074))
* **opendesk-certificates:** [bmi/opendesk/deployment/opendesk[#236](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/236)] Update Helm chart to add `commonName` to certificate ([2e708a7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/2e708a75b6abdb987925333714c99d1e09bbc5a2))
* **openproject:** [bmi/opendesk/deployment/opendesk[#228](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/228)] Turn off Gravatar option by default; check `migrations.md` in case the option should be enabled ([628e914](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/628e91435c37a615a421a48c2a9a0639840d9a78))
* **ox-connector:** Update from v0.27.7 to v0.27.9 ([ba77f2b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/ba77f2b11c0eb649891a5375258e6649686333fb))
* **postfix:** Relax TLS settings to `TLSv1.2`/`medium` for broader SMTP relay compatibility ([31cbd9a](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/31cbd9af1a9afb177b70bccd329829f75bceab03))
* **xwiki:** Update image to set new default for user self-registration; review migrations.md for required actions on existing deployments ([c75abaf](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/c75abaf1e660fe8daeeb09ee3d41e14ea67e9a25))
### Features
* **collabora:** Support for macro execution controlled by `functional.weboffice.macros.enabled` (default: `[secure]`) ([38f2bdd](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/38f2bdd2b98e4248972363db73c03373db71f433))
* **cryptpad:** Update from 2024.6.1 to 2025.6.0 ([23dfe0a](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/23dfe0aaa6012f5695fc026d06920bd4b0a63f66))
* **element:** Update Element-Web from 1.11.89 or 1.12.0 and Synapse from 1.129.0 to 1.137.0 ([f895bcc](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/f895bcc2b8a7d4010b19c7ffb6712c4813231f9d))
* **element:** Update NeoBoard widget to v2.3.1, NeoChoice widget to v1.6.0, NeoDateFix widget to v1.7.2 and NeoDateFix bot to 2.8.5 ([b377a5e](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/b377a5e0e25e317c64c2d30b44370beb211e23fd))
* **jitsi:** Upgrade from stable-9955 to stable-10431 ([e138610](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e138610d2941f6c3a93eef3764f252bd4eab9987))
* **nextcloud:** Expose `forbiddenChars` in `functional.yaml.gotmpl`; review `migrations.md` for required upgrade steps ([5a2c1fc](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/5a2c1fcf98d3773deef8292773962d5f70832a0f))
* **notes:** Update from 3.2.1 to 3.4.0 ([c636650](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/c63665040cf3c985dc9878992785a893d261c420))
* **nubus:** Update from 1.12.0 to 1.13.1 ([35424b8](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/35424b88d652a1e8a4c37fee4355636badba22b6))
* **nubus:** Update from v1.13.1 to v1.14.0 using OIDC instead of SAML for portal SSO; review `migrations.md` for required upgrade steps ([d3b1f57](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/d3b1f575cc2deab70ca262ab301c6b67f9c1b393))
* **open-xchange:** Add options to `functional.groupware`; review `migrations.md` for details on new defaults/required upgrade steps ([8a7cc3b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/8a7cc3b8c7199f8c15f01e1b2d55d630431ddf9c))
* **open-xchange:** Enable mail categories ([4da1c5d](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/4da1c5d9e3b1f66419a5e19ba683cff5681315bd))
* **open-xchange:** Update from 8.39 to 8.40 ([c70a0bd](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/c70a0bdc4c1564032982a2967788e0b78db74c00))
* **open-xchange:** Update from 8.40 to 8.41 ([c50b817](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/c50b81779539186f3885d6bdb64d348fbe7bda67))
* **openproject:** Update OpenProject from 16.2.1 to 16.3.2 ([f77f329](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/f77f3291caf778274c23f89bde3661e586447f5a))
* **openproject:** Update OpenProject from 16.3.2 to 16.4.1 ([f5483d1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/f5483d1a3b4cb8fddff38bb9fc29439cd6c4fc40))
* **xwiki:** Update from 16.10.5 to 17.4.4 and configure openDesk's Collabora for `.odt`, `.rtf` and `.docx` export of wiki pages ([813e92c](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/813e92c1b05f806bff8022d71d8cd25f475b0b8f))
## [1.7.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.7.0...v1.7.1) (2025-08-26)
### Bug Fixes
* **collabora:** Update from 25.04.3 to 25.04.4 ([84d6b50](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/84d6b504d21e687de3fb4cdabafc9cff6fe1f1d7))
* **helmfile:** When optional mail domain is set, use it as sender domain for system generated (noreply) mails ([bd4c997](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/bd4c997950750e36168434e82daf48f20d0a42df))
* **jitsi:** Increase `patchJVB` job `backoffLimit` to avoid deployment failures on infrastructure where LoadBalancer services take longer to become available ([eb2a181](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/eb2a1811fb1d11b0dd0ea0e9987f96846a855ac7))
* **nextcloud:** Fetch central navigation from cluster internal service ([dd0e516](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/dd0e516778104c47ef990d95d01bdec6b33d9bab))
* **nextcloud:** Stop browser from caching server-generated files ([410a1ad](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/410a1ade6907f676d3c4cbc68b33754e0e41e9fb))
* **nextcloud:** Work around a bug that breaks the `nextcloud-management` job in case the theming `primary_color` was set in Nextcloud's web UI ([4aebe22](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/4aebe22f22dc9e679563a46687ebdc8793c281e8))
* **notes:** Explicitly template security contexts; add missing ingress classes and pull secrets ([834c847](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/834c84768a3a6537990e27377acb170b6269dfb0))
* **nubus:** Remove temporary `nubusUdmListener` `livenessProbe` as recommended by supplier ([688a505](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/688a505ef780e7c81006a73db6465ef75dea1404))
* **open-xchange:** Click on top bar logo to point to portal instead of mail inbox ([9f762a7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/9f762a7c2ea3f8e4d3207d8d2aae44597a366ee0))
* **open-xchange:** Configure correct autoreply addresses and enable FTS in Dovecot EE ([997c083](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/997c083335b79aa7446894b6ebbb6ed1d5950a3d))
* **open-xchange:** Explicitly deactivate DAV support if not enabled in `functional.yaml.gotmpl` ([62ba5ab](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/62ba5aba496af40208a13abeb6c8f1de62e98e35))
* **open-xchange:** Fix FTS bulk delete in Dovecot EE ([cd2a356](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/cd2a356b89249b8a163f2becc57832164bc6c8e5))
* **open-xchange:** Set mail quota using `functional.groupware.quota.default` ([67fe50e](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/67fe50e53c7477016efe3b3d90c63214928f165c))
* **opendesk-static-files:** Serve missing `.png` favicons for Notes and the Nextcloud topbar logo ([42b1105](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/42b11059d29d6445e1e4e3309ad7a9a026b56c92))
* **ox-connector:** Update OX Connector and OX Extension to v0.27.7 ([57c96af](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/57c96af5a545a6a6851926b85bca0dc24263b55e))
* **xwiki:** Templating of `imagePullSecrets` ([bbbcd68](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/bbbcd6807e972c6120d90df52b8ffe9da03ebce3))
# [1.7.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.6.0...v1.7.0) (2025-08-11)
### 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)

View File

@@ -146,7 +146,7 @@ OPENDESK_ENTERPRISE=true
With openDesk EE you get access to the related artifact registry owned by ZenDiS. With openDesk EE you get access to the related artifact registry owned by ZenDiS.
Three steps are required to access the registry - for step 1 and 2 you can set some variables. Below, you can define `<your_name_for_the_secret>` freely, like `enterprise-secret`, as long as it consistent in step 1 and 3. Three steps are required to access the registry - for step #1 and #2 you can set some variables. Below, you can define `<your_name_for_the_secret>` freely, like `enterprise-secret`, as long as it consistent in step #1 and #3.
```shell ```shell
NAMESPACE=<your_namespace> NAMESPACE=<your_namespace>

View File

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

View File

@@ -37,8 +37,3 @@ SPDX-License-Identifier = "CC-BY-SA-4.0"
path = ".gitlab/merge_request_templates/*.md" path = ".gitlab/merge_request_templates/*.md"
SPDX-FileCopyrightText = "2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH" SPDX-FileCopyrightText = "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"
[[annotations]]
path = ".gitlab/issue_templates/*.md"
SPDX-FileCopyrightText = "2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH"
SPDX-License-Identifier = "Apache-2.0"

View File

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

View File

@@ -15,27 +15,27 @@ SPDX-License-Identifier: Apache-2.0
* [Keycloak Extensions](#keycloak-extensions) * [Keycloak Extensions](#keycloak-extensions)
* [OpenLDAP](#openldap) * [OpenLDAP](#openldap)
* [Authorization](#authorization) * [Authorization](#authorization)
* [LDAP group synchronization](#ldap-group-synchronization) * [LDAP Group Synchronization](#ldap-group-synchronization)
* [Provisioning](#provisioning) * [Provisioning](#provisioning)
* [OX Connector](#ox-connector) * [OX Connector](#ox-connector)
* [SCIM](#scim) * [SCIM](#scim)
* [Component integration](#component-integration) * [Component integration](#component-integration)
* [Intercom Service / Silent login](#intercom-service--silent-login) * [Intercom Service / Silent Login](#intercom-service--silent-login)
* [Central contacts](#central-contacts) * [Central Contacts](#central-contacts)
* [Central navigation](#central-navigation) * [Central Navigation](#central-navigation)
* [Filepicker](#filepicker) * [Filepicker](#filepicker)
* [Newsfeed](#newsfeed) * [Newsfeed](#newsfeed)
* [(OpenProject) File store](#openproject-file-store) * [(OpenProject) File Store](#openproject-file-store)
* [Applications vs. services](#applications-vs-services) * [Applications vs. Services](#applications-vs-services)
* [Collabora (weboffice)](#collabora-weboffice) * [Collabora (Office)](#collabora-office)
* [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 (weboffice) ## Collabora (Office)
[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.
@@ -443,7 +443,7 @@ While the IAM manages users centrally, some applications come with local account
| Element | `uvs` | The account for the "User Verification Service". It is used by Jitsi integrated into Element. | `secrets.matrixUserVerificationService.password` | | Element | `uvs` | The account for the "User Verification Service". It is used by Jitsi integrated into Element. | `secrets.matrixUserVerificationService.password` |
| | `meeting-bot` | Used by the Nordeck Meeting-Bot to manage meeting rooms in Synapse. | `secrets.matrixNeoDateFixBot.password` | | | `meeting-bot` | Used by the Nordeck Meeting-Bot to manage meeting rooms in Synapse. | `secrets.matrixNeoDateFixBot.password` |
| Nextcloud | `nextcloud` | Bootstrap the Nextcloud fileshare for OpenProject with `opendesk-openproject-bootstrap` job[^1]. | `secrets.nextcloud.adminPassword` | | Nextcloud | `nextcloud` | Bootstrap the Nextcloud fileshare for OpenProject with `opendesk-openproject-bootstrap` job[^1]. | `secrets.nextcloud.adminPassword` |
| OX App Suite | `admin` | OX Connector to provision context, users, groups etc. | `secrets.oxAppsuite.adminPassword` | | OX App Suite | `admin` | OX-Connector to provision context, users, groups etc. | `secrets.oxAppsuite.adminPassword` |
| OpenProject | set in `secrets.openproject.apiAdminUsername` | Bootstrap the Nextcloud fileshare for OpenProject with `opendesk-openproject-bootstrap` job[^1]. | `secrets.openproject.apiAdminPassword` | | OpenProject | set in `secrets.openproject.apiAdminUsername` | Bootstrap the Nextcloud fileshare for OpenProject with `opendesk-openproject-bootstrap` job[^1]. | `secrets.openproject.apiAdminPassword` |
| XWiki | `superadmin` | Only available with `debug.enabled: true`, can be used for interactive login using `/bin/view/Main/?oidc.skipped=true`. | `secrets.xwiki.superadminpassword` | | XWiki | `superadmin` | Only available with `debug.enabled: true`, can be used for interactive login using `/bin/view/Main/?oidc.skipped=true`. | `secrets.xwiki.superadminpassword` |

View File

@@ -288,7 +288,7 @@ The following are the APIs used by the Groupware application:
| In openDesk provided by | OX AppSuite Middleware | | In openDesk provided by | OX AppSuite Middleware |
| Transport protocol | HTTP(S) | | Transport protocol | HTTP(S) |
| Usage within component | none | | Usage within component | none |
| Usage within openDesk | OX Connector synchronizes the state of the objects (users, groups etc.) managed in the LDAP. | | Usage within openDesk | OX-Connector synchronizes the state of the objects (users, groups etc.) managed in the LDAP. |
| Usage for external integration | none | | Usage for external integration | none |
| Parallel access | Allowed | | Parallel access | Allowed |
| Message protocol | XML based, exactly following the format of Java RMI. | | Message protocol | XML based, exactly following the format of Java RMI. |

View File

@@ -9,7 +9,7 @@ SPDX-License-Identifier: Apache-2.0
* [Software bill of materials (SBOMs)](#software-bill-of-materials-sboms) * [Software bill of materials (SBOMs)](#software-bill-of-materials-sboms)
* [Artifact SBOMs](#artifact-sboms) * [Artifact SBOMs](#artifact-sboms)
* [Source code SBOMs](#source-code-sboms) * [Source code SBOMs](#source-code-sboms)
* [License compliance](#license-compliance) * [License Compliance](#license-compliance)
* [Software supply chain security](#software-supply-chain-security) * [Software supply chain security](#software-supply-chain-security)
* [Container architectural basics](#container-architectural-basics) * [Container architectural basics](#container-architectural-basics)
* [Security](#security) * [Security](#security)
@@ -25,7 +25,7 @@ SPDX-License-Identifier: Apache-2.0
* [Top bar](#top-bar) * [Top bar](#top-bar)
* [Look and feel](#look-and-feel) * [Look and feel](#look-and-feel)
* [Central navigation](#central-navigation) * [Central navigation](#central-navigation)
* [Functional administration](#functional-administration) * [Functional Administration](#functional-administration)
* [Theming](#theming) * [Theming](#theming)
* [Central user profile](#central-user-profile) * [Central user profile](#central-user-profile)
* [Footnotes](#footnotes) * [Footnotes](#footnotes)
@@ -60,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://opencode.de/de/wissen/rechtssichere-nutzung/open-source-lizenzen). - 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).
- 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). - 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).
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.

View File

@@ -66,12 +66,10 @@ XWiki,PersistentVolume,1
# Details # Details
| Application | Data Storage | Backup | Content | (Default) Identifier | Details | | Application | Data Storage | Backup | Content | Identifier | Details |
|----------------------|--------------|----------|-----------------------------------------------------------------------------------|------------------------------------------------|-----------------------------------------------------------------------------------------------------------| |----------------------|--------------|----------|--------------------------------------------------------------------------------------------|------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| **ClamAV** | PVC | No | ClamAV Database | `clamav-database-clamav-simple-0` | `/var/lib/clamav` | | **ClamAV** | PVC | No | ClamAV Database | `clamav-database-clamav-simple-0` | `/var/lib/clamav` |
| **Dovecot** | PVC | Yes | openDesk CE only: User mail directories | `dovecot` | `/srv/mail` | | **Dovecot** | PVC | Yes | User mail directories (openDesk CE only, openDesk EE uses Dovecot Pro with Object Storage) | `dovecot` | `/srv/mail` |
| | S3 | Yes | openDesk EE only: User mail | `dovecot` | `dovecot` |
| | Cassandra | Yes | openDesk EE only: Metadata and ACLs | `dovecot_dictmap`, `dovecot_acl` | |
| **Element/Synapse** | PostgreSQL | Yes | Application's main database | `matrix` | | | **Element/Synapse** | PostgreSQL | Yes | Application's main database | `matrix` | |
| | PVC | Yes | Attachments | `media-opendesk-synapse-0` | `/media` | | | PVC | Yes | Attachments | `media-opendesk-synapse-0` | `/media` |
| | | Yes | Sync and state data | `matrix-neodatefix-bot` | `/app/storage` | | | | Yes | Sync and state data | `matrix-neodatefix-bot` | `/app/storage` |
@@ -83,7 +81,6 @@ XWiki,PersistentVolume,1
| **Nubus** | PostgreSQL | Yes | Main database for Nubus' IdP Keycloak | `keycloak` | | | **Nubus** | PostgreSQL | Yes | Main database for Nubus' IdP Keycloak | `keycloak` | |
| | | Yes | Login actions and device-fingerprints | `keycloak_extensions` | | | | | Yes | Login actions and device-fingerprints | `keycloak_extensions` | |
| | | Optional | Store of the temporary password reset token | `selfservice` | | | | | Optional | Store of the temporary password reset token | `selfservice` | |
| | | Optional | OIDC session storage | `umsAuthSession` | |
| | | No | Notification features are not used in openDesk 1.1 | `notificationsapi` | | | | | No | Notification features are not used in openDesk 1.1 | `notificationsapi` | |
| | | No | Guardian features are currently not used in openDesk 1.1 | `guardianmanagementapi` | | | | | No | Guardian features are currently not used in openDesk 1.1 | `guardianmanagementapi` | |
| | S3 | No | Static files for Portal | `ums` | | | | S3 | No | Static files for Portal | `ums` | |
@@ -103,22 +100,18 @@ XWiki,PersistentVolume,1
| **Open-Xchange** | MariaDB | Yes | Application's control database to coordiate dynamically created ones | `configdb` | | | **Open-Xchange** | MariaDB | Yes | Application's control database to coordiate dynamically created ones | `configdb` | |
| | | Yes | Dynamically creates databases of schema `PRIMARYDB_n`containing multiple contexts | `PRIMARYDB_*` | | | | | Yes | Dynamically creates databases of schema `PRIMARYDB_n`containing multiple contexts | `PRIMARYDB_*` | |
| | | Yes | OX Guard related settings | `oxguard*` | | | | | Yes | OX Guard related settings | `oxguard*` | |
| | S3 | Yes | Attachments of meetings, contacts and tasks | `openxchange` | |
| | Redis | Optional | Cache, session related data, distributed maps | | | | | Redis | Optional | Cache, session related data, distributed maps | | |
| | PVC | Yes | OX Connector: OXAPI access details | `ox-connector-appcenter-ox-connector-0` | `/var/lib/univention-appcenter/apps/ox-connector` | | | PVC | Yes | OX-Connector: OXAPI access details | `ox-connector-appcenter-ox-connector-0` | `/var/lib/univention-appcenter/apps/ox-connector` |
| | | Yes | OX Connector: Application's meta data | `ox-connector-ox-contexts-ox-connector-0` | `/etc/ox-secrets` | | | | Yes | OX-Connector: Application's meta data | `ox-connector-ox-contexts-ox-connector-0` | `/etc/ox-secrets` |
| **Postfix** | PVC | Yes | Mail spool | `postfix` | `/var/spool/postfix` | | **Postfix** | PVC | Yes | Mail spool | `postfix` | `/var/spool/postfix` |
| **XWiki** | PostgreSQL | Yes | Application's main database | `xwiki` | | | **XWiki** | PostgreSQL | Yes | Application's main database | `xwiki` | |
| | PVC | Yes | Attachments | `xwiki-data-xwiki-0` | `/usr/local/xwiki/data` | | | PVC | Yes | Attachments | `xwiki-data-xwiki-0` | `/usr/local/xwiki/data` |
Additionally, the following persistent volumes are mounted by Pods that serve as a data storage for the applications mentioned above. Additionally, the following persistent volumes are mounted by pods that serve as a data storage for the applications mentioned above.
These services are not ment for production use, so you can ignore these as you surely backup your production services instead. | Service | Pod | Volume Name | PVC | MountPath |
| ---------- | ---------------- | ------------ | --------------------------- | --------------------- |
| Service | Pod | Volume Name | PVC | MountPath | Comment | | MariaDB | `mariadb-*` | `data` | `data-mariadb-0` | `/var/lib/mysql` |
|------------|------------------|--------------|-----------------------------|-----------------------|------------------| | MinIO | `minio-*-*` | `data` | `minio` | `/bitnami/minio/data` |
| MariaDB | `mariadb-*` | `data` | `data-mariadb-0` | `/var/lib/mysql` | | | PostgreSQL | `postgresql-*` | `data` | `data-postgresql-0` | `/mnt/postgresql` |
| MinIO | `minio-*-*` | `data` | `minio` | `/bitnami/minio/data` | | | Redis | `redis-master-*` | `redis-data` | `redis-data-redis-master-0` | `/data` |
| PostgreSQL | `postgresql-*` | `data` | `data-postgresql-0` | `/mnt/postgresql` | |
| Redis | `redis-master-*` | `redis-data` | `redis-data-redis-master-0` | `/data` | |
| Cassandra | `cassandra-*` | `data` | `data-cassandra-*` | `/bitnami/cassandra` | openDesk EE only |

View File

@@ -168,7 +168,7 @@ While you will find all the details for the CLI tool in the [MariaDB documentati
## Nextcloud ## Nextcloud
`occ` is the CLI for Nextcloud; all the details can be found in the [upstream documentation](https://docs.nextcloud.com/server/stable/admin_manual/occ_command.html). `occ` is the CLI for Nextcloud; all the details can be found in the [upstream documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html).
You can run occ commands in the `opendesk-nextcloud-aio` pod like this: `php /var/www/html/occ config:list` You can run occ commands in the `opendesk-nextcloud-aio` pod like this: `php /var/www/html/occ config:list`
@@ -218,9 +218,6 @@ kubectl patch -n ${NAMESPACE} configmap ${CONFIGMAP_NAME} --type merge -p '{"dat
> **Note**<br> > **Note**<br>
> Because the `ums-keycloak-extensions-handler` is sending frequent requests (one per second) to Keycloak for retrieval of the Keycloak event history, you might want to stop/remove the deployment while debugging/analysing Keycloak to not get your debug output spammed by these requests. > Because the `ums-keycloak-extensions-handler` is sending frequent requests (one per second) to Keycloak for retrieval of the Keycloak event history, you might want to stop/remove the deployment while debugging/analysing Keycloak to not get your debug output spammed by these requests.
> **Note**<br>
> While you can set the standard log levels like `INFO`, `DEBUG`, `TRACE` etc. you can also set class specific logs by comma separating the details in the `KC_LOG_LEVEL` environment variable like e.g. `INFO,org.keycloak.protocol.oidc.endpoints:TRACE`. The example sets the overall loglevel to `INFO` but provides trace logs for `org.keycloak.protocol.oidc.endpoints`.
### Accessing the Keycloak admin console ### Accessing the Keycloak admin console
Deployments set to `debug.enable: true` expose the Keycloak admin console at `http://id.<your_opendesk_domain>/admin/`. This can also be achieved by updating the Ingress `ums-keycloak-extensions-proxy` with an additional path that allows access to `/admin/`. Deployments set to `debug.enable: true` expose the Keycloak admin console at `http://id.<your_opendesk_domain>/admin/`. This can also be achieved by updating the Ingress `ums-keycloak-extensions-proxy` with an additional path that allows access to `/admin/`.

View File

@@ -108,9 +108,9 @@ If you follow the "push early, push often" paradigm to save your work to the cen
existing documentation, you can avoid the CI and its linting being executed, as it might not offer additional value. existing documentation, you can avoid the CI and its linting being executed, as it might not offer additional value.
GitLab offers two options to skip the CI on a commit/push: GitLab offers two options to skip the CI on a commit/push:
1. Add `[ci skip]` to your commit message ([details](https://docs.gitlab.com/ee/ci/pipelines/#skip-a-pipeline)). - Add `[ci skip]` to your commit message ([details](https://docs.gitlab.com/ee/ci/pipelines/#skip-a-pipeline)).
**Note:** The string has to be removed before merging your feature branch into `develop`. **Note:** The string has to be removed before merging your feature branch into `develop`.
2. Use the related git push option `git push -o ci.skip` ([details](https://docs.gitlab.com/topics/git/commit/#push-options)). - Use the related git push option `git push -o ci.skip` ([details](https://docs.gitlab.com/ee/user/project/push_options.html#push-options-for-gitlab-cicd)).
## Renovate ## Renovate

View File

@@ -355,15 +355,12 @@ Example: `tmueller/fix_jitsi_theming`.
Commit messages must adhere to the [Conventional Commit standard](https://www.conventionalcommits.org/en/v1.0.0/#summary). Commits that do not adhere to the standard get rejected by either [Gitlab push rules](https://docs.gitlab.com/ee/user/project/repository/push_rules.html) or the CI. Commit messages must adhere to the [Conventional Commit standard](https://www.conventionalcommits.org/en/v1.0.0/#summary). Commits that do not adhere to the standard get rejected by either [Gitlab push rules](https://docs.gitlab.com/ee/user/project/repository/push_rules.html) or the CI.
> **Note**<br>
> The first letter after the `: ` must be uppercase.
```text ```text
<type>(<scope>): <Short summary> [path/to/issue#1] <type>(<scope>): [path/to/issue#1] <short summary>.
│ │ │ │ │ │ │ │
│ │ | └─> Issue reference (optional) │ │ | └─> Summary in present tense, sentence case, with no period at the end
│ │ | │ │ |
│ │ └─> Summary in present tense, sentence case, with no period at the end │ │ └─> Issue reference (optional)
│ │ │ │
│ └─> Commit Scope: helmfile, docs, collabora, nextcloud, open-xchange, etc. │ └─> Commit Scope: helmfile, docs, collabora, nextcloud, open-xchange, etc.
@@ -373,7 +370,7 @@ Commit messages must adhere to the [Conventional Commit standard](https://www.co
Example: `fix(open-xchange): Bump to 8.26 to heal issue with functional mailbox provisioning.` Example: `fix(open-xchange): Bump to 8.26 to heal issue with functional mailbox provisioning.`
> **Note**<br> > **Note**<br>
> The commit messages are an essential part of the [technical releases](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/releases) as the release notes are generated from these messages. > The commit messages are an essential part of the [technical releases](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/releases) as the release's notes are generated from the messages.
#### Verified commits #### Verified commits

View File

@@ -77,7 +77,7 @@ With openDesk 1.0 Enterprise, you can set openDesk's email components (OX AppSui
``` ```
secrets: secrets:
oxAppSuite: oxAppSuite:
migrationsMasterPassword: "your_temporary_master_password" adminPassword: "your_temporary_master_password"
functional: functional:
migration: migration:
oxAppSuite: oxAppSuite:
@@ -89,7 +89,7 @@ functional:
To validate the master authentication mode please read the appendix section at the end of the document. To validate the master authentication mode please read the appendix section at the end of the document.
Updating your deployment with these settings will allow you to continue with the migration scenario. Once the migration is completed, you can remove `secrets.oxAppSuite.migrationsMasterPassword` and need to turn off the migration mode by setting `functional.migration.oxAppSuite.enabled` to `false` or removing that setting, as `false` is the default before you update your deployment once again. Updating your deployment with these settings will allow you to continue with the migration scenario. Once the migration is completed, you can remove `secrets.oxAppSuite.adminPassword` and need to turn off the migration mode by setting `functional.migration.oxAppSuite.enabled` to `false` or removing that setting, as `false` is the default before you update your deployment once again.
> **Note**<br> > **Note**<br>
> For the changes to take effect, it is sufficient to re-deploy the `open-xchange` component alone. But you have to restart the Dovecot Pod(s) manually when switching to/from the master authentication mode for the changes to take effect. > For the changes to take effect, it is sufficient to re-deploy the `open-xchange` component alone. But you have to restart the Dovecot Pod(s) manually when switching to/from the master authentication mode for the changes to take effect.

View File

@@ -38,8 +38,6 @@ access openDesk.
```yaml ```yaml
certificate: certificate:
selfSigned: true selfSigned: true
caCertificate:
create: false
``` ```
3. Create a Kubernetes secret named `opendesk-certificates-tls` of type `kubernetes.io/tls` containing either a valid 3. Create a Kubernetes secret named `opendesk-certificates-tls` of type `kubernetes.io/tls` containing either a valid
@@ -52,10 +50,6 @@ CA certificate as X.509 encoded (`ca.crt`) and as jks trust store (`truststore.j
5. Create a Kubernetes secret with name `opendesk-certificates-keystore-jks` with key `password` and as value the jks 5. Create a Kubernetes secret with name `opendesk-certificates-keystore-jks` with key `password` and as value the jks
trust store password. trust store password.
> **Note**<br>
> XWiki does not support the use of an existing secret to access the keystore. Therefore you have to set the password
> from step 5 also as `secrets.certificates.password`.
## Option 2a: Use cert-manager.io with auto-generated namespace based root-certificate ## Option 2a: Use cert-manager.io with auto-generated namespace based root-certificate
This option is useful when you do not have a trusted certificate available and can't fetch a certificate from This option is useful when you do not have a trusted certificate available and can't fetch a certificate from

View File

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

View File

@@ -305,8 +305,18 @@ To connect with mail clients like [Thunderbird](https://www.thunderbird.net/), t
### Mail/SMTP configuration ### Mail/SMTP configuration
Enabling DKIM signing for outgoing emails helps reduce the risk of messages being marked as spam and improves recipient trust. To use the full potential of the openDesk, you need to set up an SMTP relay that allows sending emails from
openDesk includes `dkimpy-milter` as a Postfix milter for signing emails. You can configure the following attributes: the whole subdomain. The following attribute can be set:
```yaml
smtp:
host: "mail.open.desk"
username: "openDesk"
password: "secret"
```
Enabling DKIM signing of emails helps to reduce spam and increases trust.
openDesk ships dkimpy-milter as Postfix milter for signing emails. The following attributes can be set:
```yaml ```yaml
apps: apps:
@@ -320,17 +330,6 @@ smtp:
useED25519: true # when false, RSA is used useED25519: true # when false, RSA is used
``` ```
A common scenario for outgoing mail is to send it through a smarthost or mail relay, which often handles DKIM signing as well.
If you prefer to use a smarthost, you can configure it as follows:
```yaml
smtp:
host: "smarthost.domain.tld"
username: "smarthost-auth-username"
password: "secret"
```
### TURN configuration ### TURN configuration
Some components (Jitsi, Element) use a TURN server for direct communication. You can configure your own TURN server with Some components (Jitsi, Element) use a TURN server for direct communication. You can configure your own TURN server with
@@ -341,10 +340,10 @@ turn:
transport: "udp" # or tcp transport: "udp" # or tcp
credentials: "secret" credentials: "secret"
server: server:
host: "turn.domain.tld" host: "turn.open.desk"
port: "3478" port: "3478"
tls: tls:
host: "turns.domain.tld" host: "turns.open.desk"
port: "5349" port: "5349"
``` ```

View File

@@ -10,25 +10,9 @@ SPDX-License-Identifier: Apache-2.0
* [Deprecation warnings](#deprecation-warnings) * [Deprecation warnings](#deprecation-warnings)
* [Automated migrations - Overview and mandatory upgrade path](#automated-migrations---overview-and-mandatory-upgrade-path) * [Automated migrations - Overview and mandatory upgrade path](#automated-migrations---overview-and-mandatory-upgrade-path)
* [Manual checks/actions](#manual-checksactions) * [Manual checks/actions](#manual-checksactions)
* [v1.7.1+](#v171)
* [Pre-upgrade to v1.7.1+](#pre-upgrade-to-v171)
* [New application default: Default group for two-factor authentication is now "2FA Users"](#new-application-default-default-group-for-two-factor-authentication-is-now-2fa-users)
* [New database and secrets: Portal now uses OIDC](#new-database-and-secrets-portal-now-uses-oidc)
* [New application default: XWiki blocks self-registration of user accounts](#new-application-default-xwiki-blocks-self-registration-of-user-accounts)
* [New application default: Synapse rooms `v12`](#new-application-default-synapse-rooms-v12)
* [New Helmfile default: Restricting characters for directory and filenames in fileshare module](#new-helmfile-default-restricting-characters-for-directory-and-filenames-in-fileshare-module)
* [Helmfile new default: New groupware settings changing current behaviour](#helmfile-new-default-new-groupware-settings-changing-current-behaviour)
* [New application default: Nextcloud apps "Spreed" and "Comments" no longer enabled by default](#new-application-default-nextcloud-apps-spreed-and-comments-no-longer-enabled-by-default)
* [New application default: Gravatar is switched off for Jitsi and OpenProject](#new-application-default-gravatar-is-switched-off-for-jitsi-and-openproject)
* [v1.7.0+](#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)
* [Post-upgrade to v1.7.0+](#post-upgrade-to-v170)
* [Upstream fix: Provisioning of functional mailboxes](#upstream-fix-provisioning-of-functional-mailboxes)
* [v1.6.0+](#v160) * [v1.6.0+](#v160)
* [Pre-upgrade to v1.6.0+](#pre-upgrade-to-v160) * [Pre-upgrade to v1.6.0+](#pre-upgrade-to-v160)
* [Upstream constraint: Nubus' external secrets](#upstream-constraint-nubus-external-secrets) * [Upstream contraint: Nubus' external secrets](#upstream-contraint-nubus-external-secrets)
* [Helmfile new secret: `secrets.minio.openxchangeUser`](#helmfile-new-secret-secretsminioopenxchangeuser) * [Helmfile new secret: `secrets.minio.openxchangeUser`](#helmfile-new-secret-secretsminioopenxchangeuser)
* [Helmfile new object storage: `objectstores.openxchange.*`](#helmfile-new-object-storage-objectstoresopenxchange) * [Helmfile new object storage: `objectstores.openxchange.*`](#helmfile-new-object-storage-objectstoresopenxchange)
* [OX App Suite fix-up: Using S3 as storage for non mail attachments (pre-upgrade)](#ox-app-suite-fix-up-using-s3-as-storage-for-non-mail-attachments-pre-upgrade) * [OX App Suite fix-up: Using S3 as storage for non mail attachments (pre-upgrade)](#ox-app-suite-fix-up-using-s3-as-storage-for-non-mail-attachments-pre-upgrade)
@@ -106,14 +90,10 @@ Manual checks and possible activities are also required by openDesk updates, the
We cannot hold back all migrations as some are required e.g. due to a change in a specific component that we want/need to update, we try to bundle others only with major releases. We cannot hold back all migrations as some are required e.g. due to a change in a specific component that we want/need to update, we try to bundle others only with major releases.
This section provides an overview of potential changes to be part of the next major release (openDesk 2.0). This section should provide you with an overview of what changes to expect in the next major release (openDesk 2.0) expected in September 2025.
- `functional.portal.link*` (see `functional.yaml.gotmpl` for details) are going to be moved into the `theme.*` tree, we are also going to move the icons used for the links currently found under `theme.imagery.portalEntries` in this step. - `functional.portal.link*` (see `functional.yaml.gotmpl` for details) are going to be moved into the `theme.*` tree, we are also going to move the icons used for the links currently found under `theme.imagery.portalEntries` in this step.
- We will explicitly set the [database schema configuration](https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Configuration/#HConfigurethenamesofdatabaseschemas) for XWiki to avoid the use of the `public` schema. - We will explicitly set the [database schema configuration](https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Configuration/#HConfigurethenamesofdatabaseschemas) for XWiki to avoid the use of the `public` schema.
- Adding support for `storageClassName` templating of various components requiring upgrading of the existing PVCs:
- `persistence.storages.oxConnector.storageClassName`
- `persistence.storages.nubusUdmListener.storageClassName`
- `persistence.storages.nubusProvisioningNats.storageClassName`
# Automated migrations - Overview and mandatory upgrade path # Automated migrations - Overview and mandatory upgrade path
@@ -137,228 +117,11 @@ If you would like more details about the automated migrations, please read secti
# Manual checks/actions # Manual checks/actions
## v1.7.1+
### Pre-upgrade to v1.7.1+
#### New application default: Default group for two-factor authentication is now "2FA Users"
**Target group:** All upgrade deployments.
In previous openDesk versions, the default group for enforcing two-factor authentication (2FA) was `2fa-users`. Accounts in this group were required to set up and use time-based one-time passwords (TOTP) for 2FA during login.
With the release v1.8.0 of openDesk, the openDesk IAM Nubus introduces a new default group named `2FA Users` serving the same purpose. Existing deployments will retain the old group, which will continue to enforce 2FA as before.
However, for consistency and easier maintenance, we recommend migrating users from the old group to the new one and removing the old group afterward.
#### New database and secrets: Portal now uses OIDC
**Target group:** All upgrade deployments.
The portal has been migrated to use OIDC for single sign-on by default. This introduces the following requirements for existing deployments:
- New database: Deployments using external databases must provide a new PostgreSQL database. See `databases.umsAuthSession` in `databases.yaml.gotmpl` for configuration details.
- New secrets: Deployments managing secrets manually must add:
- `secrets.keycloak.clientSecret.portal`: The OIDC client secret for the portal.
- `secrets.postgresql.umsAuthSessionUser`: For internal databases, set the secret for the database user here. If you are using an external database, you already provide these credentials in the New database step above.
> **Note**<br>
> The SAML Client for the Nubus portal is still preserved in Keycloak and will be removed in one of the next openDesk releases.
#### New application default: XWiki blocks self-registration of user accounts
**Target group:** All openDesk deployments using XWiki.
The upgrade itself requires no manual intervention. However, the previous default (self-registration enabled) may be unexpected in many deployments.
XWiki supports self-registration for creating local, application-specific accounts. Before this upgrade, the feature was enabled by default. It can not be disabled at the deployment level due to limitations in the XWiki package.
With the new default, self-registration is switched off for new deployments. Existing deployments must apply the change manually:
1. Log in with an XWiki admin account.
2. Open the URL below (replace `<YOURDOMAIN>` with your domain), or navigate manually:
- URL: `https://wiki.<YOURDOMAIN>/bin/admin/XWiki/XWikiPreferences?editor=globaladmin&section=Rights#|t=usersandgroupstable&p=1&l=10&uorg=users&wiki=local&clsname=XWiki.XWikiGlobalRights`
- Manual navigation: Burger menu → *Administer Wiki* (repeat for each subwiki, if applicable) → *Users & Groups**Rights**Users* (table header)
3. In the first row labeled "Unregistered Users", ensure the box in the "Register" column shows a ❌ (disabled) by clicking it if necessary.
#### New application default: Synapse rooms `v12`
**Target group:** All deployments using Element/Synapse with unrestricted federation and public, federation-enabled rooms.
Following the [security bulletin from matrix.org](https://matrix.org/blog/2025/08/security-release/), openDesk now sets the default room version for new Matrix rooms to v12.
This change does not affect existing rooms. There is no immediate action required. However, if your setup allows unrestricted Matrix federation and you operate public, federation-enabled rooms, you should consider upgrading those rooms to v12 for improved security and compatibility.
For instructions on upgrading rooms, refer to the [official upstream documentation](https://docs.element.io/latest/element-server-suite-pro/administration/upgrading-local-rooms/).
OpenDesk includes several bundled widgets. When upgrading a room, a new room is created to replace the old one — widget data will not be automatically transferred to the new room.
To preserve as much data as possible, dedicated upgrade guidelines for each of these widgets are available:
- Matrix NeoBoard widget: https://github.com/nordeck/matrix-neoboard?tab=readme-ov-file#matrix-room-upgrades
- Matrix Meetings widget: https://github.com/nordeck/matrix-meetings?tab=readme-ov-file#matrix-room-upgrades
- Matrix Poll widget: https://github.com/nordeck/matrix-poll?tab=readme-ov-file#matrix-room-upgrades
> **Note**<br>
> These instructions apply to any room upgrades, not just upgrade to `v12`.
#### New Helmfile default: Restricting characters for directory and filenames in fileshare module
**Target group:** All openDesk deployments using the fileshare module, as they may already contain files or directories with characters that are now restricted.
openDesk now enforces restrictions on the characters allowed in directory and filenames by explicitly disallowing the following set: `* " | ? ; : \ / ~ < >`
The reason is that desktop clients can not handle all characters due to restrictions in the underlying operating system and therefor syncing these directories and/or files will fail.
This change was introduced because desktop clients cannot reliably handle certain characters due to operating system limitations, causing file synchronization to fail when these characters are present.
For existing deployments, any files or directories containing restricted characters must be renamed before updates within the file or (sub)directory can succeed.
Nextcloud provides tooling for renaming affected files using an [`occ command`](https://docs.nextcloud.com/server/latest/admin_manual/occ_command.html#sanitize-filenames) that can be executed by the operator, the command also supports a dry-run mode.
You can customize the default restriction settings in `functional.yaml.gotmpl`:
```yaml
functional:
filestore:
naming:
forbiddenChars:
- '*'
- '"'
- '|'
- '?'
- ';'
- ':'
- '\'
- '/'
- '~'
- '<'
- '>'
```
#### Helmfile new default: New groupware settings changing current behaviour
**Target group:** All openDesk deployments using OX App Suite
The following options, newly introduced in `functional.yaml.gotmpl`, modify the previous default behavior of openDesk. Please review whether the new defaults are appropriate for your deployment:
* `functional.groupware.mail.inbound.forward.enabled: false`
This setting prevents users from forwarding all incoming emails to external accounts.
Instead, the new option `functional.groupware.mail.inbound.notify.enabled: true` enables notifications to user-defined email addresses when new messages arrive.
To keep the previous behavior, set `forward` to `true` and `notify` to `false`.
* `functional.groupware.userProfile.editRealName: false`
This setting prevents users from editing their display name in OX App Suite (e.g. the name shown when sending emails, in addition to the sender address).
The display name is centrally managed by the openDesk IAM.
To allow users to change it within OX App Suite, set this option to `true`.
> **Note**<br>
> openDesk v1.8.0 adds even more options under `functional.groupware.*` while retaining the current default behaviour.
#### New application default: Nextcloud apps "Spreed" and "Comments" no longer enabled by default
**Target group:** All openDesk deployments using the fileshare module.
The following Nextcloud apps/functions are no longer enabled by default. Please check if they are required in your deployment, i.e. are used by the user:
* [Spreed](https://apps.nextcloud.com/apps/spreed): Used in openDesk to provide a chat tab to the file/directory details pane in the fileshare application.
* Comments: Core app that lets users leave comments in the activity tab of the file/directory details pane.
If required the apps can be enabled using the openDesk customization options for `opendeskNextcloudManagement`, see `customizations.yaml.gotmpl` for details, with the following settings:
```yaml
configuration:
feature:
comments:
enabled: true
apps:
spreed:
enabled: true
```
#### New application default: Gravatar is switched off for Jitsi and OpenProject
**Target group:** All openDesk deployments using the video conference and project module that explicitly want Gravatar support.
Gravatar support is no longer enabled by default in Jitsi and OpenProject. In case it is required openDesk's customization options can be used to enabled it, see `customizations.yaml.gotmpl` for details.
- Jitsi: `customization.release.jitsi` with
```yaml
jitsi:
web:
extraConfig:
disableThirdPartyRequests: false
```
- Open Project: `customization.release.openproject` with
```yaml
environment:
OPENPROJECT_PLUGIN__OPENPROJECT__AVATARS: '{enable_gravatars: true, enable_local_avatars: true}'
```
## 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
**Target group:** All deployments that set `app.notes.enabled: true` (default is `false`).
We replaced the Helm Chart used for the Notes (aka "Impress") deployment. If you have enabled Notes in your deployment, you must manually uninstall the old chart before upgrading to openDesk v1.7.0.
```shell
helm uninstall -n <your_namespace> impress
```
In case you are using `annotation.notes` they have to be moved into one of the remaining dicts, see [`annotations.yaml.gotmpl`](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/develop/helmfile/environments/default/annotations.yaml.gotmpl) for details:
```yaml
annotation:
notesBackend: {}
notesFrontend: {}
notesYProvider: {}
```
### Post-upgrade to v1.7.0+
#### Upstream fix: Provisioning of functional mailboxes
**Target group:** Deployments with OX App Suite that make use of IAM maintained functional mailboxes.
The update of OX Connector included in openDesk 1.7.0 fixes an issue with the provisioning of IAM maintained functional mailboxes. If your deployment makes use of these mailboxes it is recommended to trigger a full sync of the OX App Suite provisioning by recreating the OX Connector's provisioning subscription using calls to the provisioning API that is temporary port-forwarded in the example below:
```shell
export NAMESPACE=<your_namespace>
export SUBSCRIPTION_NAME=ox-connector
export SUBSCRIPTION_SECRET_NAME=ums-provisioning-ox-credentials
export TEMPORARY_CONSUMER_JSON=$(mktemp)
export PROVISIONING_API_POD_NAME=$(kubectl -n ${NAMESPACE} get pods --no-headers -o custom-columns=":metadata.name" | grep ums-provisioning-api | tr -d '\n')
kubectl -n ${NAMESPACE} port-forward ${PROVISIONING_API_POD_NAME} 7777:7777 &
export PROVISIONING_PORT_FORWARD_PID=$!
sleep 10
kubectl -n ${NAMESPACE} get secret ${SUBSCRIPTION_SECRET_NAME} -o json | jq '.data | map_values(@base64d)' | jq -r '."ox-connector.json"' > ${TEMPORARY_CONSUMER_JSON}.json
export PROVISIONING_ADMIN_PASSWORD=$(kubectl -n ${NAMESPACE} get secret ums-provisioning-api-admin -o jsonpath='{.data.password}' | base64 --decode)
# Delete the current subscription
curl -o - -u "admin:${PROVISIONING_ADMIN_PASSWORD}" -X DELETE http://localhost:7777/v1/subscriptions/${SUBSCRIPTION_NAME}
# Recreate the subscription
curl -u "admin:${PROVISIONING_ADMIN_PASSWORD}" -H 'Content-Type: application/json' -d @${TEMPORARY_CONSUMER_JSON}.json http://localhost:7777/v1/subscriptions
kill ${PROVISIONING_PORT_FORWARD_PID}
rm ${TEMPORARY_CONSUMER_JSON}
```
## v1.6.0+ ## v1.6.0+
### Pre-upgrade to v1.6.0+ ### Pre-upgrade to v1.6.0+
#### Upstream constraint: Nubus' external secrets #### Upstream contraint: Nubus' external secrets
**Target group:** Operators that use external secrets for Nubus. **Target group:** Operators that use external secrets for Nubus.

View File

@@ -20,7 +20,7 @@ openDesk uses role-based access control (RBAC) to manage permissions. This syste
* [Administrative access to applications](#administrative-access-to-applications) * [Administrative access to applications](#administrative-access-to-applications)
* [Custom groups](#custom-groups) * [Custom groups](#custom-groups)
* [Assigning roles/groups and permissions](#assigning-rolesgroups-and-permissions) * [Assigning roles/groups and permissions](#assigning-rolesgroups-and-permissions)
* [Predefined roles/user templates](#predefined-rolesuser-templates) * [Predefined roles / user templates](#predefined-roles--user-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)
@@ -84,7 +84,7 @@ openDesk includes predefined groups. Please see below.
- **Domain Users**: Members of this group are *openDesk Users*. - **Domain Users**: Members of this group are *openDesk Users*.
- **Domain Admins**: Members of this group are *openDesk IAM Administrators*. By default, this group has two-factor authentication (2FA) enabled. - **Domain Admins**: Members of this group are *openDesk IAM Administrators*. By default, this group has two-factor authentication (2FA) enabled.
- **2FA Users**: Members of this group that are forced to use two-factor authentication (2FA). - **2fa-users**: Members of this group that are forced to use two-factor authentication (2FA).
- **IAM API - Full Access**: Members of this group have full (read and write) access to the IAM's REST API. - **IAM API - Full Access**: Members of this group have full (read and write) access to the IAM's REST API.
### Application groups ### Application groups
@@ -191,7 +191,7 @@ While the overall role and permission setup must be checked by the customer, inc
Managing all application permissions within the IAM would require a superset of permissions to be available in the IAM. This would lead to a high level of administrative complexity. Instead, the application specific permissions are usually managed within an application itself and mapped to roles/groups that are managed in the IAM. Managing all application permissions within the IAM would require a superset of permissions to be available in the IAM. This would lead to a high level of administrative complexity. Instead, the application specific permissions are usually managed within an application itself and mapped to roles/groups that are managed in the IAM.
## Roles/Groups ## Roles/groups
Within IAM groups, the visibility of openDesk applications can be configured. Like with users, this is done in the "openDesk" tab of the [group administration](https://docs.opendesk.eu/administration/gruppen/). Within IAM groups, the visibility of openDesk applications can be configured. Like with users, this is done in the "openDesk" tab of the [group administration](https://docs.opendesk.eu/administration/gruppen/).

View File

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

View File

@@ -139,6 +139,6 @@ Helmfile requires [HelmDiff](https://github.com/databus23/helm-diff) to compare
[^1]: Due to a [Helm bug](https://github.com/helm/helm/issues/30890) Helm 3.18.0 is not supported. [^1]: Due to a [Helm bug](https://github.com/helm/helm/issues/30890) Helm 3.18.0 is not supported.
[^2]: Due to [restrictions on Kubernetes `emptyDir`](https://github.com/kubernetes/kubernetes/pull/130277) you need a volume provisioner that has sticky bit support, otherwise the OpenProject seeder job will fail. E.g. the `local-path-provisioner` does not have sticky bit support. [^2]: Due to [restrictions on Kubernetes `emptyDir`](https://github.com/kubernetes/kubernetes/pull/130277) you need a volume provisioner that has sticky bit support, otherwise the OpenProject seeder job will fail.
[^3]: Required for Dovecot Pro as part of openDesk Enterprise Edition. [^3]: Required for Dovecot Pro as part of openDesk Enterprise Edition.

View File

@@ -173,8 +173,8 @@ This list gives you an overview of templated security settings and if they compl
| **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 | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes |
| **notes**/impress/frontend | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes | | **notes**/impress/frontend | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes |
| **notes**/impress/y-provider | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes | | **notes**/impress/yProvider | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes |
| **nubus**/intercom-service | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes | | **nubus**/intercom-service | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
| **nubus**/intercom-service/provisioning | :x: | n/a | n/a | n/a | n/a | n/a | n/a | yes | no | | **nubus**/intercom-service/provisioning | :x: | n/a | n/a | n/a | n/a | n/a | n/a | yes | no |
| **nubus**/opendesk-keycloak-bootstrap | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes | | **nubus**/opendesk-keycloak-bootstrap | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |

View File

@@ -8,12 +8,12 @@ SPDX-License-Identifier: Apache-2.0
This document covers the current status of security measures. This document covers the current status of security measures.
<!-- TOC --> <!-- TOC -->
* [Helm chart trust chain](#helm-chart-trust-chain) * [Helm Chart Trust Chain](#helm-chart-trust-chain)
* [Kubernetes security enforcements](#kubernetes-security-enforcements) * [Kubernetes Security Enforcements](#kubernetes-security-enforcements)
* [Network policies](#network-policies) * [NetworkPolicies](#networkpolicies)
<!-- 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.
# Network policies # NetworkPolicies
Kubernetes network policies are an essential measure to secure your Kubernetes apps and clusters. Kubernetes NetworkPolicies 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.
`NetworkPolicy` resources protect other deployments in your cluster or other services in your deployment from getting compromised when another NetworkPolicies 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 network policies. (IBAC) into Kubernetes native NetworkPolicies.
This requires the Otterize intents operator to be installed. This requires the Otterize intents operator to be installed.

View File

@@ -32,9 +32,7 @@ imagePullSecrets:
ingress: ingress:
enabled: {{ .Values.ingress.enabled }} enabled: {{ .Values.ingress.enabled }}
annotations: annotations:
{{- with .Values.annotations.coco.ingress }} {{ .Values.annotations.coco.ingress | toYaml | nindent 4 }}
{{ . | 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 }}"

View File

@@ -20,11 +20,6 @@ collabora:
--o:num_prespawn_children={{ .Values.technical.collabora.numPrespawnChildren }} --o:num_prespawn_children={{ .Values.technical.collabora.numPrespawnChildren }}
--o:remote_font_config.url=https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/apps/richdocuments/settings/fonts.json --o:remote_font_config.url=https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/apps/richdocuments/settings/fonts.json
--o:net.proto={{ if eq .Values.cluster.networking.ipFamilies "DualStack" }}all{{ else }}{{ .Values.cluster.networking.ipFamilies }}{{ end }} --o:net.proto={{ if eq .Values.cluster.networking.ipFamilies "DualStack" }}all{{ else }}{{ .Values.cluster.networking.ipFamilies }}{{ end }}
--o:security.enable_macros_execution={{ .Values.functional.weboffice.macros.enabled }}
--o:security.macro_security_level={{- $val := printf "%v" .Values.functional.weboffice.macros.securityLevel -}}{{- if or (eq $val "0") (eq $val "1") -}}{{ $val }}
{{- else -}}
{{ fail (printf "Invalid value for functional.weboffice.macros.securityLevel: '%s'. Allowed values: 0 or 1" $val) }}
{{- end }}
{{- if .Values.debug.enabled }} {{- if .Values.debug.enabled }}
--o:logging.level=debug --o:logging.level=debug
{{- else }} {{- else }}
@@ -35,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]=ws://collabora-controller-cool-controller:9000/controller/ws --o:monitors.monitor[0]=wss://{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}/controller/ws
--o:monitors.monitor[0][@retryInterval]=5 --o:monitors.monitor[0][@retryInterval]=5
{{- end }} {{- end }}
username: "collabora-internal-admin" username: "collabora-internal-admin"
@@ -143,22 +138,6 @@ securityContext:
drop: drop:
- "ALL" - "ALL"
add: add:
# For secuity reasons, esp. when macros are enabled, Collabora isolates all documents workspaces
# from each other. This isolation can work in three different ways. Collabora will automatically
# select the best option.
# - Using linux user namespaces is the most efficient one. You can test if user namespaces are
# available by running `unshare -Ur bash` in the Collabora Pod. If it returns
# `unshare: unshare failed: Operation not permitted`
# user namespaces are not available.
# Capabilities required: none
# Note: A container runtime still could gate syscalls like `unshare` with `CAP_SYSADMIN`. You could
# try using a custom seccompProfile in that case.
# Ref.: https://github.com/CollaboraOnline/online/blob/master/docker/cool-seccomp-profile.json
# - Linking the documents and runtime environment into their own context.
# Capabilities required: `CAP_SYSADMIN`, `CAP_SYSCHROOT`, `CHOWN`, `FOWNER`
# - Copying the documents and runtime environment into their own context,
# having impact on the performance.
# Capabilities required: `CAP_SYSCHROOT`, `CHOWN`, `FOWNER`
- "CHOWN" - "CHOWN"
- "FOWNER" - "FOWNER"
- "SYS_CHROOT" - "SYS_CHROOT"

View File

@@ -34,7 +34,6 @@ configuration:
- org.matrix.msc2762.receive.event:net.nordeck.whiteboard.document.chunk - org.matrix.msc2762.receive.event:net.nordeck.whiteboard.document.chunk
- org.matrix.msc2762.send.event:net.nordeck.whiteboard.document.snapshot - org.matrix.msc2762.send.event:net.nordeck.whiteboard.document.snapshot
- org.matrix.msc2762.receive.event:net.nordeck.whiteboard.document.snapshot - org.matrix.msc2762.receive.event:net.nordeck.whiteboard.document.snapshot
- org.matrix.msc2762.receive.state_event:m.room.create
- org.matrix.msc2762.send.state_event:m.room.power_levels# - org.matrix.msc2762.send.state_event:m.room.power_levels#
- org.matrix.msc2762.receive.state_event:m.room.power_levels# - org.matrix.msc2762.receive.state_event:m.room.power_levels#
- org.matrix.msc2762.receive.state_event:m.room.member - org.matrix.msc2762.receive.state_event:m.room.member
@@ -57,7 +56,6 @@ configuration:
- org.matrix.msc2762.receive.state_event:net.nordeck.poll - org.matrix.msc2762.receive.state_event:net.nordeck.poll
- org.matrix.msc2762.send.state_event:net.nordeck.poll.settings - org.matrix.msc2762.send.state_event:net.nordeck.poll.settings
- org.matrix.msc2762.receive.state_event:net.nordeck.poll.settings - org.matrix.msc2762.receive.state_event:net.nordeck.poll.settings
- org.matrix.msc2762.receive.state_event:m.room.create
- org.matrix.msc2762.receive.state_event:m.room.power_levels - org.matrix.msc2762.receive.state_event:m.room.power_levels
- org.matrix.msc2762.receive.state_event:m.room.name - org.matrix.msc2762.receive.state_event:m.room.name
- org.matrix.msc2762.receive.state_event:m.room.member - org.matrix.msc2762.receive.state_event:m.room.member

View File

@@ -51,7 +51,6 @@ configuration:
homeserver: homeserver:
serverName: {{ .Values.global.matrixDomain | default .Values.global.domain }} serverName: {{ .Values.global.matrixDomain | default .Values.global.domain }}
defaultRoomVersion: 12
appServiceConfigs: appServiceConfigs:
- as_token: {{ .Values.secrets.intercom.synapseAsToken | quote }} - as_token: {{ .Values.secrets.intercom.synapseAsToken | quote }}
hs_token: {{ .Values.secrets.intercom.synapseAsToken | quote }} hs_token: {{ .Values.secrets.intercom.synapseAsToken | quote }}
@@ -133,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.mailDomain | default .Values.global.domain }}" senderAddress: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.apps.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }} host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.apps.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
port: 25 port: 25
tls: false tls: false

View File

@@ -94,7 +94,6 @@ jitsi:
- "{{ .Values.global.hosts.jitsi }}.{{ .Values.global.domain }}" - "{{ .Values.global.hosts.jitsi }}.{{ .Values.global.domain }}"
extraConfig: extraConfig:
doNotStoreRoom: {{ not .Values.functional.dataProtection.jitsiRoomHistory.enabled }} doNotStoreRoom: {{ not .Values.functional.dataProtection.jitsiRoomHistory.enabled }}
disableThirdPartyRequests: true
extraEnvs: extraEnvs:
TURN_ENABLE: "1" TURN_ENABLE: "1"
resources: resources:
@@ -303,7 +302,6 @@ jitsi:
{{- end }} {{- end }}
patchJVB: patchJVB:
backoffLimit: 12
configuration: configuration:
staticLoadbalancerIP: {{ .Values.cluster.networking.ingressGatewayIP | quote }} staticLoadbalancerIP: {{ .Values.cluster.networking.ingressGatewayIP | quote }}
loadbalancerStatusField: {{ .Values.cluster.networking.loadBalancerStatusField | quote }} loadbalancerStatusField: {{ .Values.cluster.networking.loadBalancerStatusField | quote }}
@@ -324,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.registryOpencodeDe .Values.global.imageRegistry .Values.images.jitsiPatchJVB.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .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 }}

View File

@@ -68,9 +68,7 @@ configuration:
notifyPush: notifyPush:
enabled: {{ gt .Values.replicas.nextcloudNotifyPush 0 }} enabled: {{ gt .Values.replicas.nextcloudNotifyPush 0 }}
spreed: spreed:
enabled: false enabled: true
comments:
enabled: false
circles: circles:
enabled: false enabled: false
@@ -132,7 +130,6 @@ configuration:
opendeskIntegration: opendeskIntegration:
centralNavigation: centralNavigation:
jsonUrl: "http://ums-portal-server/portal/navigation.json"
username: username:
value: "opendesk_username" value: "opendesk_username"
password: password:
@@ -164,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.mailDomain | default .Values.global.domain }}" mailDomain: "{{ .Values.global.domain }}"
security: "tls" security: "tls"
skipVerifyPeer: true skipVerifyPeer: true
@@ -178,8 +175,6 @@ configuration:
token: token:
value: {{ .Values.secrets.nextcloud.metricsToken | quote }} value: {{ .Values.secrets.nextcloud.metricsToken | quote }}
forbiddenChars: {{ join " " .Values.functional.filestore.naming.forbiddenChars | quote }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:

View File

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

View File

@@ -11,13 +11,6 @@ repositories:
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }} password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
oci: true oci: true
url: "{{ coalesce .Values.repositories.helm.registryOpencodeDe .Values.global.helmRegistry | default .Values.charts.notes.registry }}/{{ .Values.charts.notes.repository }}" url: "{{ coalesce .Values.repositories.helm.registryOpencodeDe .Values.global.helmRegistry | default .Values.charts.notes.registry }}/{{ .Values.charts.notes.repository }}"
- name: "notes-customization-repo"
keyring: "../../files/gpg-pubkeys/opencode.gpg"
verify: {{ .Values.charts.notesCustomization.verify }}
username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }}
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
oci: true
url: "{{ coalesce .Values.repositories.helm.registryOpencodeDe .Values.global.helmRegistry | default .Values.charts.notesCustomization.registry }}/{{ .Values.charts.notesCustomization.repository }}"
releases: releases:
- name: "impress" - name: "impress"
@@ -31,17 +24,6 @@ releases:
{{- end }} {{- end }}
installed: {{ .Values.apps.notes.enabled }} installed: {{ .Values.apps.notes.enabled }}
timeout: 1800 timeout: 1800
- name: "impress-customization"
chart: "notes-customization-repo/{{ .Values.charts.notesCustomization.name }}"
version: "{{ .Values.charts.notesCustomization.version }}"
wait: true
values:
- "values-customization.yaml.gotmpl"
{{- range .Values.customization.release.notesCustomization }}
- {{ . }}
{{- end }}
installed: {{ .Values.apps.notes.enabled }}
timeout: 1800
commonLabels: commonLabels:
deploy-stage: "component-1" deploy-stage: "component-1"

View File

@@ -1,8 +0,0 @@
# SPDX-FileCopyrightText: 2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
# SPDX-License-Identifier: Apache-2.0
---
frontend:
runtimeEnvs:
ICS_BASE_URL: {{ printf "https://%s.%s" .Values.global.hosts.intercomService .Values.global.domain | quote }}
PORTAL_BASE_URL: {{ printf "https://%s.%s" .Values.global.hosts.nubus .Values.global.domain | quote }}
...

View File

@@ -1,244 +1,143 @@
# SPDX-FileCopyrightText: 2024-2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH # SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
--- ---
global:
collaborationServerSecret:
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:
value: {{ .Values.secrets.notes.collaborationSecret | quote }}
backend:
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.notesBackend.registry | quote }} repository: {{ printf "%s/%s" (coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.notesBackend.registry) (.Values.images.notesBackend.repository) | quote }}
repository: {{ .Values.images.notesBackend.repository | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
pullPolicy: "IfNotPresent" tag: {{ .Values.images.notesBackend.tag }}
tag: {{ .Values.images.notesBackend.tag | quote }} credentials:
name: {{ .Values.global.imagePullSecrets | first | quote }}
ingress: ingress:
enabled: {{ .Values.ingress.enabled }}
className: {{ .Values.ingress.ingressClassName }}
host: "{{ .Values.global.hosts.notes }}.{{ .Values.global.domain }}"
tls:
enabled: "{{ .Values.ingress.tls.enabled }}"
secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations: annotations:
"nginx.ingress.kubernetes.io/proxy-body-size": "{{ .Values.ingress.parameters.bodySize.notes }}" nginx.ingress.kubernetes.io/proxy-body-size: "{{ .Values.ingress.parameters.bodySize.notes }}"
"nginx.ingress.kubernetes.io/proxy-read-timeout": "{{ .Values.ingress.parameters.bodyTimeout.notes }}" nginx.ingress.kubernetes.io/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.notes }}"
"nginx.ingress.kubernetes.io/proxy-send-timeout": "{{ .Values.ingress.parameters.bodyTimeout.notes }}" nginx.ingress.kubernetes.io/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.notes }}"
{{- if .Values.annotations.notesBackend.ingress }} nginx.org/client-max-body-size: "{{ .Values.ingress.parameters.bodySize.notes }}"
{{ .Values.annotations.notesBackend.ingress | toYaml | nindent 6 }} nginx.org/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.notes }}s"
nginx.org/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.notes }}s"
ingressCollaborationWS:
enabled: {{ .Values.ingress.enabled }}
className: {{ .Values.ingress.ingressClassName }}
host: "{{ .Values.global.hosts.notes }}.{{ .Values.global.domain }}"
path: "/collaboration/ws/"
tls:
enabled: "{{ .Values.ingress.tls.enabled }}"
secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
nginx.ingress.kubernetes.io/enable-websocket: "true"
nginx.ingress.kubernetes.io/proxy-read-timeout: "86400"
nginx.ingress.kubernetes.io/proxy-send-timeout: "86400"
nginx.ingress.kubernetes.io/upstream-hash-by: $arg_room
nginx.ingress.kubernetes.io/auth-response-headers: null
nginx.ingress.kubernetes.io/auth-url: null
{{- with .Values.annotations.notes.ingressCollaborationWS }}
{{ . | toYaml | nindent 4 }}
{{- end }} {{- end }}
ingressClassName: {{ .Values.ingress.ingressClassName }}
ingressAdmin: ingressAdmin:
enabled: false enabled: {{ .Values.ingress.enabled }}
className: {{ .Values.ingress.ingressClassName }}
host: "{{ .Values.global.hosts.notes }}.{{ .Values.global.domain }}"
tls:
enabled: "{{ .Values.ingress.tls.enabled }}"
secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations: annotations:
{{ .Values.annotations.notesBackend.ingressAdmin | toYaml | nindent 6 }} {{ .Values.annotations.notes.ingressAdmin | toYaml | nindent 4 }}
ingressClassName: {{ .Values.ingress.ingressClassName }}
replicaCount: {{ .Values.replicas.notesBackend }} ingressMedia:
configuration: enabled: {{ .Values.ingress.enabled }}
ai: className: {{ .Values.ingress.ingressClassName }}
apiKey: host: "{{ .Values.global.hosts.notes }}.{{ .Values.global.domain }}"
value: {{ .Values.ai.apiKey }}
baseUrl: {{ .Values.ai.endpoint }}
model: {{ .Values.ai.model | quote }}
aws:
endpointUrl: {{ printf "https://%s" (.Values.objectstores.notes.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }}
s3AccessKeyId:
value: {{ .Values.objectstores.notes.username }}
s3SecretAccessKey:
value: {{ .Values.objectstores.notes.secretKey | default .Values.secrets.minio.notesUser | quote }}
storageBucketName: {{ .Values.objectstores.notes.bucket }}
collaboration:
apiUrl: {{ printf "https://%s.%s/collaboration/api/" .Values.global.hosts.notes .Values.global.domain | quote }}
wsUrl: {{ printf "wss://%s.%s/collaboration/ws/" .Values.global.hosts.notes .Values.global.domain | quote }}
database:
host: {{ .Values.databases.notes.host | quote }}
name: {{ .Values.databases.notes.name | quote }}
password:
value: {{ .Values.databases.notes.password | default .Values.secrets.postgresql.notesUser | quote }}
port: {{ .Values.databases.notes.port | quote }}
user:
value: {{ .Values.databases.notes.username | quote }}
email:
brandName: "openDesk"
from: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.mailDomain | default .Values.global.domain }}"
host: "postfix"
port: "25"
logoImage: {{ printf "https://%s.%s/univention/portal/icons/entries/swp.notes.svg" .Values.global.hosts.nubus .Values.global.domain | quote }}
user:
value: {{ printf "%s@%s" "opendesk-system" ( .Values.global.mailDomain | default .Values.global.domain ) }}
password:
value: {{ .Values.secrets.postfix.opendeskSystemPassword | quote }}
oidc:
enabled: true
rpClientId:
value: "opendesk-notes"
rpClientSecret:
value: {{ .Values.secrets.keycloak.clientSecret.notes | quote }}
opJWKSEndpoint: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/certs"
opAuthorizationEndpoint: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/auth"
opTokenEndpoint: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/token"
opUserEndpoint: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/userinfo"
opLogoutEndpoint: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/logout"
rpScopes: "openid opendesk-notes-scope"
loginRedirectUrl: {{ printf "https://%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
loginRedirectUrlFailure: {{ printf "https://%s.%s" .Values.global.hosts.nubus .Values.global.domain | quote }}
logoutRedirectUrl: {{ printf "https://%s.%s" .Values.global.hosts.nubus .Values.global.domain | quote }}
redirectAllowedHosts: {{ printf "https://%s.%s/*" .Values.global.hosts.notes .Values.global.domain | quote }}
essentialClaims: "email"
fullnameFields: "given_name,family_name"
shortnameField: "given_name"
django:
secretKey:
value: {{ .Values.secrets.notes.djangoSecretKey }}
createSuperuser: true
superuserEmail:
value: {{ printf "default.admin@%s" .Values.global.domain | quote }}
superuserPassword:
value: {{ .Values.secrets.notes.superuser }}
frontendTheme: "openDesk"
redisUrl:
value: "redis://default:{{ .Values.cache.notes.password | default .Values.secrets.redis.password }}@{{ .Values.cache.notes.host }}:{{ .Values.cache.notes.port }}/7"
extraEnvVars:
- name: "FRONTEND_HOMEPAGE_FEATURE_ENABLED"
value: "False"
- name: "FRONTEND_FOOTER_FEATURE_ENABLED"
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:
{{ .Values.annotations.notesBackend.pod | toYaml | nindent 4 }}
podAnnotationsCreateUser:
{{ .Values.annotations.notesBackend.createUserJob | toYaml | nindent 4 }}
podAnnotationsMigrate:
{{ .Values.annotations.notesBackend.migrateJob | toYaml | nindent 4 }}
podSecurityContext:
enabled: true
fsGroup: 1000
fsGroupChangePolicy: "Always"
resources:
{{ .Values.resources.notesBackend | toYaml | nindent 4 }}
service:
annotations: annotations:
{{ .Values.annotations.notesBackend.service | toYaml | nindent 6 }} nginx.ingress.kubernetes.io/auth-response-headers: "Authorization, X-Amz-Date, X-Amz-Content-SHA256"
extraVolumes: nginx.ingress.kubernetes.io/auth-url: "https://{{ .Values.global.hosts.notes }}.{{ .Values.global.domain }}/api/v1.0/documents/media-auth/"
- name: "customization-volume" nginx.ingress.kubernetes.io/upstream-vhost: {{ .Values.objectstores.notes.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
configMap: nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
name: "impress-customization" nginx.ingress.kubernetes.io/use-regex: "true"
{{- if .Values.certificate.selfSigned }} nginx.ingress.kubernetes.io/rewrite-target: /{{ .Values.objectstores.notes.bucket }}/$1
- name: "trusted-cert-secret-volume" nginx.ingress.kubernetes.io/session-cookie-path: /media
secret: {{- with .Values.annotations.notes.ingressMedia }}
secretName: "opendesk-certificates-ca-tls" {{ . | toYaml | nindent 4 }}
items:
- key: "ca.crt"
path: "ca-certificates.crt"
{{- end }}
extraVolumeMounts:
- name: "customization-volume"
mountPath: "/app/impress/configuration/theme/default.json"
subPath: "theme.json"
{{- if .Values.certificate.selfSigned }}
- name: "trusted-cert-secret-volume"
mountPath: "/usr/local/lib/python3.13/site-packages/certifi/cacert.pem"
subPath: "ca-certificates.crt"
{{- end }} {{- end }}
tls:
enabled: "{{ .Values.ingress.tls.enabled }}"
secretName: {{ .Values.ingress.tls.secretName | quote }}
ingressCollaborationApi:
enabled: {{ .Values.ingress.enabled }}
className: {{ .Values.ingress.ingressClassName }}
host: "{{ .Values.global.hosts.notes }}.{{ .Values.global.domain }}"
path: /collaboration/api/
tls:
enabled: "{{ .Values.ingress.tls.enabled }}"
secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.notes.ingressCollaborationAPI | toYaml | nindent 4 }}
serviceMedia:
host: {{ .Values.objectstores.notes.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
port: {{ .Values.objectstores.notes.port | default 443 }}
annotations:
{{ .Values.annotations.notes.serviceMedia | toYaml | nindent 4 }}
frontend: frontend:
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.notesFrontend.registry | quote }} repository: {{ printf "%s/%s" (coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.notesFrontend.registry) (.Values.images.notesFrontend.repository) | quote }}
repository: {{ .Values.images.notesFrontend.repository | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
pullPolicy: "IfNotPresent" tag: {{ .Values.images.notesFrontend.tag }}
tag: {{ .Values.images.notesFrontend.tag | quote }} envVars:
ingress: PORT: 8080
enabled: true NEXT_PUBLIC_API_ORIGIN: {{ printf "https://%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
annotations: NEXT_PUBLIC_MEDIA_URL: {{ printf "https://%s" (.Values.objectstores.notes.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }}
{{ .Values.annotations.notesFrontend.ingress | toYaml | nindent 6 }} runtimeEnvs:
ingressClassName: {{ .Values.ingress.ingressClassName }} ICS_BASE_URL: {{ printf "https://%s.%s" .Values.global.hosts.intercomService .Values.global.domain | quote }}
ingressMedia: PORTAL_BASE_URL: {{ printf "https://%s.%s" .Values.global.hosts.nubus .Values.global.domain | quote }}
enabled: true replicas: {{ .Values.replicas.notesFrontend }}
annotations:
{{ .Values.annotations.notesFrontend.ingressMedia | toYaml | nindent 6 }}
ingressClassName: {{ .Values.ingress.ingressClassName }}
configuration:
objectStoreHost: {{ printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain | quote }}
resources: resources:
{{ .Values.resources.notesFrontend | toYaml | nindent 4 }} {{ .Values.resources.notesFrontend | toYaml | nindent 4 }}
containerSecurityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
drop: drop:
- "ALL" - "ALL"
enabled: true
privileged: false privileged: false
runAsUser: 1000 runAsUser: 1001
runAsGroup: 1000 runAsGroup: 1001
seccompProfile: seccompProfile:
type: "RuntimeDefault" type: "RuntimeDefault"
readOnlyRootFilesystem: true readOnlyRootFilesystem: true
runAsNonRoot: 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 }}
serviceMedia:
annotations:
{{ .Values.annotations.notesFrontend.service | toYaml | nindent 6 }}
extraVolumes:
- name: "customization-volume"
configMap:
name: "impress-customization"
extraVolumeMounts:
- name: "customization-volume"
mountPath: "/usr/share/nginx/html/runtime-env.js"
subPath: "runtime-env.js"
y-provider: yProvider:
image: image:
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.notesYProvider.registry | quote }} repository: {{ printf "%s/%s" (coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.notesYProvider.registry) (.Values.images.notesYProvider.repository) | quote }}
repository: {{ .Values.images.notesYProvider.repository | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
pullPolicy: "IfNotPresent"
tag: {{ .Values.images.notesYProvider.tag }} tag: {{ .Values.images.notesYProvider.tag }}
replicaCount: 1 resources:
debug: true {{ .Values.resources.notesYProvider | toYaml | nindent 4 }}
{{- if .Values.certificate.selfSigned }} replicas: {{ .Values.replicas.notesYProvider }}
extraEnvVars: securityContext:
- name: "NODE_EXTRA_CA_CERTS"
value: "/etc/ssl/certs/cacert.pem"
extraVolumes:
- name: "trusted-cert-secret-volume"
secret:
secretName: "opendesk-certificates-ca-tls"
items:
- key: "ca.crt"
path: "ca-certificates.crt"
extraVolumeMounts:
- name: "trusted-cert-secret-volume"
mountPath: "/etc/ssl/certs/cacert.pem"
subPath: "ca-certificates.crt"
{{- end }}
containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
drop: drop:
- "ALL" - "ALL"
enabled: true
privileged: false privileged: false
runAsUser: 1001 runAsUser: 1001
runAsGroup: 1001 runAsGroup: 1001
@@ -248,21 +147,139 @@ y-provider:
runAsNonRoot: true runAsNonRoot: true
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.notesBackend | toYaml | nindent 6 }} {{ .Values.seLinuxOptions.notesBackend | toYaml | nindent 6 }}
ingressCollaborationApi: envVars:
annotations: COLLABORATION_BACKEND_BASE_URL: {{ printf "https://%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
{{ .Values.annotations.notesYProvider.ingressCollaborationAPI | toYaml | nindent 6 }} COLLABORATION_LOGGING: {{ if .Values.debug.enabled }}"true"{{ else }}"false"{{ end }}
ingressClassName: {{ .Values.ingress.ingressClassName }} COLLABORATION_SERVER_ORIGIN: {{ printf "https://%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
ingressCollaborationWs: COLLABORATION_SERVER_SECRET: {{ .Values.secrets.notes.collaborationSecret | quote }}
annotations: Y_PROVIDER_API_KEY: {{ .Values.secrets.notes.collaborationSecret | quote }}
{{ .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 }}
oidc:
clientId: "opendesk-notes"
clientSecret: {{ .Values.secrets.keycloak.clientSecret.notes | quote }}
aiApiKey: {{ .Values.ai.apiKey }}
aiBaseUrl: {{ .Values.ai.endpoint }}
djangoSuperUserEmail: "default.admin@{{ .Values.global.domain }}"
djangoSuperUserPass: {{ .Values.secrets.notes.superuser }}
djangoSecretKey: {{ .Values.secrets.notes.djangoSecretKey }}
backend:
image:
repository: {{ printf "%s/%s" (coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.notesBackend.registry) (.Values.images.notesBackend.repository) | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
tag: {{ .Values.images.notesBackend.tag }}
replicas: {{ .Values.replicas.notesBackend }}
envVars:
DB_HOST: {{ .Values.databases.notes.host | quote }}
DB_NAME: {{ .Values.databases.notes.name | quote }}
DB_USER: {{ .Values.databases.notes.username | quote }}
DB_PASSWORD: {{ .Values.databases.notes.password | default .Values.secrets.postgresql.notesUser | quote }}
DB_PORT: {{ .Values.databases.notes.port | quote }}
POSTGRES_DB: {{ .Values.databases.notes.name | quote }}
POSTGRES_USER: {{ .Values.databases.notes.username | quote }}
POSTGRES_PASSWORD: {{ .Values.databases.notes.password | default .Values.secrets.postgresql.notesUser | quote }}
FRONTEND_THEME: "openDesk"
REDIS_URL: "redis://default:{{ .Values.cache.notes.password | default .Values.secrets.redis.password }}@{{ .Values.cache.notes.host }}:{{ .Values.cache.notes.port }}/7"
AWS_S3_ENDPOINT_URL: {{ printf "https://%s" (.Values.objectstores.notes.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }}
AWS_S3_ACCESS_KEY_ID: {{ .Values.objectstores.notes.username }}
AWS_S3_SECRET_ACCESS_KEY: {{ .Values.objectstores.notes.secretKey | default .Values.secrets.minio.notesUser | quote }}
AWS_STORAGE_BUCKET_NAME: {{ .Values.objectstores.notes.bucket }}
DJANGO_CSRF_TRUSTED_ORIGINS: {{ printf "https://%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
DJANGO_SITE_DOMAIN: {{ printf "%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
DJANGO_SITE_NAME: {{ printf "%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
DJANGO_CONFIGURATION: Production
DJANGO_ALLOWED_HOSTS: "*"
DJANGO_SECRET_KEY: {{ .Values.secrets.notes.djangoSecretKey }}
DJANGO_SETTINGS_MODULE: impress.settings
DJANGO_SUPERUSER_PASSWORD: {{ .Values.secrets.notes.superuser }}
DJANGO_EMAIL_BRAND_NAME: "openDesk"
DJANGO_EMAIL_LOGO_IMG: {{ printf "https://%s.%s/univention/portal/icons/entries/swp.notes.svg" .Values.global.hosts.nubus .Values.global.domain | quote }}
DJANGO_EMAIL_FROM: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
DJANGO_EMAIL_HOST: "postfix"
DJANGO_EMAIL_PORT: 25
DJANGO_EMAIL_USE_SSL: False
DJANGO_EMAIL_HOST_USER: {{ printf "%s@%s" "opendesk-system" ( .Values.global.mailDomain | default .Values.global.domain ) }}
DJANGO_EMAIL_HOST_PASSWORD: {{ .Values.secrets.postfix.opendeskSystemPassword | quote }}
DJANGO_EMAIL_USE_TLS: False
OIDC_RP_CLIENT_ID: "opendesk-notes"
OIDC_RP_CLIENT_SECRET: {{ .Values.secrets.keycloak.clientSecret.notes | quote }}
OIDC_OP_JWKS_ENDPOINT: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/certs"
OIDC_OP_AUTHORIZATION_ENDPOINT: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/auth"
OIDC_OP_TOKEN_ENDPOINT: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/token"
OIDC_OP_USER_ENDPOINT: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/userinfo"
OIDC_OP_LOGOUT_ENDPOINT: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/logout"
OIDC_RP_SIGN_ALGO: RS256
OIDC_RP_SCOPES: "openid opendesk-notes-scope"
OIDC_USERINFO_SHORTNAME_FIELD: "given_name"
OIDC_USERINFO_FULLNAME_FIELDS: "given_name,family_name"
USER_OIDC_ESSENTIAL_CLAIMS: "email"
OIDC_REDIRECT_ALLOWED_HOSTS: {{ printf "https://%s.%s/*" .Values.global.hosts.notes .Values.global.domain | quote }}
OIDC_AUTH_REQUEST_EXTRA_PARAMS: "{}"
OIDC_RENEW_ID_TOKEN: "False"
LOGIN_REDIRECT_URL: {{ printf "https://%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
LOGIN_REDIRECT_URL_FAILURE: {{ printf "https://%s.%s" .Values.global.hosts.nubus .Values.global.domain | quote }}
LOGOUT_REDIRECT_URL: {{ printf "https://%s.%s" .Values.global.hosts.nubus .Values.global.domain | quote }}
AI_BASE_URL: {{ .Values.ai.endpoint | quote }}
AI_API_KEY: {{ .Values.ai.apiKey | quote }}
AI_MODEL: {{ .Values.ai.model | quote }}
Y_PROVIDER_API_KEY: {{ .Values.secrets.notes.collaborationSecret | quote }}
Y_PROVIDER_API_BASE_URL: {{ printf "https://%s.%s/api/" .Values.global.hosts.notes .Values.global.domain | quote }}
COLLABORATION_API_URL: {{ printf "https://%s.%s/collaboration/api/" .Values.global.hosts.notes .Values.global.domain | quote }}
COLLABORATION_SERVER_ORIGIN: {{ printf "https://%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
COLLABORATION_SERVER_SECRET: {{ .Values.secrets.notes.collaborationSecret | quote }}
COLLABORATION_WS_URL: {{ printf "wss://%s.%s/collaboration/ws/" .Values.global.hosts.notes .Values.global.domain | quote }}
FRONTEND_HOMEPAGE_FEATURE_ENABLED: False
FRONTEND_FOOTER_FEATURE_ENABLED: False
migrate:
command:
- "/bin/sh"
- "-c"
- |
python manage.py migrate --no-input
restartPolicy: Never
migrateJobAnnotations:
{{ .Values.annotations.notesBackend.migrateJob | toYaml | nindent 4 }}
createsuperuser:
command:
- "/bin/sh"
- "-c"
- |
python manage.py createsuperuser --email default.admin@{{ .Values.global.domain }} --password {{ .Values.secrets.notes.superuser }}
restartPolicy: Never
podAnnotations:
{{ .Values.annotations.notesBackend.pod | toYaml | nindent 4 }}
resources:
{{ .Values.resources.notesBackend | toYaml | nindent 4 }}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
privileged: false
runAsUser: 1001
runAsGroup: 1001
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.notesBackend | toYaml | nindent 6 }}
service:
annotations:
{{ .Values.annotations.notesBackend.service | toYaml | nindent 6 }}
... ...

View File

@@ -51,35 +51,30 @@ global:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
ics: ics:
session:
secret: {{ .Values.secrets.intercom.secret | quote }} secret: {{ .Values.secrets.intercom.secret | quote }}
issuerBaseUrl: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}" issuerBaseUrl: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"
originRegex: "{{ .Values.global.domain }}" originRegex: "{{ .Values.global.domain }}"
enableSessionCookie: true enableSessionCookie: true
userUniqueMapper: {{ if .Values.functional.chat.matrix.profile.useImmutableIdentifierForLocalpart }}"opendesk_useruuid"{{ else }}"opendesk_username"{{ end }} userUniqueMapper: {{ if .Values.functional.chat.matrix.profile.useImmutableIdentifierForLocalpart }}"opendesk_useruuid"{{ else }}"opendesk_username"{{ end }}
usernameClaim: "opendesk_username" usernameClaim: "opendesk_username"
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }}
keycloak: keycloak:
realm: {{ .Values.platform.realm | quote }} realm: {{ .Values.platform.realm | quote }}
default: default:
domain: {{ .Values.global.domain | quote }} domain: {{ .Values.global.domain | quote }}
oidc: oidc:
id: "opendesk-intercom" id: "opendesk-intercom"
clientSecret: {{ .Values.secrets.keycloak.clientSecret.intercom | quote }} secret: {{ .Values.secrets.keycloak.clientSecret.intercom | quote }}
matrix: matrix:
asSecret: {{ .Values.secrets.intercom.synapseAsToken | quote }}
subdomain: {{ .Values.global.hosts.synapse | quote }} subdomain: {{ .Values.global.hosts.synapse | quote }}
serverName: "{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}" serverName: "{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}"
auth:
applicationServiceSecret: {{ .Values.secrets.intercom.synapseAsToken | quote }}
nordeck: nordeck:
subdomain: {{ .Values.global.hosts.matrixNeoDateFixBot | quote }} subdomain: {{ .Values.global.hosts.matrixNeoDateFixBot | quote }}
portal: portal:
auth: apiKey: {{ .Values.secrets.centralnavigation.apiKey | quote }}
sharedSecret: {{ .Values.secrets.centralnavigation.apiKey | quote }}
redis: redis:
host: {{ .Values.cache.intercomService.host | quote }} host: {{ .Values.cache.intercomService.host | quote }}
port: {{ .Values.cache.intercomService.port }} port: {{ .Values.cache.intercomService.port }}
auth:
password: {{ .Values.cache.intercomService.password | default .Values.secrets.redis.password | quote }} password: {{ .Values.cache.intercomService.password | default .Values.secrets.redis.password | quote }}
openxchange: openxchange:
oci: true oci: true
@@ -121,20 +116,21 @@ provisioning:
# client's claims this way. # client's claims this way.
enabled: false enabled: false
config: config:
clientBaseUrl: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}" nubusBaseUrl: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}"
keycloak: keycloak:
url: "http://ums-keycloak:8080/realms/{{ .Values.platform.realm }}/"
username: "kcadmin"
realm: {{ .Values.platform.realm | quote }} realm: {{ .Values.platform.realm | quote }}
connection: connection:
protocol: "http" host: "{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}"
host: "ums-keycloak" baseUrl: "http://ums-keycloak:8080"
port: 8080 credentialSecret:
auth:
username: "kcadmin"
existingSecret:
name: "ums-opendesk-keycloak-credentials" name: "ums-opendesk-keycloak-credentials"
keyMapping:
password: "admin_password"
key: "admin_password" key: "admin_password"
ics_client:
clientSecret: {{ .Values.secrets.keycloak.clientSecret.intercom | quote }}
credentialSecret:
key: "ics_secret"
image: image:
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}

View File

@@ -86,16 +86,12 @@ global:
visible: "False" visible: "False"
wizard: wizard:
disabled: "No" disabled: "No"
ucs: ucs:
web: web:
theme: "light" theme: "light"
umc: umc:
# Configures that login redirects point to OIDC and not SAML. Does not disable the saml endpoint.
web:
sso:
enabled: false
cookie-banner: cookie-banner:
show: "false" show: "false"
login: login:
@@ -117,11 +113,6 @@ global:
token_validity_period: 172800 token_validity_period: 172800
blacklist: blacklist:
groups: __DELETE_KEY__ groups: __DELETE_KEY__
limit:
total:
day: {{ .Values.security.passwordResetLimits.day }}
hour: {{ .Values.security.passwordResetLimits.hour }}
minute: {{ .Values.security.passwordResetLimits.minute }}
ingress: ingress:
annotations: annotations:
@@ -268,9 +259,6 @@ keycloak:
nubusGuardian: nubusGuardian:
enabled: false enabled: false
nubusTwofaHelpdesk:
enabled: false
nubusNotificationsApi: nubusNotificationsApi:
enabled: false enabled: false
additionalAnnotations: additionalAnnotations:
@@ -554,7 +542,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.mailDomain | default .Values.global.domain }}" mailFrom: "{{ .Values.smtp.localpartNoReply }}@{{ .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 }}
@@ -599,7 +587,6 @@ nubusPortalConsumer:
auth: auth:
accessKeyId: {{ .Values.objectstores.nubus.username | quote }} accessKeyId: {{ .Values.objectstores.nubus.username | quote }}
secretAccessKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }} secretAccessKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
existingSecret: null
bucketName: {{ .Values.objectstores.nubus.bucket | quote }} bucketName: {{ .Values.objectstores.nubus.bucket | quote }}
endpoint: {{ printf "https://%s" (.Values.objectstores.nubus.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }} endpoint: {{ printf "https://%s" (.Values.objectstores.nubus.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }}
persistence: persistence:
@@ -704,7 +691,6 @@ nubusPortalServer:
auth: auth:
accessKeyId: {{ .Values.objectstores.nubus.username | quote }} accessKeyId: {{ .Values.objectstores.nubus.username | quote }}
secretAccessKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }} secretAccessKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
existingSecret: null
bucketName: {{ .Values.objectstores.nubus.bucket | quote }} bucketName: {{ .Values.objectstores.nubus.bucket | quote }}
endpoint: {{ printf "https://%s" (.Values.objectstores.nubus.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }} endpoint: {{ printf "https://%s" (.Values.objectstores.nubus.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }}
persistence: persistence:
@@ -720,8 +706,6 @@ nubusPortalServer:
featureToggles: featureToggles:
notifications_api: false notifications_api: false
centered_layout: true centered_layout: true
# Also enable adjustments in helmfile/files/theme/portal/stylesheet.css when enabling left_sidebar
left_sidebar: false
newsfeed: {{ and .Values.apps.xwiki.enabled .Values.functional.portal.newsfeed.enabled }} newsfeed: {{ and .Values.apps.xwiki.enabled .Values.functional.portal.newsfeed.enabled }}
umc_session_refresh: true umc_session_refresh: true
welcome_message: {{ .Values.functional.portal.welcomeMessage.enabled }} welcome_message: {{ .Values.functional.portal.welcomeMessage.enabled }}
@@ -1045,7 +1029,7 @@ nubusProvisioning:
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
persistence: persistence:
size: {{ .Values.persistence.storages.nubusProvisioningNats.size }} size: {{ .Values.persistence.storages.nubusProvisioningNats.size }}
# storageClassName: -- coalesce .Values.persistence.storages.nubusProvisioningNats.storageClassName .Values.persistence.storageClassNames.RWO | quote -- storageClass: {{ coalesce .Values.persistence.storages.nubusProvisioningNats.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
reloader: reloader:
image: image:
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusNatsReloader.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusNatsReloader.registry | quote }}
@@ -1326,8 +1310,6 @@ nubusStackDataUms:
portalLinkFeedback: {{ .Values.functional.portal.linkFeedback | quote }} portalLinkFeedback: {{ .Values.functional.portal.linkFeedback | quote }}
oxDefaultContext: "1" oxDefaultContext: "1"
oxContextHidden: true oxContextHidden: true
oxSystemUserPassword: {{ .Values.secrets.nubus.ldapSearch.ox }}
portalOxLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.openxchange .Values.global.domain }}
ldapSearchUsers: ldapSearchUsers:
{{- range $username, $password := .Values.secrets.nubus.ldapSearch }} {{- range $username, $password := .Values.secrets.nubus.ldapSearch }}
- username: {{ printf "ldapsearch_%s" $username | quote }} - username: {{ printf "ldapsearch_%s" $username | quote }}
@@ -1459,10 +1441,8 @@ nubusUmcServer:
password: "" password: ""
podAnnotations: podAnnotations:
{{ .Values.annotations.nubusUmcServer.pod | toYaml | nindent 4 }} {{ .Values.annotations.nubusUmcServer.pod | toYaml | nindent 4 }}
# Ref.: https://docs.software-univention.de/nubus-kubernetes-operation/1.x/en/reference.html#envvar-nubusUmcServer.podManagementPolicy
podManagementPolicy: "{{ if gt .Values.replicas.umsUmcServer 4 }}Parallel{{ else }}OrderedReady{{ end }}"
postgresql: postgresql:
selfservice: bundled: false
connection: connection:
host: {{ .Values.databases.umsSelfservice.host | quote }} host: {{ .Values.databases.umsSelfservice.host | quote }}
port: {{ .Values.databases.umsSelfservice.port | quote }} port: {{ .Values.databases.umsSelfservice.port | quote }}
@@ -1475,19 +1455,6 @@ nubusUmcServer:
# is used. # is used.
existingSecret: existingSecret:
name: null name: null
authSession:
connection:
host: {{ .Values.databases.umsAuthSession.host | quote }}
port: {{ .Values.databases.umsAuthSession.port | quote }}
auth:
username: {{ .Values.databases.umsAuthSession.username | quote }}
database: {{ .Values.databases.umsAuthSession.name | quote }}
password: {{ .Values.databases.umsAuthSession.password | default .Values.secrets.postgresql.umsAuthSessionUser | quote }}
# NOTE: Nubus has still an existing secret configured for legacy reasons.
# This disables the existing secret and ensures that the value from above
# is used.
existingSecret:
name: null
proxy: proxy:
image: image:
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusUmcServerProxy.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusUmcServerProxy.registry | quote }}
@@ -1575,6 +1542,7 @@ nubusKeycloakBootstrap:
- ldapAndUserModelAttributeName: "oxContextIDNum" - ldapAndUserModelAttributeName: "oxContextIDNum"
twoFactorAuthentication: twoFactorAuthentication:
enabled: true enabled: true
group: "2fa-users"
config: config:
debug: debug:
enabled: {{ .Values.debug.enabled }} enabled: {{ .Values.debug.enabled }}
@@ -1610,10 +1578,6 @@ nubusKeycloakBootstrap:
bindDn: {{ printf "uid=ldapsearch_keycloak,cn=users,%s" .Values.ldap.baseDn }} bindDn: {{ printf "uid=ldapsearch_keycloak,cn=users,%s" .Values.ldap.baseDn }}
existingSecret: existingSecret:
name: "ums-keycloak-bootstrap-ldap-opendesk-credentials" name: "ums-keycloak-bootstrap-ldap-opendesk-credentials"
oidc:
rp:
umcServer:
password: {{ .Values.secrets.keycloak.clientSecret.portal | quote }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-keycloak-bootstrap" intents.otterize.com/service-name: "ums-keycloak-bootstrap"
{{- with .Values.annotations.nubusKeycloakBootstrapNubus.pod }} {{- with .Values.annotations.nubusKeycloakBootstrapNubus.pod }}

View File

@@ -84,7 +84,7 @@ config:
managed: managed:
clientScopes: [ 'acr', 'web-origins', 'email', 'profile', 'microprofile-jwt', 'role_list', clientScopes: [ 'acr', 'web-origins', 'email', 'profile', 'microprofile-jwt', 'role_list',
'offline_access', 'roles', 'address', 'phone' ] 'offline_access', 'roles', 'address', 'phone' ]
clients: [ 'guardian-management-api', 'guardian-scripts', 'guardian-ui', 'UMC', 'UMC OIDC', '${client_account}', clients: [ 'guardian-management-api', 'guardian-scripts', 'guardian-ui', 'UMC', '${client_account}',
'${client_account-console}', '${client_admin-cli}', '${client_broker}', '${client_realm-management}', '${client_account-console}', '${client_admin-cli}', '${client_broker}', '${client_realm-management}',
'${client_security-admin-console}' ] '${client_security-admin-console}' ]
keycloak: keycloak:
@@ -101,8 +101,6 @@ config:
revokeRefreshToken: {{ .Values.functional.authentication.realmSettings.revokeRefreshToken }} revokeRefreshToken: {{ .Values.functional.authentication.realmSettings.revokeRefreshToken }}
ssoSessionIdleTimeout: {{ .Values.functional.authentication.realmSettings.ssoSessionIdleTimeout }} ssoSessionIdleTimeout: {{ .Values.functional.authentication.realmSettings.ssoSessionIdleTimeout }}
ssoSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.ssoSessionMaxLifespan }} ssoSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.ssoSessionMaxLifespan }}
accessCodeLifespanUserAction: {{ .Values.functional.authentication.realmSettings.accessCodeLifespanUserAction }}
accessCodeLifespanLogin: {{ .Values.functional.authentication.realmSettings.accessCodeLifespanLogin }}
offlineSessionIdleTimeout: {{ .Values.functional.authentication.realmSettings.offlineSessionIdleTimeout }} offlineSessionIdleTimeout: {{ .Values.functional.authentication.realmSettings.offlineSessionIdleTimeout }}
offlineSessionMaxLifespanEnabled: {{ .Values.functional.authentication.realmSettings.offlineSessionMaxLifespanEnabled }} offlineSessionMaxLifespanEnabled: {{ .Values.functional.authentication.realmSettings.offlineSessionMaxLifespanEnabled }}
offlineSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.offlineSessionMaxLifespan }} offlineSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.offlineSessionMaxLifespan }}
@@ -117,7 +115,7 @@ config:
idpDetails: {{ .Values.functional.authentication.ssoFederation.idpDetails | toYaml | nindent 6 }} idpDetails: {{ .Values.functional.authentication.ssoFederation.idpDetails | toYaml | nindent 6 }}
twoFactorSettings: twoFactorSettings:
additionalGroups: {{ .Values.functional.authentication.twoFactor.groups | toYaml | nindent 6 }} additionalGroups: {{ .Values.functional.authentication.twoFactor.groups | toYaml | nindent 6 }}
precreateGroups: [ 'Domain Admins', 'Domain Users', 'IAM API - Full Access', precreateGroups: [ 'Domain Admins', 'Domain Users', '2fa-users', 'IAM API - Full Access',
{{ if .Values.apps.nextcloud.enabled }}'managed-by-attribute-Fileshare', 'managed-by-attribute-FileshareAdmin',{{ end }} {{ if .Values.apps.nextcloud.enabled }}'managed-by-attribute-Fileshare', 'managed-by-attribute-FileshareAdmin',{{ end }}
{{ if .Values.apps.xwiki.enabled }}'managed-by-attribute-Knowledgemanagement', 'managed-by-attribute-KnowledgemanagementAdmin',{{ end }} {{ if .Values.apps.xwiki.enabled }}'managed-by-attribute-Knowledgemanagement', 'managed-by-attribute-KnowledgemanagementAdmin',{{ end }}
{{ if .Values.apps.element.enabled }}'managed-by-attribute-Livecollaboration', 'managed-by-attribute-LivecollaborationAdmin',{{ end }} {{ if .Values.apps.element.enabled }}'managed-by-attribute-Livecollaboration', 'managed-by-attribute-LivecollaborationAdmin',{{ end }}
@@ -529,10 +527,7 @@ config:
publicClient: false publicClient: false
authorizationServicesEnabled: false authorizationServicesEnabled: false
attributes: attributes:
use.refresh.tokens: true
backchannel.logout.session.required: true backchannel.logout.session.required: true
standard.token.exchange.enabled: true
standard.token.exchange.enableRefreshRequestedTokenType: "SAME_SESSION"
backchannel.logout.revoke.offline.tokens: true backchannel.logout.revoke.offline.tokens: true
backchannel.logout.url: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/backchannel-logout" backchannel.logout.url: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/backchannel-logout"
protocolMappers: protocolMappers:

View File

@@ -8,7 +8,7 @@ image:
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
imageInitCassandra: imageInitCassandra:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.cassandra.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .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 }}

View File

@@ -37,7 +37,6 @@ 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:
@@ -47,14 +46,7 @@ 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"
quotaRules: loginTrustedNetworks: {{ join " " .Values.cluster.networking.cidr | quote }}
- "*:storage={{ mul .Values.functional.groupware.quota.default 1024 }}M"
- "Trash:storage=+{{ div (mul (mul .Values.functional.groupware.quota.default 1024) 20) 100 }}M"
- "LAZY_EXPUNGE:ignore"
quotaGrace: "{{ div (mul (mul .Values.functional.groupware.quota.default 1024) 10) 100 }}M"
sieve:
notify:
mailtoEnvelopeFrom: "orig_recipient"
submission: submission:
enabled: true enabled: true
ssl: "no" ssl: "no"

View File

@@ -152,7 +152,6 @@ appsuite:
drive-client-windows-ox-route: drive-client-windows-ox-route:
annotations: annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.driveClientWindowsOxRoute | toYaml | nindent 10 }} {{ .Values.annotations.openxchangeAppsuiteIngress.driveClientWindowsOxRoute | toYaml | nindent 10 }}
{{ if .Values.functional.groupware.mail.encryption.enabled }}
guard-api-route: guard-api-route:
annotations: annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.guardApiRoute | toYaml | nindent 10 }} {{ .Values.annotations.openxchangeAppsuiteIngress.guardApiRoute | toYaml | nindent 10 }}
@@ -162,7 +161,6 @@ appsuite:
guard-pgp-route: guard-pgp-route:
annotations: annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.guardPgpRoute | toYaml | nindent 10 }} {{ .Values.annotations.openxchangeAppsuiteIngress.guardPgpRoute | toYaml | nindent 10 }}
{{ end }}
http-api-routes-api: http-api-routes-api:
annotations: annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.httpApiRoutesApi | toYaml | nindent 10 }} {{ .Values.annotations.openxchangeAppsuiteIngress.httpApiRoutesApi | toYaml | nindent 10 }}
@@ -220,11 +218,6 @@ appsuite:
productName: {{ .Values.theme.texts.productName | quote }} productName: {{ .Values.theme.texts.productName | quote }}
oidcLogin: true oidcLogin: true
oidcPath: "/oidc/" oidcPath: "/oidc/"
notificationMails:
button:
textColor: {{ .Values.theme.colors.white | quote }}
backgroundColor: {{ .Values.theme.colors.primary | quote }}
borderColor: {{ .Values.theme.colors.primary | quote }}
defaultScaling: defaultScaling:
nodes: nodes:
default: default:
@@ -247,35 +240,9 @@ appsuite:
open-xchange-admin-soap: "enabled" open-xchange-admin-soap: "enabled"
open-xchange-admin-soap-usercopy: "enabled" open-xchange-admin-soap-usercopy: "enabled"
open-xchange-admin-user-copy: "enabled" open-xchange-admin-user-copy: "enabled"
{{- if .Values.functional.migration.oxAppSuite.enabled }} {{- if .Values.technical.oxAppSuite.provisioning.dedicatedCoreMwPod }}
migration:
values:
packages:
status:
open-xchange-oidc: "disabled"
open-xchange-authentication-masterpassword: "enabled"
properties:
com.openexchange.calendar.allowOrganizerPartStatChanges: "true"
propertiesFiles:
/opt/open-xchange/etc/masterpassword-authentication.properties:
com.openexchange.authentication.masterpassword.password: {{ .Values.secrets.oxAppSuite.migrationsMasterPassword | quote }}
services:
- type: ClusterIP
ports:
- port: 80
targetPort: http
protocol: TCP
name: http
{{- end }}
scaling: scaling:
nodes: nodes:
{{- if .Values.functional.migration.oxAppSuite.enabled }}
migration:
replicas: 1
roles:
- "migration"
{{- end }}
{{- if .Values.technical.oxAppSuite.provisioning.dedicatedCoreMwPod }}
groupware: groupware:
replicas: {{ .Values.replicas.openxchangeCoreMW }} replicas: {{ .Values.replicas.openxchangeCoreMW }}
roles: roles:
@@ -287,15 +254,6 @@ appsuite:
replicas: 1 replicas: 1
roles: roles:
- "admin" - "admin"
{{- else }}
groupware:
replicas: {{ .Values.replicas.openxchangeCoreMW }}
roles:
- "http-api"
- "sync"
- "businessmobility"
- "request-analyzer"
- "admin"
{{- end }} {{- end }}
masterAdmin: "admin" masterAdmin: "admin"
masterPassword: {{ .Values.secrets.oxAppSuite.adminPassword | quote }} masterPassword: {{ .Values.secrets.oxAppSuite.adminPassword | quote }}
@@ -317,7 +275,7 @@ appsuite:
# enable admin pack # enable admin pack
# admin: enabled # admin: enabled
documents: "disabled" documents: "disabled"
guard: {{ ternary "enabled" "disabled" .Values.functional.groupware.mail.encryption.enabled }} guard: "enabled"
# disabling admin role breaks webmail # disabling admin role breaks webmail
# {{- if .Values.technical.oxAppSuite.provisioning.dedicatedCoreMwPod }} # {{- if .Values.technical.oxAppSuite.provisioning.dedicatedCoreMwPod }}
# admin: "disabled" # admin: "disabled"
@@ -354,17 +312,20 @@ appsuite:
{{ .Values.seLinuxOptions.openxchangeGotenberg | toYaml | nindent 10 }} {{ .Values.seLinuxOptions.openxchangeGotenberg | toYaml | nindent 10 }}
serviceAccount: serviceAccount:
create: false create: false
{{ if .Values.functional.groupware.mail.encryption.enabled }}
hooks: hooks:
beforeAppsuiteStart: beforeAppsuiteStart:
create-guard-dir.sh: | create-guard-dir.sh: |
mkdir -p /opt/open-xchange/guard-files mkdir -p /opt/open-xchange/guard-files
chown open-xchange:open-xchange /opt/open-xchange/guard-files chown open-xchange:open-xchange /opt/open-xchange/guard-files
{{ end }}
packages: packages:
status: status:
{{- if .Values.functional.migration.oxAppSuite.enabled }}
open-xchange-oidc: "disabled"
open-xchange-authentication-masterpassword: "enabled"
{{- else }}
open-xchange-oidc: "enabled" open-xchange-oidc: "enabled"
open-xchange-authentication-masterpassword: "disabled" open-xchange-authentication-masterpassword: "disabled"
{{- end }}
open-xchange-authentication-oauth: "disabled" open-xchange-authentication-oauth: "disabled"
open-xchange-authentication-database: "disabled" open-xchange-authentication-database: "disabled"
open-xchange-authentication-ldap: "disabled" open-xchange-authentication-ldap: "disabled"
@@ -386,11 +347,8 @@ 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 }}
open-xchange-authentication-application-storage-rdb: {{ ternary "enabled" "disabled" .Values.functional.groupware.davSupport.enabled }}
open-xchange-mail-categories: {{ ternary "enabled" "disabled" .Values.functional.groupware.mail.categories.enabled }}
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.share.guestHostname: {{ printf "%s.%s" .Values.global.hosts.openxchange .Values.global.domain }}
com.openexchange.UIWebPath: "/appsuite/" com.openexchange.UIWebPath: "/appsuite/"
com.openexchange.showAdmin: "false" com.openexchange.showAdmin: "false"
# PDF Export # PDF Export
@@ -439,7 +397,6 @@ appsuite:
com.openexchange.mail.transport.authType: "xoauth2" com.openexchange.mail.transport.authType: "xoauth2"
com.openexchange.mail.transportServer: "postfix-ox" com.openexchange.mail.transportServer: "postfix-ox"
com.openexchange.mail.transportServerSource: "global" com.openexchange.mail.transportServerSource: "global"
com.openexchange.mail.maxMailSize: {{ mul .Values.functional.groupware.mail.maxSize 1024 1024 | int | printf "%d" | quote }}
# Mail Login Resolver # Mail Login Resolver
com.openexchange.mail.login.resolver.enabled: "true" com.openexchange.mail.login.resolver.enabled: "true"
com.openexchange.mail.login.resolver.ldap.enabled: "true" com.openexchange.mail.login.resolver.ldap.enabled: "true"
@@ -449,7 +406,7 @@ appsuite:
com.openexchange.mail.login.resolver.ldap.contextNameAttribute: "oxContextIDNum" com.openexchange.mail.login.resolver.ldap.contextNameAttribute: "oxContextIDNum"
com.openexchange.mail.login.resolver.ldap.entitySearchFilter: "(&(oxContextIDNum=[cid])(uid=[uname]))" com.openexchange.mail.login.resolver.ldap.entitySearchFilter: "(&(oxContextIDNum=[cid])(uid=[uname]))"
com.openexchange.mail.login.resolver.ldap.mailLoginAttribute: "entryUUID" com.openexchange.mail.login.resolver.ldap.mailLoginAttribute: "entryUUID"
# Requirements for OX Connector # Requirements for OX-Connector
com.openexchange.user.enforceUniqueDisplayName: "false" com.openexchange.user.enforceUniqueDisplayName: "false"
com.openexchange.folderstorage.database.preferDisplayName: "false" com.openexchange.folderstorage.database.preferDisplayName: "false"
# Mailfilter # Mailfilter
@@ -463,61 +420,18 @@ appsuite:
# Old capability can be used to toggle all integrations with a single switch # Old capability can be used to toggle all integrations with a single switch
com.openexchange.capability.public-sector: "true" com.openexchange.capability.public-sector: "true"
# New capabilities in 2.0 # New capabilities in 2.0
com.openexchange.capability.public-sector-element: {{ .Values.apps.element.enabled | quote }} com.openexchange.capability.public-sector-element: "true"
com.openexchange.capability.public-sector-navigation: "true" com.openexchange.capability.public-sector-navigation: "true"
com.openexchange.capability.client-onboarding: "true" com.openexchange.capability.client-onboarding: "true"
com.openexchange.capability.dynamic-theme: "true" com.openexchange.capability.dynamic-theme: "true"
com.openexchange.capability.filestorage_nextcloud: "true" com.openexchange.capability.filestorage_nextcloud: "true"
com.openexchange.capability.filestorage_nextcloud_oauth: "true" com.openexchange.capability.filestorage_nextcloud_oauth: "true"
com.openexchange.capability.guard: {{ .Values.functional.groupware.mail.encryption.enabled | quote }} com.openexchange.capability.guard: "true"
com.openexchange.capability.guard-mail: {{ .Values.functional.groupware.mail.encryption.enabled | quote }} com.openexchange.capability.guard-mail: "true"
com.openexchange.capability.smime: {{ .Values.functional.groupware.mail.encryption.enabled | quote }} com.openexchange.capability.smime: "true"
com.openexchange.capability.share_links: "false"
com.openexchange.capability.invite_guests: "false"
com.openexchange.capability.document_preview: "true" com.openexchange.capability.document_preview: "true"
# Mail Categories
com.openexchange.mail.categories: {{ .Values.functional.groupware.mail.categories.enabled | quote }}
{{ if .Values.functional.groupware.mail.categories.enabled }}
com.openexchange.mail.categories.general.name.fallback: "General"
com.openexchange.mail.categories.general.name.de_DE: "Allgemein"
com.openexchange.mail.categories.identifiers: "newsletter,invites,socialmedia"
com.openexchange.mail.categories.newsletter.flag: "$newsletter"
com.openexchange.mail.categories.newsletter.name.fallback: "Newsletter"
com.openexchange.mail.categories.newsletter.name.de_DE: "Newsletter"
com.openexchange.mail.categories.newsletter.description: "Emails containing newsletters or promotional content"
com.openexchange.mail.categories.newsletter.description.de_DE: "E-Mails mit Newslettern oder Werbeinhalten"
com.openexchange.mail.categories.newsletter.icon: "megaphone"
com.openexchange.mail.categories.invites.flag: "$invites"
com.openexchange.mail.categories.invites.name.fallback: "Invitations"
com.openexchange.mail.categories.invites.name.de_DE: "Einladungen"
com.openexchange.mail.categories.invites.description: "Emails with event invitations and RSVPs"
com.openexchange.mail.categories.invites.description.de_DE: "E-Mails mit Veranstaltungseinladungen und Rückmeldungen"
com.openexchange.mail.categories.invites.icon: "calendar-check"
com.openexchange.mail.categories.socialmedia.flag: "$socialmedia"
com.openexchange.mail.categories.socialmedia.name.fallback: "Social Media"
com.openexchange.mail.categories.socialmedia.name.de_DE: "Soziale Medien"
com.openexchange.mail.categories.socialmedia.description: "Updates and notifications from social media platforms"
com.openexchange.mail.categories.socialmedia.description.de_DE: "Aktualisierungen und Benachrichtigungen von sozialen Medien"
com.openexchange.mail.categories.socialmedia.icon: "people"
com.openexchange.mail.user.categories.identifiers: "uc1,uc2,uc3"
com.openexchange.mail.categories.uc1.flag: "$uc1"
com.openexchange.mail.categories.uc1.name.fallback: "Your category 1"
com.openexchange.mail.categories.uc1.name.de_DE: "Eigene Kategorie 1"
com.openexchange.mail.categories.uc2.flag: "$uc2"
com.openexchange.mail.categories.uc2.name.fallback: "Your category 2"
com.openexchange.mail.categories.uc2.name.de_DE: "Eigene Kategorie 2"
com.openexchange.mail.categories.uc3.flag: "$uc3"
com.openexchange.mail.categories.uc3.name.fallback: "Your category 3"
com.openexchange.mail.categories.uc3.name.de_DE: "Eigene Kategorie 3"
{{- end }}
# functional.groupware.mail.inbound.*
com.openexchange.capability.public-sector-autonotify: {{ .Values.functional.groupware.mail.inbound.notify.enabled | quote }}
{{- if not .Values.functional.groupware.mail.inbound.forward.enabled }}
com.openexchange.mail.filter.blacklist.actions: "redirect"
{{- end }}
com.openexchange.mail.filter.options.apply.blockedActions: "redirect,notify"
# functional.groupware.externalSharing.*
com.openexchange.capability.share_links: {{ .Values.functional.groupware.externalSharing.shareLinks.enabled | quote }}
com.openexchange.capability.invite_guests: {{ .Values.functional.groupware.externalSharing.inviteGuests.enabled | quote }}
com.openexchange.share.guestCapabilityMode: "inherit"
# Secondary Accounts # Secondary Accounts
com.openexchange.mail.secondary.authType: "XOAUTH2" com.openexchange.mail.secondary.authType: "XOAUTH2"
com.openexchange.mail.transport.secondary.authType: "xoauth2" com.openexchange.mail.transport.secondary.authType: "xoauth2"
@@ -526,15 +440,14 @@ appsuite:
com.openexchange.file.storage.nextcloud.oauth.webdav.username.strategy: "user" com.openexchange.file.storage.nextcloud.oauth.webdav.username.strategy: "user"
com.openexchange.nextcloud.filepicker.includeAccessToken: "false" com.openexchange.nextcloud.filepicker.includeAccessToken: "false"
# Element integration # Element integration
com.openexchange.conference.element.enabled: {{ .Values.apps.element.enabled | quote }} com.openexchange.conference.element.enabled: "true"
com.openexchange.conference.element.meetingHostUrl: http://matrix-neodatefix-bot com.openexchange.conference.element.meetingHostUrl: http://matrix-neodatefix-bot
com.openexchange.conference.element.matrixLoginUrl: http://opendesk-synapse-web:8008/_matrix/client/v3/login com.openexchange.conference.element.matrixLoginUrl: http://opendesk-synapse-web:8008/_matrix/client/v3/login
com.openexchange.conference.element.matrixUuidClaimName: {{ ternary "opendesk_useruuid" "opendesk_username" .Values.functional.chat.matrix.profile.useImmutableIdentifierForLocalpart }} com.openexchange.conference.element.matrixUuidClaimName: {{ if .Values.functional.chat.matrix.profile.useImmutableIdentifierForLocalpart }}"opendesk_useruuid"{{ else }}"opendesk_username"{{ end }}
# GDPR # GDPR
com.openexchange.gdpr.dataexport.enabled: "false" com.openexchange.gdpr.dataexport.enabled: "false"
com.openexchange.gdpr.dataexport.active: "false" com.openexchange.gdpr.dataexport.active: "false"
# Guard # Guard
{{- if .Values.functional.groupware.mail.encryption.enabled }}
com.openexchange.guard.storage.file.fileStorageType: "file" com.openexchange.guard.storage.file.fileStorageType: "file"
com.openexchange.guard.storage.file.uploadDirectory: "/opt/open-xchange/guard-files/" com.openexchange.guard.storage.file.uploadDirectory: "/opt/open-xchange/guard-files/"
com.openexchange.guard.guestSMTPMailFrom: {{ printf "%s@%s" "opendesk-system" ( .Values.global.mailDomain | default .Values.global.domain ) }} com.openexchange.guard.guestSMTPMailFrom: {{ printf "%s@%s" "opendesk-system" ( .Values.global.mailDomain | default .Values.global.domain ) }}
@@ -548,20 +461,6 @@ appsuite:
# http = (await import('./io.ox/core/http.js')).default # http = (await import('./io.ox/core/http.js')).default
# await http.POST({ module: 'oxguard/smime', params: { action: 'test' } }) # await http.POST({ module: 'oxguard/smime', params: { action: 'test' } })
com.openexchange.smime.test: {{ .Values.debug.enabled | quote }} com.openexchange.smime.test: {{ .Values.debug.enabled | quote }}
{{- end }}
{{- if or (eq (coalesce .Values.service.type.dovecot .Values.cluster.service.type) "NodePort") (eq (coalesce .Values.service.type.dovecot .Values.cluster.service.type) "LoadBalancer") }}
# Client Onboarding
com.openexchange.client.onboarding.mail.imap.host: {{ .Values.global.domain | quote }}
com.openexchange.client.onboarding.mail.imap.port: "993"
com.openexchange.client.onboarding.mail.imap.secure: "true"
com.openexchange.client.onboarding.mail.imap.requireTls: "false"
com.openexchange.client.onboarding.mail.smtp.host: {{ .Values.global.domain | quote }}
com.openexchange.client.onboarding.mail.smtp.port: "587"
com.openexchange.client.onboarding.mail.smtp.secure: "false"
com.openexchange.client.onboarding.mail.smtp.requireTls: "true"
{{- else }}
com.openexchange.client.onboarding.enabled: "false"
{{- end }}
# DAV # DAV
{{- if .Values.functional.groupware.davSupport.enabled }} {{- if .Values.functional.groupware.davSupport.enabled }}
com.openexchange.caldav.enabled: "true" com.openexchange.caldav.enabled: "true"
@@ -570,9 +469,6 @@ 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>\""
@@ -583,12 +479,6 @@ 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"
@@ -612,10 +502,21 @@ appsuite:
com.openexchange.share.cryptKey: {{ .Values.secrets.oxAppSuite.shareCryptKey | quote }} com.openexchange.share.cryptKey: {{ .Values.secrets.oxAppSuite.shareCryptKey | quote }}
com.openexchange.conference.element.authToken: {{ .Values.secrets.oxAppSuite.synapseAsToken | quote }} com.openexchange.conference.element.authToken: {{ .Values.secrets.oxAppSuite.synapseAsToken | quote }}
propertiesFiles: propertiesFiles:
{{- if .Values.functional.migration.oxAppSuite.enabled }}
/opt/open-xchange/etc/masterpassword-authentication.properties:
com.openexchange.authentication.masterpassword.password: {{ .Values.secrets.oxAppSuite.migrationsMasterPassword | quote }}
{{- end }}
/opt/open-xchange/etc/AdminDaemon.properties: /opt/open-xchange/etc/AdminDaemon.properties:
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 }}
@@ -635,25 +536,9 @@ 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 }}/"
# Is user allowed to edit own display name
io.ox/mail//editRealName: {{ .Values.functional.groupware.userProfile.editRealName | quote }}
# Show the Enterprise Picker in the top right corner instead of the launcher drop-down # Show the Enterprise Picker in the top right corner instead of the launcher drop-down
io.ox/core//features/enterprisePicker/showLauncher: "false" io.ox/core//features/enterprisePicker/showLauncher: "false"
io.ox/core//features/enterprisePicker/showTopRightLauncher: "true" io.ox/core//features/enterprisePicker/showTopRightLauncher: "true"
@@ -664,9 +549,8 @@ appsuite:
# Resources # Resources
io.ox/core//features/resourceCalendars: "true" io.ox/core//features/resourceCalendars: "true"
io.ox/core//features/managedResources: "true" io.ox/core//features/managedResources: "true"
# Features # Categories
io.ox/core//features/signatureDesigner: "true" io.ox/core//features/categories: "true"
io.ox/core//features/categories: {{ .Values.functional.groupware.mail.categories.enabled | quote }}
io.ox/core//categories/predefined: > io.ox/core//categories/predefined: >
[{ "name": "Predefined", "color": "orange", "icon": "bi/exclamation-circle.svg" }] [{ "name": "Predefined", "color": "orange", "icon": "bi/exclamation-circle.svg" }]
# Nextcloud integration # Nextcloud integration
@@ -691,9 +575,6 @@ 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 }}
{{ if .Values.functional.groupware.mail.encryption.enabled }}
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)
@@ -701,7 +582,6 @@ appsuite:
oxguardpass: | oxguardpass: |
{{ .Values.secrets.oxAppSuite.oxguardMC }} {{ .Values.secrets.oxAppSuite.oxguardMC }}
{{ .Values.secrets.oxAppSuite.oxguardRC }} {{ .Values.secrets.oxAppSuite.oxguardRC }}
{{ end }}
redis: &redisConfiguration redis: &redisConfiguration
enabled: true enabled: true
mode: "standalone" mode: "standalone"
@@ -735,20 +615,6 @@ 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
@@ -971,7 +837,7 @@ appsuite:
create: false create: false
guard-ui: guard-ui:
enabled: {{ .Values.functional.groupware.mail.encryption.enabled }} enabled: true
imagePullSecrets: imagePullSecrets:
{{- range .Values.global.imagePullSecrets }} {{- range .Values.global.imagePullSecrets }}
- name: {{ . | quote }} - name: {{ . | quote }}
@@ -1001,7 +867,6 @@ appsuite:
{{ .Values.seLinuxOptions.openxchangeGuardUI | toYaml | nindent 8 }} {{ .Values.seLinuxOptions.openxchangeGuardUI | toYaml | nindent 8 }}
serviceAccount: serviceAccount:
create: false create: false
core-spellcheck: core-spellcheck:
enabled: false enabled: false

View File

@@ -49,11 +49,11 @@ oxConnector:
oxMasterAdmin: "admin" oxMasterAdmin: "admin"
oxMasterPassword: {{ .Values.secrets.oxAppSuite.adminPassword | quote }} oxMasterPassword: {{ .Values.secrets.oxAppSuite.adminPassword | quote }}
oxSmtpServer: "smtp://127.0.0.1:587" oxSmtpServer: "smtp://127.0.0.1:587"
oxSoapServer: {{ printf "http://%s.%s.svc.%s" "open-xchange-core-mw-admin" (.Values.apps.oxAppSuite.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }} oxSoapServer: "http://open-xchange-core-mw-admin"
provisioningApi: provisioningApi:
connection: connection:
baseUrl: {{ printf "http://%s.%s.svc.%s" "ums-provisioning-api" (.Values.apps.nubus.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }} baseUrl: "http://ums-provisioning-api"
auth: auth:
username: "ox-connector" username: "ox-connector"
password: {{ .Values.secrets.oxConnector.provisioningApiPassword | quote }} password: {{ .Values.secrets.oxConnector.provisioningApiPassword | quote }}
@@ -65,7 +65,7 @@ resourcesWaitForDependency:
persistence: persistence:
size: {{ .Values.persistence.storages.oxConnector.size | quote }} size: {{ .Values.persistence.storages.oxConnector.size | quote }}
#storageClass: {{ coalesce .Values.persistence.storages.oxConnector.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.oxConnector.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
podAnnotations: podAnnotations:
{{ .Values.annotations.nubusOxConnector.pod | toYaml | nindent 2 }} {{ .Values.annotations.nubusOxConnector.pod | toYaml | nindent 2 }}

View File

@@ -45,27 +45,23 @@ postfix:
domain: {{ .Values.global.mailDomain | default .Values.global.domain | quote }} domain: {{ .Values.global.mailDomain | default .Values.global.domain | quote }}
hostname: "postfix" hostname: "postfix"
inetProtocols: "ipv4" inetProtocols: "ipv4"
messageSizeLimit: {{ mul .Values.functional.groupware.mail.maxSize 1024 1024 | int | printf "%d" | quote }}
milterDefaultAction: "tempfail" milterDefaultAction: "tempfail"
overrides:
- fileName: "sasl_passwd.map"
content:
- {{ printf "%s %s:%s" .Values.smtp.host .Values.smtp.username .Values.smtp.password | quote }}
{{- if .Values.apps.dkimpy.enabled }} {{- if .Values.apps.dkimpy.enabled }}
dkimpyHost: "opendesk-dkimpy-milter.{{ .Release.Namespace }}.svc.{{.Values.cluster.networking.domain }}:8892" dkimpyHost: "opendesk-dkimpy-milter.{{ .Release.Namespace }}.svc.{{.Values.cluster.networking.domain }}:8892"
{{- end }} {{- end }}
minTLSVersion: "TLSv1.2"
smtpdTLSMandatoryCiphers: "medium" minTLSVersion: "TLSv1.3"
smtpdTLSMandatoryCiphers: "high"
rspamdHost: "" rspamdHost: ""
{{- if .Values.smtp.host }} relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }}
relayHost:
enabled: true
host: {{ .Values.smtp.host }}
port: {{ .Values.smtp.port }}
authentication:
username:
value: {{ .Values.smtp.username }}
password:
value: {{ .Values.smtp.password }}
smtpSASLAuthEnable: "yes"
{{- end }}
allowRelayNets: false allowRelayNets: false
smtpSASLAuthEnable: "yes"
smtpSASLPasswordMaps: "lmdb:/etc/postfix/sasl_passwd.map"
smtpTLSSecurityLevel: "encrypt" smtpTLSSecurityLevel: "encrypt"
smtpdSASLAuthEnable: "yes" smtpdSASLAuthEnable: "yes"
smtpdSASLSecurityOptions: "noanonymous" smtpdSASLSecurityOptions: "noanonymous"

View File

@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2024-2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH # SPDX-FileCopyrightText: 2024 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,5 +7,44 @@ additionalLabels:
{{ .Values.monitoring.prometheus.prometheusRules.labels | toYaml | nindent 2 }} {{ .Values.monitoring.prometheus.prometheusRules.labels | toYaml | nindent 2 }}
config: config:
{{ .Values.apps | toYaml | nindent 2 }} collabora:
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 }}

View File

@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2024-2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH # SPDX-FileCopyrightText: 2024 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,5 +8,45 @@ additionalLabels:
{{ .Values.monitoring.grafana.dashboards.labels | toYaml | nindent 2 }} {{ .Values.monitoring.grafana.dashboards.labels | toYaml | nindent 2 }}
config: config:
{{ .Values.apps | toYaml | nindent 2 }} apps:
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 }}
... ...

View File

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

View File

@@ -82,7 +82,7 @@ environment:
OPENPROJECT_SMTP__AUTHENTICATION: "cram_md5" OPENPROJECT_SMTP__AUTHENTICATION: "cram_md5"
OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "true" OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "true"
OPENPROJECT_SMTP__OPENSSL__VERIFY__MODE: "none" OPENPROJECT_SMTP__OPENSSL__VERIFY__MODE: "none"
OPENPROJECT_MAIL__FROM: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.mailDomain | default .Values.global.domain }}" OPENPROJECT_MAIL__FROM: "{{ .Values.smtp.localpartNoReply }}@{{ .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 }}/"
@@ -95,7 +95,6 @@ environment:
OPENPROJECT_SEED_DESIGN_MAIN__MENU__BG__HOVER__BACKGROUND: {{ .Values.theme.colors.secondaryGreyLight | quote }} OPENPROJECT_SEED_DESIGN_MAIN__MENU__BG__HOVER__BACKGROUND: {{ .Values.theme.colors.secondaryGreyLight | quote }}
OPENPROJECT_SEED_DESIGN_LOGO: "data:image/svg+xml;base64,{{ .Values.theme.imagery.logoHeaderSvgB64 }}" OPENPROJECT_SEED_DESIGN_LOGO: "data:image/svg+xml;base64,{{ .Values.theme.imagery.logoHeaderSvgB64 }}"
OPENPROJECT_SEED_DESIGN_FAVICON: "data:image/svg+xml;base64,{{ .Values.theme.imagery.projects.faviconSvg }}" OPENPROJECT_SEED_DESIGN_FAVICON: "data:image/svg+xml;base64,{{ .Values.theme.imagery.projects.faviconSvg }}"
OPENPROJECT_PLUGIN__OPENPROJECT__AVATARS: '{enable_gravatars: false, enable_local_avatars: true}'
{{- if .Values.certificate.selfSigned }} {{- if .Values.certificate.selfSigned }}
SSL_CERT_FILE: "/etc/ssl/certs/ca-certificates.crt" SSL_CERT_FILE: "/etc/ssl/certs/ca-certificates.crt"

View File

@@ -26,7 +26,7 @@ global:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.cassandra.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .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.registryOpencodeDe .Values.global.imageRegistry .Values.images.cassandraExporter.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .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 }}

View File

@@ -28,7 +28,7 @@ global:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.memcached.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .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 }}

View File

@@ -46,7 +46,7 @@ global:
allowInsecureImages: true allowInsecureImages: true
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.minio.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .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.registryOpencodeDe .Values.global.imageRegistry .Values.images.minio.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .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 }}

View File

@@ -54,27 +54,25 @@ postfix:
hostname: "postfix" hostname: "postfix"
inetProtocols: "ipv4" inetProtocols: "ipv4"
milterDefaultAction: "accept" milterDefaultAction: "accept"
overrides:
- fileName: "sasl_passwd.map"
content:
- {{ printf "%s %s:%s" .Values.smtp.host .Values.smtp.username .Values.smtp.password | quote }}
{{- if .Values.apps.dkimpy.enabled }} {{- if .Values.apps.dkimpy.enabled }}
dkimpyHost: "opendesk-dkimpy-milter.{{ .Release.Namespace }}.svc.{{.Values.cluster.networking.domain }}:8892" dkimpyHost: "opendesk-dkimpy-milter.{{ .Release.Namespace }}.svc.{{.Values.cluster.networking.domain }}:8892"
{{- end }} {{- end }}
rspamdHost: "" rspamdHost: ""
{{- if .Values.smtp.host }} relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }}
relayHost:
enabled: true
host: {{ .Values.smtp.host }}
port: {{ .Values.smtp.port }}
authentication:
username:
value: {{ .Values.smtp.username }}
password:
value: {{ .Values.smtp.password }}
smtpSASLAuthEnable: "yes"
{{- end }}
# Warning: This setting allows unauthenticated mail relay from relayNets! # Warning: This setting allows unauthenticated mail relay from relayNets!
allowRelayNets: true
relayNets: {{ join " " .Values.cluster.networking.cidr | quote }} relayNets: {{ join " " .Values.cluster.networking.cidr | quote }}
minTLSVersion: "TLSv1.2" allowRelayNets: true
smtpdTLSMandatoryCiphers: "medium"
minTLSVersion: "TLSv1.3"
smtpdTLSMandatoryCiphers: "high"
smtpSASLAuthEnable: "yes"
smtpSASLPasswordMaps: "lmdb:/etc/postfix/sasl_passwd.map"
smtpTLSSecurityLevel: "encrypt" smtpTLSSecurityLevel: "encrypt"
smtpdSASLAuthEnable: "yes" smtpdSASLAuthEnable: "yes"
smtpdSASLSecurityOptions: "noanonymous" smtpdSASLSecurityOptions: "noanonymous"

View File

@@ -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.registryOpencodeDe .Values.global.imageRegistry .Values.images.redis.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .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 }}

View File

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

View File

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

View File

@@ -5,7 +5,7 @@ images:
collabora: collabora:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/collabora/images/collabora-online-for-opendesk" repository: "zendis/opendesk-enterprise/components/supplier/collabora/images/collabora-online-for-opendesk"
tag: "25.04.5.3.1@sha256:d22407cd3bd83dd832f986a697d81c1a4642f55129c76a5a20e637274ce7bf62" tag: "25.04.2.3.1@sha256:b6dbe27d7242488dfdb400219abbc6c97fb83df029975e1127f52abc8444475e"
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,9 +13,9 @@ images:
nextcloud: nextcloud:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/nextcloud/images/opendesk-nextcloud" repository: "zendis/opendesk-enterprise/components/supplier/nextcloud/images/opendesk-nextcloud"
tag: "1.6.11@sha256:79bab3b5745eb2c0fdd5a8858d277495deb7f6e43b42c7046d5bfbee039aed0a" tag: "31.0.6@sha256:12e5009019a072ee9bf6c9a69f4ecbf00a0590f6a2f10155ab56a1a61b43baf9"
openxchangeCoreMW: openxchangeCoreMW:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/images-mirror/middleware-public-sector-pro" repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/images-mirror/middleware-public-sector-pro"
tag: "8.41.58@sha256:da4aff1b890a463b01cc2c6b75c56fc5fe887d9ec5d2c7065535c083385044b6" tag: "8.38.73@sha256:2ddd6ce6e33a77aadc6043ad01026afbea09d28f7b0c469ab6fd412fb4ca8792"
... ...

View File

@@ -126,22 +126,20 @@ annotations:
service: ~ service: ~
serviceMetrics: ~ serviceMetrics: ~
serviceAccount: ~ serviceAccount: ~
notesBackend: notes:
createUserJob: ~
ingress: ~
ingressAdmin: ~ ingressAdmin: ~
ingressCollaborationWS: ~
ingressCollaborationAPI: ~
ingressMedia: ~
serviceMedia: ~
notesBackend:
migrateJob: ~ migrateJob: ~
pod: ~ pod: ~
service: ~ service: ~
notesFrontend: notesFrontend:
ingress: ~
ingressMedia: ~
pod: ~ pod: ~
service: ~ service: ~
serviceMedia: ~
notesYProvider: notesYProvider:
ingressCollaborationAPI: ~
ingressCollaborationWS: ~
pod: ~ pod: ~
service: ~ service: ~
nubus: nubus:

View File

@@ -24,7 +24,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-certificates" repository: "bmi/opendesk/components/platform-development/charts/opendesk-certificates"
name: "opendesk-certificates" name: "opendesk-certificates"
version: "3.1.3" version: "3.1.2"
verify: true verify: true
clamav: clamav:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -34,7 +34,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-clamav" repository: "bmi/opendesk/components/platform-development/charts/opendesk-clamav"
name: "opendesk-clamav" name: "opendesk-clamav"
version: "4.0.7" version: "4.0.6"
verify: true verify: true
clamavSimple: clamavSimple:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -44,7 +44,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-clamav" repository: "bmi/opendesk/components/platform-development/charts/opendesk-clamav"
name: "clamav-simple" name: "clamav-simple"
version: "4.0.7" version: "4.0.6"
verify: true verify: true
collabora: collabora:
# providerCategory: "Supplier" # providerCategory: "Supplier"
@@ -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.45" version: "1.1.41"
verify: true verify: true
collaboraController: collaboraController:
# Enterprise Component # Enterprise Component
@@ -84,6 +84,8 @@ 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"
@@ -97,7 +99,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.2.0" version: "3.1.1"
verify: true verify: true
element: element:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -107,7 +109,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-element" name: "opendesk-element"
version: "6.1.7" version: "6.1.3"
verify: true verify: true
elementWellKnown: elementWellKnown:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -117,7 +119,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.7" version: "6.1.3"
verify: true verify: true
home: home:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -139,7 +141,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/charts-mirror" repository: "bmi/opendesk/components/supplier/univention/charts-mirror"
name: "intercom-service" name: "intercom-service"
version: "2.19.5" version: "2.12.0"
verify: true verify: true
jitsi: jitsi:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -149,7 +151,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-jitsi" repository: "bmi/opendesk/components/platform-development/charts/opendesk-jitsi"
name: "opendesk-jitsi" name: "opendesk-jitsi"
version: "3.3.2" version: "3.1.0"
verify: true verify: true
mariadb: mariadb:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -209,7 +211,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-matrix-user-verification-service" name: "opendesk-matrix-user-verification-service"
version: "6.1.7" version: "6.1.3"
verify: true verify: true
memcached: memcached:
# providerCategory: "Community" # providerCategory: "Community"
@@ -249,27 +251,27 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud" repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud"
name: "opendesk-nextcloud" name: "opendesk-nextcloud"
version: "4.4.4" version: "4.3.1"
verify: true verify: true
nextcloudManagement: nextcloudManagement:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
# upstreamRegistry: "https://registry.opencode.de" # upstreamRegistry: "https://registry.opencode.de"
# upstreamRepository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud/opendesk-nextcloud-management" # packageName=bmi/opendesk/components/platform-development/charts/opendesk-nextcloud/opendesk-nextcloud-management
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud" repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud"
name: "opendesk-nextcloud-management" name: "opendesk-nextcloud-management"
version: "4.4.4" version: "4.3.1"
verify: true verify: true
nextcloudNotifyPush: nextcloudNotifyPush:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
# upstreamRegistry: "https://registry.opencode.de" # upstreamRegistry: "https://registry.opencode.de"
# upstreamRepository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud/opendesk-nextcloud-notifypush" # packageName=bmi/opendesk/components/platform-development/charts/opendesk-nextcloud/opendesk-nextcloud-notifypush
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud" repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud"
name: "opendesk-nextcloud-notifypush" name: "opendesk-nextcloud-notifypush"
version: "4.4.4" version: "4.3.1"
verify: true verify: true
nginx: nginx:
# providerCategory: "Community" # providerCategory: "Community"
@@ -285,31 +287,21 @@ charts:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
# upstreamRegistry: "https://registry.opencode.de" # upstreamRegistry: "https://registry.opencode.de"
# upstreamRepository: "bmi/opendesk/components/platform-development/charts/nginx-s3-gateway/nginx-s3-gateway" # packageName=bmi/opendesk/components/platform-development/charts/nginx-s3-gateway/nginx-s3-gateway
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/nginx-s3-gateway" repository: "bmi/opendesk/components/platform-development/charts/nginx-s3-gateway"
name: "nginx-s3-gateway" name: "nginx-s3-gateway"
version: "1.0.1" version: "1.0.1"
verify: true verify: true
notes: notes:
# providerCategory: "Platform" # providerCategory: "Supplier"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
# upstreamRegistry: "https://registry.opencode.de" # upstreamRegistry: "https://gitlab.opencode.de"
# upstreamRepository: "bmi/opendesk/components/platform-development/charts/opendesk-impress/impress" # packageName=bmi/opendesk/components/supplier/dinum/charts/notes
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-impress" repository: "bmi/opendesk/components/supplier/dinum/charts/notes"
name: "impress" name: "impress"
version: "1.0.2" version: "2.0.0"
verify: true
notesCustomization:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
# upstreamRegistry: "https://registry.opencode.de"
# upstreamRepository: "bmi/opendesk/components/platform-development/charts/opendesk-impress-customization/impress-customization"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-impress-customization"
name: "impress-customization"
version: "1.0.0"
verify: true verify: true
nubus: nubus:
# providerCategory: "Supplier" # providerCategory: "Supplier"
@@ -321,7 +313,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/charts-mirror" repository: "bmi/opendesk/components/supplier/univention/charts-mirror"
name: "nubus" name: "nubus"
version: "1.14.0" version: "1.11.2"
verify: true verify: true
opendeskAlerts: opendeskAlerts:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -331,7 +323,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.2" version: "1.1.1"
verify: true verify: true
opendeskDashboards: opendeskDashboards:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -341,7 +333,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.2" version: "1.1.1"
verify: true verify: true
opendeskKeycloakBootstrap: opendeskKeycloakBootstrap:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -361,7 +353,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.1.0" version: "4.0.1"
verify: true verify: true
openproject: openproject:
# providerCategory: "Supplier" # providerCategory: "Supplier"
@@ -405,7 +397,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/charts-mirror" repository: "bmi/opendesk/components/supplier/open-xchange/charts-mirror"
name: "appsuite-public-sector" name: "appsuite-public-sector"
version: "2.23.206" version: "2.20.247"
verify: false verify: false
oxAppSuiteBootstrap: oxAppSuiteBootstrap:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -427,7 +419,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/charts-mirror" repository: "bmi/opendesk/components/supplier/univention/charts-mirror"
name: "ox-connector" name: "ox-connector"
version: "0.27.9" version: "0.19.0"
verify: true verify: true
postfix: postfix:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -437,7 +429,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-postfix" repository: "bmi/opendesk/components/platform-development/charts/opendesk-postfix"
name: "postfix" name: "postfix"
version: "5.0.1" version: "4.0.1-fix-submissions"
verify: true verify: true
postgresql: postgresql:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -467,7 +459,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-synapse" name: "opendesk-synapse"
version: "6.1.7" version: "6.1.3"
verify: true verify: true
synapseAdmin: synapseAdmin:
# Enterprise Component # Enterprise Component
@@ -495,7 +487,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-synapse-create-account" name: "opendesk-synapse-create-account"
version: "6.1.7" version: "6.1.3"
verify: true verify: true
synapseGroupsync: synapseGroupsync:
# Enterprise Component # Enterprise Component
@@ -523,7 +515,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-synapse-web" name: "opendesk-synapse-web"
version: "6.1.7" version: "6.1.3"
verify: true verify: true
xwiki: xwiki:
# providerCategory: "Supplier" # providerCategory: "Supplier"

View File

@@ -51,7 +51,6 @@ customization:
opendeskNextcloudNotifyPush: {} opendeskNextcloudNotifyPush: {}
# notes # notes
notes: {} notes: {}
notesCustomization: {}
# nubus # nubus
ums: {} ums: {}
intercomService: {} intercomService: {}

View File

@@ -99,14 +99,6 @@ databases:
connectionPoolMin: "3" connectionPoolMin: "3"
connectionPoolMax: "5" connectionPoolMax: "5"
connectionLimit: ~ connectionLimit: ~
umsAuthSession:
type: "postgresql"
name: "nubus_authsession"
host: "postgresql"
port: 5432
username: "authsession_user"
password: ""
connectionLimit: 10
umsGuardianManagementApi: umsGuardianManagementApi:
type: "postgresql" type: "postgresql"
name: "guardianmanagementapi" name: "guardianmanagementapi"

View File

@@ -25,47 +25,18 @@ functional:
clients: ~ clients: ~
# Define additional/custom OIDC client scopes to be created in the 'opendesk' realm within Keycloak. # Define additional/custom OIDC client scopes to be created in the 'opendesk' realm within Keycloak.
clientScopes: ~ clientScopes: ~
# Global settings of the 'opendesk' realm within Keycloak. The values are used to set Keycloak's realm attributes # Configure global settings of the 'opendesk' realm within Keycloak. The values are directly
# of the same name and are applied by `opendesk-keycloak-bootstrap`. # passed into the `realmSettings` section of the `opendesk-keycloak-bootstrap` chart.
# Ref.: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-keycloak-bootstrap # Ref.: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-keycloak-bootstrap
# Note: Global settings can potentially be overridden on a client level. # Note: Global settings can potentially be overridden on a client level.
# Note: All numeric "Lifespan" values are defined in seconds.
realmSettings: realmSettings:
# The lifespan of an access token in seconds.
# Ref.: https://www.keycloak.org/docs/latest/server_admin > "Access Token Lifespan"
accessTokenLifespan: 300 accessTokenLifespan: 300
# If true, refresh tokens are revoked after use. If false, they can be reused until they expire.
# Ref.: https://www.keycloak.org/docs/latest/server_admin > "Revoke Refresh Token"
revokeRefreshToken: false revokeRefreshToken: false
# Maximum time of inactivity before the SSO session is invalidated.
# Applies to logged-in user sessions.
# Ref.: https://www.keycloak.org/docs/latest/server_admin > "SSO Session Idle "
ssoSessionIdleTimeout: 14400 ssoSessionIdleTimeout: 14400
# Absolute maximum time a session can exist, regardless of activity.
# After this, the user is forced to re-authenticate.
# Ref.: https://www.keycloak.org/docs/latest/server_admin/#_sso_session_max
ssoSessionMaxLifespan: 57600 ssoSessionMaxLifespan: 57600
# Maximum time a user has to complete login related actions like update password or configure totp.
accessCodeLifespanUserAction: 300
# Maximum time a user has to complete a login.
accessCodeLifespanLogin: 1800
# How long offline sessions remain valid when idle.
# Offline sessions are typically used with refresh tokens for background tasks or mobile apps.
# Ref.: https://www.keycloak.org/docs/latest/server_admin/ > "Offline Session Idle"
offlineSessionIdleTimeout: 2592000 offlineSessionIdleTimeout: 2592000
# Whether to enforce an absolute max lifespan on offline sessions.
# If false, only the idle timeout applies.
# Ref.: https://www.keycloak.org/docs/latest/server_admin/ > "Offline Session Max Limited"
offlineSessionMaxLifespanEnabled: false offlineSessionMaxLifespanEnabled: false
# Max total lifespan for offline sessions.
# Only applies if `offlineSessionMaxLifespanEnabled` is true.
# Here it's set, but will not be enforced unless enabled.
# Ref.: https://www.keycloak.org/docs/latest/server_admin/ > "Offline Session Max"
offlineSessionMaxLifespan: 5184000 offlineSessionMaxLifespan: 5184000
# The following `client*` settings are timeout settings for client sessions on a per client basis.
# Their logic follows the `ssoSession*` and `offlineSession*` settings.
# A value of 0 disables this timeout.
# Ref.: https://www.keycloak.org/docs/latest/server_admin/ > "Client Session Idle"
clientSessionIdleTimeout: 0 clientSessionIdleTimeout: 0
clientSessionMaxLifespan: 0 clientSessionMaxLifespan: 0
clientOfflineSessionIdleTimeout: 0 clientOfflineSessionIdleTimeout: 0
@@ -128,39 +99,16 @@ functional:
enabled: true enabled: true
filestore: filestore:
# Settings related to directory and filenames
naming:
# Disallowed characters for directory and file names.
# Some operating systems do not support these characters, preventing affected clients from syncing files.
#
# Note: After changing the settings below and redeploying Nextcloud, restart the `aio` Pod(s) to
# apply the changes.
forbiddenChars:
- '*'
- '"'
- '|'
- '?'
- ';'
- ':'
- '\'
- '/'
- '~'
- '<'
- '>'
quota: quota:
# Set the default quota for all users in gigabyte # Set the default quota for all users in GB
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).
sharing: sharing:
# External shares # External shares
external: external:
# Enables sharing of files with external participants (create external links, send links by mail and allow # Enables sharing of files with external participants (create external links, send links by mail and allow external upload in shared folders).
# external upload in shared folders). # If you disable this option existing external shares stop working, when re-enabling it the old shares are available again.
# When you enable external sharing it is still possible to use the groupfolder feature and block external
# sharing for defined groupfolder(s).
# Note: If you disable this option existing external shares stop working, when re-enabling it the old
# shares are available again.
enabled: false enabled: false
# Enforces passwords to be used on external shares. # Enforces passwords to be used on external shares.
enforcePasswords: false enforcePasswords: false
@@ -199,65 +147,17 @@ functional:
groupware: groupware:
# Related settings for the CalDAV and CardCAV support of the groupware module. # Related settings for the CalDAV and CardCAV support of the groupware module.
davSupport: davSupport:
# Enabled by default CalDAV and CardDAV support is available at: # Enabled by default it is available at:
# - https://<.Values.global.hosts.openxchangeDav>.<.Values.global.domain>/caldav/[folderId]" # - https://<.Values.global.hosts.openxchangeDav>.<.Values.global.domain>/caldav/[folderId]"
# - 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
# Control access for external users to groupware data
# Ref.: https://documentation.open-xchange.com/8/middleware/miscellaneous/sharing_and_guest_mode.html
externalSharing:
# Allow anonymous guest users to access resources via share links.
# Ref.: https://documentation.open-xchange.com/8/middleware/miscellaneous/sharing_and_guest_mode.html#share-links
shareLinks:
enabled: false
# Allow sharing of resources with guest users created on demand by App Suite.
# Ref.: https://documentation.open-xchange.com/8/middleware/miscellaneous/sharing_and_guest_mode.html#invite-guests
inviteGuests:
enabled: false
# Mail related settings
mail:
# Mail categories related settings
# Ref.: https://documentation.open-xchange.com/8/middleware/mail/mail_categories.html
categories:
# Toggle the availability of the mail categories feature.
# Ref.:
enabled: true
# Control options for handling incoming emails
inbound:
# Allow users to configure a notification address that receives a notification whenever a new email arrives
# in their inbox.
# Ref.: https://gitlab.open-xchange.com/extensions/public-sector/-/blob/main/documentation/ui/030_autonotify.md
notify:
enabled: true
# Allow users to automatically forward all incoming emails to an email address of their choice.
forward:
enabled: false
# Email encryption related settings.
encryption:
# Toggle the availability of OX Guard
# Ref.: https://www.open-xchange.com/products/ox-guard/
enabled: true
# Define the maximum size for emails (including their attachments) in Megabyte
maxSize: 25
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
# User profile related control options
userProfile:
# The user's display name is managed by openDesk IAM and should not be manually changed by the user.
# Ref.: https://documentation.open-xchange.com/8/ui/configuration/settings-list-of.html#mail-misc
editRealName: false
migration: migration:
oxAppSuite: oxAppSuite:
# Note: Only available in openDesk Enterprise. # Note: Only available in openDesk Enterprise.
# Note: Turn on temporary for migration purposes only. # Turn on temporary for migration purposes only. Will enable master password auth in OX AppSuite and Dovecot using
# Will enable master password auth in Dovecot and add an additional OX App Suite Core Middelware Pod in the # `secrets.oxAppSuite.migrationsMasterPassword`.
# role `migration` that is master password enabled. The Pod is accessible through a ClusterIP.
# Master password is defined in `secrets.oxAppSuite.migrationsMasterPassword`.
enabled: false enabled: false
portal: portal:
@@ -267,11 +167,11 @@ functional:
# Link to the legal notice shown in the portal menu, set to "~" if you want to remove the link # Link to the legal notice shown in the portal menu, set to "~" if you want to remove the link
linkLegalNotice: "https://opendesk.eu/impressum" linkLegalNotice: "https://opendesk.eu/impressum"
# Link to the privacy statement shown in the portal menu, set to "~" if you want to remove the link # Link to the privacy statement shown in the portal menu, set to "~" if you want to remove the link
linkPrivacyStatement: "https://www.zendis.de/datenschutzerklarung" linkPrivacyStatement: "https://zendis.de/datenschutzerklaerung"
# Link to documentation, shown in the right lower corner of the portal, set to "~" if you want to remove the link # Link to documentation, shown in the right lower corner of the portal, set to "~" if you want to remove the link
linkDocumentation: "https://docs.opendesk.eu/" linkDocumentation: "https://docs.opendesk.eu/"
# Link to support for your deployment, shown in the right lower corner of the portal, # Link to support, shown in the right lower corner of the portal, set to "~" if you want to remove the link
linkSupport: ~ linkSupport: "https://opendesk.eu/support"
# Link to feedback, shown in the right lower corner of the portal, set to "~" if you want to remove the link # Link to feedback, shown in the right lower corner of the portal, set to "~" if you want to remove the link
linkFeedback: "https://opendesk.eu/feedback" linkFeedback: "https://opendesk.eu/feedback"
# Newsfeed related settings # Newsfeed related settings
@@ -288,13 +188,5 @@ functional:
# You can choose between "ODF" and "OOXML". # You can choose between "ODF" and "OOXML".
# Ref.: https://en.wikipedia.org/wiki/Comparison_of_Office_Open_XML_and_OpenDocument # Ref.: https://en.wikipedia.org/wiki/Comparison_of_Office_Open_XML_and_OpenDocument
defaultFormat: "ODF" defaultFormat: "ODF"
# Macro related options.
macros:
# Specifies whether the macro execution (Basic and Python scripts) is enabled in general.
# If set to false, the `securityLevel` is ignored.
enabled: false
# Chose from the following values:
# 1: Confirmation required before executing macros from untrusted sources.
# 0: All macros will be executed without confirmation.
securityLevel: 1
... ...

View File

@@ -3,5 +3,5 @@
--- ---
global: global:
systemInformation: systemInformation:
releaseVersion: "v1.8.0" releaseVersion: "v1.6.0"
... ...

View File

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

View File

@@ -10,31 +10,25 @@ 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"
# upstreamMirrorTagFilterRegEx: '^(\d+)-debian-(\d+)-r(\d+)$' registry: "registry-1.docker.io"
# upstreamMirrorStartFrom: ["12", "12", "44"] repository: "bitnami/os-shell"
registry: "registry.opencode.de" tag: "12-debian-12-r44@sha256:6388c7c27a09472906e2f2094410c9ffdadf23b4b242293ce023d0314ec10920"
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"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-debian-(\d+)-r(\d+)$' registry: "registry-1.docker.io"
# upstreamMirrorStartFrom: ["5", "0", "4", "12", "4"] repository: "bitnami/cassandra"
registry: "registry.opencode.de" tag: "5.0.4-debian-12-r4@sha256:9d909ebe10802dae2fb99ef7c8e9e0dbc496c8d30366e2f7abbe0713b945fa7d"
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"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-debian-(\d+)-r(\d+)$' registry: "registry-1.docker.io"
# upstreamMirrorStartFrom: ["2", "3", "8", "12", "46"] repository: "bitnami/cassandra-exporter"
registry: "registry.opencode.de" tag: "2.3.8-debian-12-r46@sha256:e44c65f08d85153041f68bcf180f948341d74018eef8b56e8869ed87fdfd34f0"
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"
@@ -50,7 +44,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.5.3.1@sha256:0e1ccf43308121c657936510de27244057c3826777a491495a0f7e55a196bc59" tag: "25.04.2.2.1@sha256:03ec7f7740c5030eeb4f642c41fa0b9989d7a0dab81435a86b5c82479d0f78e2"
collaboraController: collaboraController:
# Enterprise Component # Enterprise Component
# providerCategory: "Supplier" # providerCategory: "Supplier"
@@ -63,11 +57,10 @@ images:
# providerResponsible: "XWiki" # providerResponsible: "XWiki"
# upstreamRegistry: "https://registry-1.docker.io" # upstreamRegistry: "https://registry-1.docker.io"
# upstreamRepository: "cryptpad/cryptpad" # upstreamRepository: "cryptpad/cryptpad"
# upstreamMirrorTagFilterRegEx: '^version-(\d+)\.(\d+)\.(\d+)$' # upstreamMirrorTagFilterRegEx: '^opendesk-(\d+)$'
# upstreamMirrorStartFrom: ["2025", "6", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/cryptpad" repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/cryptpad"
tag: "version-2025.6.0@sha256:7711c08792637534445e6f1e42407149c2568ae0490b83ea36c06ba395389dec" tag: "opendesk-20241022@sha256:3e5bf06cb9d0a7ec8257874b8b347599200eb677fc428a2e043ccab06ef2be17"
dkimpy: dkimpy:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -91,13 +84,16 @@ images:
# upstreamRepository: "alpine/k8s" # upstreamRepository: "alpine/k8s"
registry: "registry-1.docker.io" registry: "registry-1.docker.io"
repository: "alpine/k8s" repository: "alpine/k8s"
tag: "1.34.0@sha256:b5f6edfeac5279f3e182d938d1ffecb62f7c980756ac4b6b66d7f0d566782f77" tag: "1.33.1@sha256:7f8133af0dd210cb5b168f889c5bc77dd65ecc935f3e3cb72d1b98ff96bfed40"
element: element:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Element" # providerResponsible: "Element"
# upstreamRegistry: "https://ghcr.io"
# upstreamRepository: "element-hq/element-web-modules/opendesk-plugin"
# upstreamMirrorTagFilterRegEx: '^latest-\d+$'
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/element/images/opendesk-element-web" repository: "bmi/opendesk/components/supplier/element/images-mirror/opendesk-plugin"
tag: "v1.12.0@sha256:a2ff739dc3eee008a5046c4d3a8721f4dd2a27dd6c80a12cb9baf64525c9b617" tag: "latest-250304@sha256:b997a9245c5a85ddb9935e6a9f8f8da60fed58aad17df8f1e1e2fabafdbf0dd1"
elementAdminBot: elementAdminBot:
# Enterprise Component # Enterprise Component
# providerCategory: "Supplier" # providerCategory: "Supplier"
@@ -158,7 +154,7 @@ images:
# upstreamMirrorStartFrom: ["2", "1", "0"] # upstreamMirrorStartFrom: ["2", "1", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/intercom-service" repository: "bmi/opendesk/components/supplier/univention/images-mirror/intercom-service"
tag: "2.19.5@sha256:4f1bccfd29889e1edd093c8e35c9486919984faf55ca92b787a6a7aca3729e47" tag: "2.12.0@sha256:380476d849fb353dc167ba52a6b0f6235b3fa7561c082e65c37e2242cedb0df1"
jibri: jibri:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Nordeck" # providerResponsible: "Nordeck"
@@ -168,7 +164,7 @@ images:
# upstreamMirrorStartFrom: ["8922"] # upstreamMirrorStartFrom: ["8922"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/jibri" repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/jibri"
tag: "stable-10431@sha256:21ae6f3e9139ca1beea630756060b66f1a6221005f45e35df35d4bf9f69a4cc3" tag: "stable-9955@sha256:a07b82f2758389b2071c794810145111641e78f1b768b1bbfa6d3d1dc76d3da9"
jicofo: jicofo:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Nordeck" # providerResponsible: "Nordeck"
@@ -178,7 +174,7 @@ images:
# upstreamMirrorStartFrom: ["8922"] # upstreamMirrorStartFrom: ["8922"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/jicofo" repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/jicofo"
tag: "stable-10431@sha256:6857b0cad627cde79f6e21c1c40843b14d70dd43e627537c60449d448ce14769" tag: "stable-9955@sha256:f1a1478d231bc4891b5eea06443d72187c378d5e38403bb545aab281446f8d50"
jigasi: jigasi:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Nordeck" # providerResponsible: "Nordeck"
@@ -188,7 +184,7 @@ images:
# upstreamMirrorStartFrom: ["9955"] # upstreamMirrorStartFrom: ["9955"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/jigasi" repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/jigasi"
tag: "stable-10431@sha256:9bcb35444296ab007b24a8ccecd6c1eacc0f01fccf4223e7f8ac340464f4a52e" tag: "stable-9955@sha256:0e191ac39d3e7299d0bcc070fa1867cceb17fe8d92e9d5cd492aec4c268fa56f"
jitsi: jitsi:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Nordeck" # providerResponsible: "Nordeck"
@@ -198,7 +194,7 @@ images:
# upstreamMirrorStartFrom: ["8922"] # upstreamMirrorStartFrom: ["8922"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/web" repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/web"
tag: "stable-10431@sha256:47f57fb67d95a2d3b5fa6edf93916b4922e1599278c0f9dd16cc30f432c75511" tag: "stable-9955@sha256:81fdcfa14287fe3358532c363875584d0cdd40ff4030695b713af6e60192d306"
jitsiKeycloakAdapter: jitsiKeycloakAdapter:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Nordeck" # providerResponsible: "Nordeck"
@@ -208,17 +204,15 @@ images:
# upstreamMirrorStartFrom: ["2023", "12", "14"] # upstreamMirrorStartFrom: ["2023", "12", "14"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/jitsi-keycloak-adapter" repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/jitsi-keycloak-adapter"
tag: "v20250911@sha256:716fb9ba2e866d74cbbd6241a8c75335e48ba25ec2d35f4678e83dd3156bc87c" tag: "v20250314@sha256:2e24db127ab266b90b8fd371ce547e7f9619b6be3fefed30906867b1ce368697"
jitsiPatchJVB: jitsiPatchJVB:
# providerCategory: "Community" # providerCategory: "Community"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
# upstreamRegistry: "https://registry-1.docker.io" # upstreamRegistry: "https://registry-1.docker.io"
# upstreamRepository: "bitnami/kubectl" # upstreamRepository: "bitnami/kubectl"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$' registry: "registry-1.docker.io"
# upstreamMirrorStartFrom: ["1", "32", "0"] repository: "bitnami/kubectl"
registry: "registry.opencode.de" tag: "1.32.0@sha256:48c81b7aaf4fabf2733a0b888960f6982181fbcd2c3f8dfcebc4a1a065631162"
repository: "bmi/opendesk/components/community/images-mirror/kubectl"
tag: "1.33.4@sha256:681609aff6bf316acf464d9c9e369d84c49d50be6379247291b01ac311a7f5f5"
jvb: jvb:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Nordeck" # providerResponsible: "Nordeck"
@@ -228,7 +222,7 @@ images:
# upstreamMirrorStartFrom: ["8922"] # upstreamMirrorStartFrom: ["8922"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/jvb" repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/jvb"
tag: "stable-10431@sha256:64f8a368f593a30d5388d9643b1b0af7b4a09f03f6e585e50cdbff398b5f8918" tag: "stable-9955@sha256:27753ac320910e04f5c4f4f628d20995ea969ea38523d90a9066adc52f9bc022"
mariadb: mariadb:
# providerCategory: "Community" # providerCategory: "Community"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -246,7 +240,7 @@ images:
# upstreamMirrorStartFrom: ["1", "4", "0"] # upstreamMirrorStartFrom: ["1", "4", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/matrix-neoboard-widget" repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/matrix-neoboard-widget"
tag: "2.3.1@sha256:fc93cc8dce43a4e7ee23cf4ab5a85101103a6ed5cb1981c3223d8b5459365f1b" tag: "2.2.1@sha256:db404ba5b8e76cbd1166529dc2156d84506f1c2d341a1798d25a074e531b9d3d"
matrixNeoChoiceWidget: matrixNeoChoiceWidget:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Nordeck" # providerResponsible: "Nordeck"
@@ -256,7 +250,7 @@ images:
# upstreamMirrorStartFrom: ["1", "4", "0"] # upstreamMirrorStartFrom: ["1", "4", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/matrix-poll-widget" repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/matrix-poll-widget"
tag: "1.6.0@sha256:637b93d6cd6090682a5d3e7c45d9767f385c53eaef8e3bc3f30425a65c1648e8" tag: "1.5.2@sha256:8d0cce2b4f71787cab6cd1b6e6ff52205224a5d01ba384b3ebfbf05bc3228930"
matrixNeoDateFixBot: matrixNeoDateFixBot:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Nordeck" # providerResponsible: "Nordeck"
@@ -266,7 +260,7 @@ images:
# upstreamMirrorStartFrom: ["2", "7", "0"] # upstreamMirrorStartFrom: ["2", "7", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/matrix-meetings-bot" repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/matrix-meetings-bot"
tag: "2.8.5@sha256:30038eb480d8ef1173a5496bcb05470e8c7a36cad1338cccd14e38531e526f32" tag: "2.8.3@sha256:5bc9b8d67b4ecb38b618e84d54e759ba57c0533706300154a60423dfcf86f7e1"
matrixNeoDateFixWidget: matrixNeoDateFixWidget:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Nordeck" # providerResponsible: "Nordeck"
@@ -276,7 +270,7 @@ images:
# upstreamMirrorStartFrom: ["1", "6", "0"] # upstreamMirrorStartFrom: ["1", "6", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/matrix-meetings-widget" repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/matrix-meetings-widget"
tag: "1.7.2@sha256:f876267ed81148ece68cc95bdad7be9c3cce89ce944dbf1b97161e16f72c0cda" tag: "1.7.1@sha256:c03917f78ba197b2f93a59eb3d6596447de1e2bf5836194afa121fae8ea18593"
matrixUserVerificationService: matrixUserVerificationService:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Element" # providerResponsible: "Element"
@@ -292,11 +286,9 @@ images:
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
# upstreamRegistry: "https://registry-1.docker.io" # upstreamRegistry: "https://registry-1.docker.io"
# upstreamRepository: "bitnami/memcached" # upstreamRepository: "bitnami/memcached"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-debian-(\d+)-r(\d+)$' registry: "registry-1.docker.io"
# upstreamMirrorStartFrom: ["1", "6", "38", "12", "3"] repository: "bitnami/memcached"
registry: "registry.opencode.de" tag: "1.6.38-debian-12-r3@sha256:3e548fba727578be9d996262471f5f3e07726d625702d26743a5e0f34684cb21"
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"
@@ -318,11 +310,9 @@ images:
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
# upstreamRegistry: "https://registry-1.docker.io" # upstreamRegistry: "https://registry-1.docker.io"
# upstreamRepository: "bitnami/minio" # upstreamRepository: "bitnami/minio"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-debian-(\d+)-r(\d+)$' registry: "registry-1.docker.io"
# upstreamMirrorStartFrom: ["2025", "4", "22", "12", "1"] repository: "bitnami/minio"
registry: "registry.opencode.de" tag: "2025.4.22-debian-12-r1@sha256:d7cd0e172c4cc0870f4bdc3142018e2a37be9acf04d68f386600daad427e0cab"
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"
@@ -330,7 +320,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: "2.10.12@sha256:8a4cd73fdceb1da2c58a22a85d605eba575a2b1487e3927ab1971c9f1120549a" tag: "31.0.6@sha256:f881cde15c41df21177a1edf3cc08ed5abe88627a5a44fdb42caacdcfe25de19"
nextcloudExporter: nextcloudExporter:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -354,7 +344,7 @@ images:
# upstreamRepository: "lasuite/impress-backend" # upstreamRepository: "lasuite/impress-backend"
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-notes" repository: "bmi/opendesk/components/platform-development/images/opendesk-notes"
tag: "1.12.1-docs-v3.4.0-backend@sha256:9d611d924056bd945499ef038ee7ac4c7a1196adfe0fc464d600d163dc42291a" tag: "1.9.0-docs-v3.2.1-backend@sha256:17c16e4e00b15e4637d01553d56e7eecb7a477bec48677d1e7fb07b04c48d2b8"
notesFrontend: notesFrontend:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "DINUM" # providerResponsible: "DINUM"
@@ -362,7 +352,7 @@ images:
# upstreamRepository: "lasuite/impress-frontend" # upstreamRepository: "lasuite/impress-frontend"
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-notes" repository: "bmi/opendesk/components/platform-development/images/opendesk-notes"
tag: "1.12.1-docs-v3.4.0-frontend@sha256:51cb96a97dd5668366d9f664977cbb869e4a59499bf30bc1766528dd41843ac7" tag: "1.9.0-docs-v3.2.1-frontend@sha256:328d5a8bf41875eb5945229adfc4a52eb2fef109e25d980910ee77edd4bc1887"
notesYProvider: notesYProvider:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "DINUM" # providerResponsible: "DINUM"
@@ -370,7 +360,7 @@ images:
# upstreamRepository: "lasuite/impress-y-provider" # upstreamRepository: "lasuite/impress-y-provider"
registry: "registry-1.docker.io" registry: "registry-1.docker.io"
repository: "lasuite/impress-y-provider" repository: "lasuite/impress-y-provider"
tag: "v3.4.0@sha256:fce38ca22cdc80c06803ded6f7147b6d1df22dd21f58ef834adef1d3aa83d667" tag: "v3.2.1@sha256:9dd7068336c02fe71806bc3576e7dc8636d7ccb139667c6303f0753e18d3ab7e"
nubusBlocklistCleanup: nubusBlocklistCleanup:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -380,7 +370,7 @@ images:
# upstreamMirrorStartFrom: ["0", "34", "2"] # upstreamMirrorStartFrom: ["0", "34", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/blocklist-cleanup" repository: "bmi/opendesk/components/supplier/univention/images-mirror/blocklist-cleanup"
tag: "0.40.0@sha256:1b4d388196b144327bc55376225675b1df8d23fdaffc85bb9e350c3c94fa0eb5" tag: "0.37.1@sha256:e18a5ca77accb9438c57ec7448f0984e6de11481ca8e0cd3ce557e6492dd8355"
nubusDataLoader: nubusDataLoader:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -390,7 +380,7 @@ images:
# upstreamMirrorStartFrom: ["0", "41", "5"] # upstreamMirrorStartFrom: ["0", "41", "5"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/data-loader" repository: "bmi/opendesk/components/supplier/univention/images-mirror/data-loader"
tag: "0.99.0@sha256:52ef05c1e682e6c706f70632206be1b427a1a346a32ae3bff1566386f75e68af" tag: "0.95.0@sha256:57028c6a76d000a2085f7a429c704ac495be6e4e7ce0a5cc85e3bed25766ce32"
nubusGuardianAuthorizationApi: nubusGuardianAuthorizationApi:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -440,7 +430,7 @@ images:
# upstreamMirrorStartFrom: ["0", "0", "1"] # upstreamMirrorStartFrom: ["0", "0", "1"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak" repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak"
tag: "0.2.5@sha256:499006904d262bdd334b54583c359c7e34b521697d5fda32ea977d856bfa93d2" tag: "0.2.1@sha256:c338d5bba11185b1cca6d5e5e1b6fe28bedcd8f02af8b4b96e431bde617f5f72"
nubusKeycloakBootstrap: nubusKeycloakBootstrap:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -450,7 +440,7 @@ images:
# upstreamMirrorStartFrom: ["0", "1", "0"] # upstreamMirrorStartFrom: ["0", "1", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-bootstrap" repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-bootstrap"
tag: "0.17.5@sha256:08e2aa0bc0eb7b4bb80498e71ae21ee3de74eb985b46e7c3dd1502e96312d080" tag: "0.12.2@sha256:b3b058e49f9671e01530fca548a3308738aec3bf7d57c9ced9cde556f1f7545f"
nubusKeycloakExtensionHandler: nubusKeycloakExtensionHandler:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -460,7 +450,7 @@ images:
# upstreamMirrorStartFrom: ["0", "0", "3"] # upstreamMirrorStartFrom: ["0", "0", "3"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-handler" repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-handler"
tag: "0.20.0@sha256:227c7cba4eee15c626abbc77ca06b8b61a9dece04c986a9fa2e97b13d0458fe0" tag: "0.19.2@sha256:6e4c65b375ad12819240cb8eabd4ef629858ad74179bd639acb713201c528ef4"
nubusKeycloakExtensionProxy: nubusKeycloakExtensionProxy:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -470,7 +460,7 @@ images:
# upstreamMirrorStartFrom: ["0", "0", "3"] # upstreamMirrorStartFrom: ["0", "0", "3"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-proxy" repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-proxy"
tag: "0.20.0@sha256:bd075d33c16926ab4c123ac3a8673209664647f35324dfdebd95c6662ee05b2c" tag: "0.19.2@sha256:b7c897870a12214064d79d72d52d0030bf2513148078cb922b8782806c2e4773"
nubusLdapNotifier: nubusLdapNotifier:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -480,7 +470,7 @@ images:
# upstreamMirrorStartFrom: ["0", "8", "2"] # upstreamMirrorStartFrom: ["0", "8", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-notifier" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-notifier"
tag: "0.47.0@sha256:1d00e0bb1575defce42c84eb5139b5b4f7d0942111b339044c2bdf58ed0b025e" tag: "0.43.0@sha256:dcd4e7f1008eb4c6c1ae809785bee0da9cba1347af09ddbc147b76c422f4f35c"
nubusLdapServer: nubusLdapServer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -490,7 +480,7 @@ images:
# upstreamMirrorStartFrom: ["0", "8", "2"] # upstreamMirrorStartFrom: ["0", "8", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server"
tag: "0.47.0@sha256:3be012680b2da2db4ac468ae948d8514622a245b4e3e00385bbf778e836720b1" tag: "0.43.0@sha256:67557ec3e3bd7ff4981666dddb5455672ee8767e12e3876ea79447627f9d9742"
nubusLdapServerDhInitContainer: nubusLdapServerDhInitContainer:
# providerCategory: 'Community' # providerCategory: 'Community'
# providerResponsible: 'Univention' # providerResponsible: 'Univention'
@@ -508,7 +498,7 @@ images:
# upstreamMirrorStartFrom: ["0", "29", "1"] # upstreamMirrorStartFrom: ["0", "29", "1"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server-elector" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server-elector"
tag: "0.47.0@sha256:9b6754e7213f1fa13a12cb593bfe718643f6945ad111bbe1d5f71d7ce5729225" tag: "0.43.0@sha256:179097cf89774b1ac48c5315ccc06cc8628cc89d085d95f2d89a223d52a75fe2"
nubusLdapUpdateUniventionObjectIdentifier: nubusLdapUpdateUniventionObjectIdentifier:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -518,7 +508,7 @@ images:
# upstreamMirrorStartFrom: ["0", "34", "2"] # upstreamMirrorStartFrom: ["0", "34", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-update-univention-object-identifier" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-update-univention-object-identifier"
tag: "0.40.0@sha256:1ad952c039140ef1985712201f7bae7cbe9eba66086e0d3f475759e1c181b843" tag: "0.37.1@sha256:0715b8c98390337f230c04e88ed63142b94faf590bb2cb1dacb41390b2e8edf0"
nubusNats: nubusNats:
# providerCategory: 'Community' # providerCategory: 'Community'
# providerResponsible: 'Univention' # providerResponsible: 'Univention'
@@ -552,7 +542,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "4"] # upstreamMirrorStartFrom: ["0", "9", "4"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/notifications-api" repository: "bmi/opendesk/components/supplier/univention/images-mirror/notifications-api"
tag: "0.80.2@sha256:94b18841018cb7353a95a9c4ef2d5460f82a9ceb0bba97275b8064806e3e8a1c" tag: "0.70.0@sha256:0120cca997eddcd6b9a5f0b9d6fb39ac2ffb118357380c28ab5352c16130a873"
nubusOpendeskExtension: nubusOpendeskExtension:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -560,7 +550,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-nubus" # upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-nubus"
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-nubus" repository: "bmi/opendesk/components/platform-development/images/opendesk-nubus"
tag: "1.15.0@sha256:5ffb3106bf896a215fd7ae5d6646f19b50f0e46c11561d763938479d95aaa807" tag: "1.14.9@sha256:a2c7a5e302ed5cc52445fd1b18b277de4a3d45b2a2940f1a3970447dc13eb16c"
nubusOpendeskExtensionA2gMapper: nubusOpendeskExtensionA2gMapper:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -588,7 +578,7 @@ images:
# upstreamMirrorStartFrom: ["0", "10", "0"] # upstreamMirrorStartFrom: ["0", "10", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ox-extension" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ox-extension"
tag: "0.27.9@sha256:e059d4e521284b21b5aa3664e9c3261be1a195d112004542b56a784165f8ea9e" tag: "0.11.1@sha256:e57df5c02d0480ccf1d299964e3c676d92440d5e959b4f587945f08624da3ae9"
nubusPortalConsumer: nubusPortalConsumer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -598,7 +588,7 @@ images:
# upstreamMirrorStartFrom: ["0", "27", "0"] # upstreamMirrorStartFrom: ["0", "27", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-consumer" repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-consumer"
tag: "0.80.2@sha256:c719ada025e0ad629516017ed26803c15cee50572f45896b41a6b066b1fe593e" tag: "0.70.0@sha256:09eed9e5a7066f69b5d6085541ca91538ca9519d765ec7109d6934a6e67ab7cc"
nubusPortalExtension: nubusPortalExtension:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -608,7 +598,7 @@ images:
# upstreamMirrorStartFrom: ["0", "28", "0"] # upstreamMirrorStartFrom: ["0", "28", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-extension" repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-extension"
tag: "0.80.2@sha256:cde5547ef1c2d5da55fb41bdae7248ba8514ab4f200822709ca9a99f483a1cc8" tag: "0.59.1@sha256:c9c7faa3cca2be2f45d073517a50e8a8cc89d46c978c2f3a6be3c13d0e6ae900"
nubusPortalFrontend: nubusPortalFrontend:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -618,7 +608,7 @@ images:
# upstreamMirrorStartFrom: ["0", "67", "0"] # upstreamMirrorStartFrom: ["0", "67", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-frontend" repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-frontend"
tag: "0.80.2@sha256:8b40acc66459058dc0cade33793aba2737cdc20ef75968ca2b21d9aa569c9ecc" tag: "0.70.0@sha256:9e0826c954e99b36b3c7b9ce6dfa1f567a3432158fb78af13337760197f94997"
nubusPortalServer: nubusPortalServer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -628,7 +618,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "4"] # upstreamMirrorStartFrom: ["0", "9", "4"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-server" repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-server"
tag: "0.80.2@sha256:9a8f6950e7bf1086075d1c36ea0ad914a61e1198883e8d4926d688c88b8e67cc" tag: "0.70.0@sha256:1331d5b5861574195f6bd0dfc3c8e1d6a2650b518e206a2815b682d43ab75d0b"
nubusProvisioningDispatcher: nubusProvisioningDispatcher:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -638,7 +628,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"] # upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-dispatcher" repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-dispatcher"
tag: "0.60.10@sha256:6307e9e1ddad0e6f3285ca11b758902f8c377a5d3de6a59b3437accb8475848f" tag: "0.58.0@sha256:2ac4d4a7362e45f67499537dd74d2fdfb7b54817b7f12eb9e2d88d87cf3a6f7e"
nubusProvisioningEventsAndConsumerApi: nubusProvisioningEventsAndConsumerApi:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -648,7 +638,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"] # upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-events-and-consumer-api" repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-events-and-consumer-api"
tag: "0.60.10@sha256:9d5f4e4a2668605349fa6cd6973c7a6acbc2ef95a37e72834c6525ac9e464740" tag: "0.58.0@sha256:083cf58d9522d5058d09a78355a9ca935be2882fc595ad221b1ffd707a7d615d"
nubusProvisioningPrefill: nubusProvisioningPrefill:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -658,7 +648,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"] # upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-prefill" repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-prefill"
tag: "0.60.10@sha256:8ea46658e66fb5be81968dcf00397b741f61d4fd84c8210b9761412e67109cd0" tag: "0.58.0@sha256:368bc284956b642af02ca7199c6a7d94ae3bbdb3ede09db1c98822a146d9106d"
nubusProvisioningUdmListener: nubusProvisioningUdmListener:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -668,7 +658,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"] # upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-listener" repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-listener"
tag: "0.60.10@sha256:fb0d96fa7b382b7d8eec9e262711e1291a0991ade185b39ee604400d4bd5fa9b" tag: "0.58.0@sha256:5f924be8fdb29bda5734fd2b6b98f106913757e11530611bf5f6a5f144165be7"
nubusProvisioningUdmTransformer: nubusProvisioningUdmTransformer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -678,7 +668,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"] # upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-transformer" repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-transformer"
tag: "0.60.10@sha256:62b98f3e2c19de298878f5679577bfcbddacec742015d6f20b998a549318e810" tag: "0.58.0@sha256:afa6028bbaec6c14e09035b7d18507aad45ff6d6aa852fb664ab485f2622a308"
nubusSelfServiceConsumer: nubusSelfServiceConsumer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -688,7 +678,7 @@ images:
# upstreamMirrorStartFrom: ["0", "3", "2"] # upstreamMirrorStartFrom: ["0", "3", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/selfservice-invitation" repository: "bmi/opendesk/components/supplier/univention/images-mirror/selfservice-invitation"
tag: "0.19.4@sha256:ca9865114fd35fcc1dbe1a5660a3b69d04a8f568cf15286069342e45f0c7ea91" tag: "0.17.0@sha256:00e6124eecc1b763326023ecaf9702053e24b39b20f5efbcd35dfaad642d2cda"
nubusUdmRestApi: nubusUdmRestApi:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -698,7 +688,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "3"] # upstreamMirrorStartFrom: ["0", "9", "3"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/udm-rest-api" repository: "bmi/opendesk/components/supplier/univention/images-mirror/udm-rest-api"
tag: "0.40.0@sha256:7d39c0defda20fc58da19389216d9a80f479a731dca682d834dd8bd00b80e20f" tag: "0.37.1@sha256:a0508191a52ed9c388e0574cf6a97031fdfffcff95ab8ca3e4231c795d3a68df"
nubusUmcGateway: nubusUmcGateway:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -708,7 +698,7 @@ images:
# upstreamMirrorStartFrom: ["0", "7", "3"] # upstreamMirrorStartFrom: ["0", "7", "3"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-gateway" repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-gateway"
tag: "0.51.2@sha256:c76860852133b9bbc91eb6d81a6592a5f451be9234376933ddb4d827e0f08515" tag: "0.47.1@sha256:71d1fb00a28a7cc83e1a8a675b8e9dc3ff67b1d7f366b2d60f9623fdb5f6e419"
nubusUmcServer: nubusUmcServer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -718,7 +708,7 @@ images:
# upstreamMirrorStartFrom: ["0", "7", "3"] # upstreamMirrorStartFrom: ["0", "7", "3"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-server" repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-server"
tag: "0.51.3@sha256:00f8cc2e7ee98d3988b1db924ca67783e9a645204ae2c388c7afadc50f22bb12" tag: "0.47.1@sha256:8f451e7b50c6a32a8d4bad5959a103e34e3ae8d0bef2fe3df2dc8fbe7ae9c1b6"
nubusUmcServerProxy: nubusUmcServerProxy:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -736,7 +726,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "4"] # upstreamMirrorStartFrom: ["0", "9", "4"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/wait-for-dependency" repository: "bmi/opendesk/components/supplier/univention/images-mirror/wait-for-dependency"
tag: "0.35.0@sha256:61dfaea28a2b150459138dfd6a554ce53850cee05ef2a72ab47bbe23f2a92d0d" tag: "0.34.0@sha256:6ed1ae644160f0e69c00b4ea90efd4ea4aeaadeefb87e77f3454bcafaacd5e01"
opendeskKeycloakBootstrap: opendeskKeycloakBootstrap:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -762,7 +752,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.4.1@sha256:b80443fc9fe1bf9ed475897316208b394cca4e730ae8ca34944373245cc0a4f5" tag: "16.2.0@sha256:e4d50068411a7d5afbaf245211df9b7d18f622fed4b6c3c634bc7f88a3149419"
openprojectBootstrap: openprojectBootstrap:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -786,7 +776,7 @@ images:
# upstreamRepository: "alpine/k8s" # upstreamRepository: "alpine/k8s"
registry: "registry-1.docker.io" registry: "registry-1.docker.io"
repository: "alpine/k8s" repository: "alpine/k8s"
tag: "1.34.0@sha256:b5f6edfeac5279f3e182d938d1ffecb62f7c980756ac4b6b66d7f0d566782f77" tag: "1.33.0@sha256:60333a52c38e9a8df0a9b93a5a24a4870f0db2c7ea3266b185386bd0a500d7dc"
openxchangeCoreGuidedtours: openxchangeCoreGuidedtours:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -796,7 +786,7 @@ images:
# upstreamMirrorStartFrom: ["8", "6", "0"] # upstreamMirrorStartFrom: ["8", "6", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-guidedtours" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-guidedtours"
tag: "8.6.21@sha256:71b4819d42a808d57951405ab6215ff9fafae43e3f10a9f388484b7fbe28849e" tag: "8.6.17@sha256:27178fc42f2334385f1d206e4e7991d4953a102f114729d186b61c0d40babb4f"
openxchangeCoreMW: openxchangeCoreMW:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -806,7 +796,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "51"] # upstreamMirrorStartFrom: ["8", "20", "51"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/middleware-public-sector" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/middleware-public-sector"
tag: "8.41.58@sha256:a4c169d13a928d5532fc200be6c7c76c1d18f0579b8dbdb514583f62ac9fe8c7" tag: "8.38.73@sha256:610d4bab888e5749ff918a782ba1c33ed4aa8da9e13d5be4ad71ca2f698d4044"
openxchangeCoreUI: openxchangeCoreUI:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -816,7 +806,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "1"] # upstreamMirrorStartFrom: ["8", "20", "1"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-ui" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-ui"
tag: "8.41.1@sha256:108974ea42a4cf22ea1b37b975928881b6c23a2949b51781812f5b1260873aa4" tag: "8.38.1@sha256:77bf250df7ac465006576d5e1e0a8420ce6d0fce622b749c6da318793b88490c"
openxchangeCoreUIMiddleware: openxchangeCoreUIMiddleware:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -826,7 +816,7 @@ images:
# upstreamMirrorStartFrom: ["2", "0", "0"] # upstreamMirrorStartFrom: ["2", "0", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-ui-middleware" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-ui-middleware"
tag: "2.1.8@sha256:1853e6e2b780936a18b11c208b4b39ce094e49d25830c22c5658c27274e5b7fc" tag: "2.1.2@sha256:36fe59a047fa466bef6fcdeed1ed8e4bbeaf7824c37c63e3bfe7262cd135cb9e"
openxchangeCoreUserGuide: openxchangeCoreUserGuide:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -836,7 +826,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "799279"] # upstreamMirrorStartFrom: ["8", "20", "799279"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-user-guide" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-user-guide"
tag: "8.41.1547156@sha256:fadee7a76ffa91e0be7ec643f3315806787ac2eea4b0bb271201a58580a5f456" tag: "8.38.1408226@sha256:1a18c6c7b6a7a0f16376a9c298e65a13a4b482f6df1351582250a88571f1fa73"
openxchangeDocumentConverter: openxchangeDocumentConverter:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -846,7 +836,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "50"] # upstreamMirrorStartFrom: ["8", "20", "50"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/documentconverter" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/documentconverter"
tag: "8.41.1875@sha256:839d73bdc7b158beee5e157df4b49004c9f4f2df1afb65c1e4bae51f9f67a213" tag: "8.38.1817@sha256:d7537574765e19e7c9e13fe936c1a4c69b39bda216abcd000dad9f93fbb62f7b"
openxchangeGotenberg: openxchangeGotenberg:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -866,7 +856,7 @@ images:
# upstreamMirrorStartFrom: ["4", "2", "2"] # upstreamMirrorStartFrom: ["4", "2", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/guard-ui" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/guard-ui"
tag: "8.33.4@sha256:e73afec3d549943379fdb12dde1ab14d53c6fafac221e2512c6641ac71c65b3f" tag: "8.33.2@sha256:920b5ac87128f30c176c0ae75c6bedd32d226a97c6c5a822235606c39992ee9a"
openxchangeImageConverter: openxchangeImageConverter:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -876,7 +866,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "50"] # upstreamMirrorStartFrom: ["8", "20", "50"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/imageconverter" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/imageconverter"
tag: "8.41.2194@sha256:8b3085642fea2bc0ab64b6a8256ce4c00952e84d4c233edd05d458a8d82045f9" tag: "8.38.2105@sha256:9c79f29712c5a5479bc1a08e127c65415a50a63954b244c1d34a570f5f3ed1f6"
openxchangeNextcloudIntegrationUI: openxchangeNextcloudIntegrationUI:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -886,7 +876,7 @@ images:
# upstreamMirrorStartFrom: ["1", "2", "0"] # upstreamMirrorStartFrom: ["1", "2", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/nextcloud-integration-ui" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/nextcloud-integration-ui"
tag: "1.4.2@sha256:b52b0d1735e545fb6ec1cb064aa229135b0503295e8ac672a06816a364a7a18e" tag: "1.4.1@sha256:423d596b52ab32778d7227d98ccc719f98395a00d95ff0bcac826665b59e1937"
openxchangePublicSectorUI: openxchangePublicSectorUI:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Open-Xchange" # providerResponsible: "Open-Xchange"
@@ -896,7 +886,7 @@ images:
# upstreamMirrorStartFrom: ["2", "2", "1"] # upstreamMirrorStartFrom: ["2", "2", "1"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/public-sector-ui" repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/public-sector-ui"
tag: "2.5.0@sha256:e7838687b30eb7d4976e9e0c99d23cdc0cc59b1f38d322dc8562905a723218bf" tag: "2.4.1@sha256:c9f0f5425517e1740aaf9998c5944ce36ce26eda52329754e6b8ac733e2dacc5"
oxConnector: oxConnector:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -906,7 +896,7 @@ images:
# upstreamMirrorStartFrom: ["0", "4", "2"] # upstreamMirrorStartFrom: ["0", "4", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ox-connector-standalone" repository: "bmi/opendesk/components/supplier/univention/images-mirror/ox-connector-standalone"
tag: "0.27.9@sha256:749a59c7ae9eb7882448fce5441bf05aba84ef4ee6d8107e63d22267faa40763" tag: "0.19.0@sha256:447e3c3e0cdd8bf1f86004d2088c24fcf6141ff6fef78ade8dfe86f7f16ba40e"
postfix: postfix:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -922,7 +912,7 @@ images:
# upstreamRepository: "alpine/k8s" # upstreamRepository: "alpine/k8s"
registry: "registry-1.docker.io" registry: "registry-1.docker.io"
repository: "alpine/k8s" repository: "alpine/k8s"
tag: "1.34.0@sha256:b5f6edfeac5279f3e182d938d1ffecb62f7c980756ac4b6b66d7f0d566782f77" tag: "1.33.0@sha256:60333a52c38e9a8df0a9b93a5a24a4870f0db2c7ea3266b185386bd0a500d7dc"
postgresql: postgresql:
# providerCategory: "Community" # providerCategory: "Community"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -940,17 +930,15 @@ images:
# upstreamMirrorStartFrom: ["8922"] # upstreamMirrorStartFrom: ["8922"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/prosody" repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/prosody"
tag: "stable-10431@sha256:792618fff60c6e0eb4facb221e3477b2249cabeaf0479753ac7a6b98c075fd20" tag: "stable-9955@sha256:fa66872338c7c3b6fdb1f1a67ad770f2b62948f4193b91a58f12c0aa5ca2e783"
redis: redis:
# providerCategory: "Community" # providerCategory: "Community"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
# upstreamRegistry: "https://registry-1.docker.io" # upstreamRegistry: "https://registry-1.docker.io"
# upstreamRepository: "bitnami/redis" # upstreamRepository: "bitnami/redis"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-debian-(\d+)-r(\d+)$' registry: "registry-1.docker.io"
# upstreamMirrorStartFrom: ["7", "4", "3", "12", "0"] repository: "bitnami/redis"
registry: "registry.opencode.de" tag: "7.4.3-debian-12-r0@sha256:a25b5d07a14ec13730022c7cd9bab6308d55ccd86b74af7315553c17be884889"
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"
@@ -960,7 +948,7 @@ images:
# upstreamMirrorStartFrom: ["1", "91", "2"] # upstreamMirrorStartFrom: ["1", "91", "2"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/element/images-mirror/synapse" repository: "bmi/opendesk/components/supplier/element/images-mirror/synapse"
tag: "v1.137.0@sha256:ae2f7ae1329d4ce66292ee2aed78f9187ab25104288c44413b0de4c0ae8ac7f9" tag: "v1.129.0@sha256:13ac3293547d8c06e1e03fca4e02ef9a47f132acc2e2cdb4143a01495dd924cf"
synapseCreateUser: synapseCreateUser:
# providerCategory: "Community" # providerCategory: "Community"
# providerResponsible: "Nordeck" # providerResponsible: "Nordeck"
@@ -968,7 +956,7 @@ images:
# upstreamRepository: "alpine/k8s" # upstreamRepository: "alpine/k8s"
registry: "registry-1.docker.io" registry: "registry-1.docker.io"
repository: "alpine/k8s" repository: "alpine/k8s"
tag: "1.34.0@sha256:b5f6edfeac5279f3e182d938d1ffecb62f7c980756ac4b6b66d7f0d566782f77" tag: "1.33.0@sha256:60333a52c38e9a8df0a9b93a5a24a4870f0db2c7ea3266b185386bd0a500d7dc"
synapseGuestModule: synapseGuestModule:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Element" # providerResponsible: "Element"
@@ -1000,19 +988,19 @@ images:
# providerResponsible: "XWiki" # providerResponsible: "XWiki"
# upstreamRegistry: "https://git.xwikisas.com:5050" # upstreamRegistry: "https://git.xwikisas.com:5050"
# upstreamRepository: "xwikisas/swp/xwiki" # upstreamRepository: "xwikisas/swp/xwiki"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-?\d?-mariadb.+$' # upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)-mariadb.+$'
# upstreamMirrorStartFrom: ["17", "4", "4"] # upstreamMirrorStartFrom: ["0", "12"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/xwiki" repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/xwiki"
tag: "17.4.4-1-mariadb-jetty-alpine@sha256:0182dbb610a4c80b253e63e73ccc2487a07579baf259df4c874d860754127b4c" tag: "0.25-mariadb-jetty-alpine@sha256:7175ef5e454b4eb0f6fd6a92a9503d8a680db3ca97b25c3a4eedac9c9bfbcdaf"
xwikiPostgres: xwikiPostgres:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "XWiki" # providerResponsible: "XWiki"
# upstreamRegistry: "https://git.xwikisas.com:5050" # upstreamRegistry: "https://git.xwikisas.com:5050"
# upstreamRepository: "xwikisas/swp/xwiki" # upstreamRepository: "xwikisas/swp/xwiki"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)-?\d?-postgres.+$' # upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)-postgres.+$'
# upstreamMirrorStartFrom: ["17", "4", "4"] # upstreamMirrorStartFrom: ["0", "23"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/xwiki" repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/xwiki"
tag: "17.4.4-1-postgres-jetty-alpine@sha256:2da4c175a418b1b8a09e8b25006bfc6f6f22fd449bc2e77dac31c0b56c444b94" tag: "0.25-postgres-jetty-alpine@sha256:1bfc57a65f8bc6b059d550791699b5afa33b91db8d4c75ca8f6f3d2299f7c335"
... ...

View File

@@ -46,7 +46,6 @@ persistence:
#storageClassName: "" #storageClassName: ""
oxConnector: oxConnector:
size: "1Gi" size: "1Gi"
# This value is not passed on to the related Helm chart yet, but required for linting purposes.
storageClassName: ~ storageClassName: ~
postfix: postfix:
size: "1Gi" size: "1Gi"

View File

@@ -50,10 +50,10 @@ resources:
dovecot: dovecot:
limits: limits:
cpu: 99 cpu: 99
memory: "512Mi" memory: "256Mi"
requests: requests:
cpu: 0.1 cpu: 0.1
memory: "64Mi" memory: "32Mi"
element: element:
limits: limits:
cpu: 99 cpu: 99
@@ -293,7 +293,7 @@ resources:
openproject: openproject:
limits: limits:
cpu: 99 cpu: 99
memory: "3Gi" memory: "2Gi"
requests: requests:
cpu: 0.1 cpu: 0.1
memory: "768Mi" memory: "768Mi"

View File

@@ -64,7 +64,6 @@ secrets:
nextcloudUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "nextcloud_user" | sha1sum | quote }} nextcloudUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "nextcloud_user" | sha1sum | quote }}
notesUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "notes_user" | sha1sum | quote }} notesUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "notes_user" | sha1sum | quote }}
openprojectUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "openproject_user" | sha1sum | quote }} openprojectUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "openproject_user" | sha1sum | quote }}
umsAuthSessionUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "authsession_user" | sha1sum | quote }}
umsNotificationsApiUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "notificationsapi_user" | sha1sum | quote }} umsNotificationsApiUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "notificationsapi_user" | sha1sum | quote }}
umsGuardianManagementApiUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "guardianmanagementapi_user" | sha1sum | quote }} umsGuardianManagementApiUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "guardianmanagementapi_user" | sha1sum | quote }}
umsSelfserviceUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "selfservice_user" | sha1sum | quote }} umsSelfserviceUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "selfservice_user" | sha1sum | quote }}
@@ -86,7 +85,6 @@ secrets:
keycloak: keycloak:
adminPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "keycloak" "adminPassword" | sha1sum | quote }} adminPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "keycloak" "adminPassword" | sha1sum | quote }}
clientSecret: clientSecret:
portal: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "nubus" "portal_client_secret" | sha1sum | quote }}
dovecot: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "keycloak" "dovecot_client_secret" | sha1sum | quote }} dovecot: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "keycloak" "dovecot_client_secret" | sha1sum | quote }}
intercom: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "keycloak" "intercom_client_secret" | sha1sum | quote }} intercom: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "keycloak" "intercom_client_secret" | sha1sum | quote }}
matrix: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "keycloak" "matrix_client_secret" | sha1sum | quote }} matrix: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "keycloak" "matrix_client_secret" | sha1sum | quote }}

View File

@@ -12,11 +12,4 @@ security:
matchLabels: matchLabels:
app.kubernetes.io/name: "ingress-nginx" app.kubernetes.io/name: "ingress-nginx"
namespace: "ingress-nginx" namespace: "ingress-nginx"
# Global limits for how often a password reset action can be requested.
# Defaults are taken from the nubus stack-data-ums chart and should work with most small to medium installations
passwordResetLimits:
day: 1000
hour: 200
minute: 120
... ...

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 100 KiB

View File

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

View File

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

View File

@@ -10,9 +10,6 @@ helmfiles:
values: &values values: &values
- "helmfile/environments/default/*.yaml.gotmpl" - "helmfile/environments/default/*.yaml.gotmpl"
- {{ toYaml .Values | nindent 8 }} - {{ toYaml .Values | nindent 8 }}
{{- if eq (env "OPENDESK_ENTERPRISE") "true" }}
- "helmfile/environments/default-enterprise-overrides/*.yaml.gotmpl"
{{- end }}
- path: "helmfile/apps/opendesk-services/helmfile-child.yaml.gotmpl" - path: "helmfile/apps/opendesk-services/helmfile-child.yaml.gotmpl"
values: *values values: *values
- path: "helmfile/apps/services-external/helmfile-child.yaml.gotmpl" - path: "helmfile/apps/services-external/helmfile-child.yaml.gotmpl"

View File

@@ -22,8 +22,8 @@ name: "openDesk"
platforms: platforms:
- "web" - "web"
developmentStatus: "stable" developmentStatus: "stable"
softwareVersion: "1.8.0" softwareVersion: "1.6.0"
releaseDate: "2025-09-25" releaseDate: "2025-07-14"
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"