Compare commits

..

32 Commits

Author SHA1 Message Date
Thorsten Roßner
45b924e8fa chore(release): 1.3.1 [skip ci]
## [1.3.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.3.0...v1.3.1) (2025-04-24)

### Bug Fixes

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

### Bug Fixes

* **helmfile:** Fix Kyverno lint issues for EE components ([46b3834](46b38342d3))
* **helmfile:** Remove no longer used `secrets.nubus.defaultAccounts.*` ([6e6d155](6e6d15552e))
* **helmfile:** Support for Keycloak session settings via `functional.authentication.realmSettings.*` ([3fcfa00](3fcfa00503))
* **migrations:** Optional delete of `ums-minio-rewrites` Ingress, as it is non-existing in deployments with external object storage ([6932953](693295391b))
* **ox-connector:** Update to v0.19.0 ([fe664a7](fe664a7f8d))
* **xwiki:** Update Helm chart to v1.4.4 to fix the problem with XWiki not starting when secrets contained specific (XML interpreted) characters ([67a1df0](67a1df0f80))

### Features

* **collabora:** Update to 24.04.13 ([8f12208](8f12208074))
* **helmfile:** Add template support for annotations ([9cde57d](9cde57d74b))
* **helmfile:** Support for SSO federation; see `ssoFederation` section in `functional.yaml.gotmpl` for details ([79975a5](79975a58e3))
* **nubus:** Show openDesk version to all users (instead of admin users only) ([393ee31](393ee31163))
* **nubus:** Update to 1.8.0 ([90c49f6](90c49f6f83))
* **openproject:** Update to 15.5.0 ([7f1cfc5](7f1cfc5555))
2025-04-22 13:02:30 +00:00
Thorsten Roßner
693295391b fix(migrations): Optional delete of ums-minio-rewrites Ingress, as it is non-existing in deployments with external object storage 2025-04-22 14:08:04 +02:00
Thorsten Roßner
393ee31163 feat(nubus): Show openDesk version to all users (instead of admin users only) 2025-04-22 14:07:55 +02:00
Jonas Schulz
b0088b028c docs: Supplement changes from 0e3b6615 2025-04-22 14:07:55 +02:00
Oliver Günther
7f1cfc5555 feat(openproject): Update to 15.5.0 2025-04-22 14:07:55 +02:00
Dominik Kaminski
9cde57d74b feat(helmfile): Add template support for annotations 2025-04-22 14:07:55 +02:00
Thorsten Roßner
cf750a8ddb chore: Update release/version info in publiccode.yml and global.generated.yaml.gotmpl 2025-04-22 14:07:55 +02:00
Thorsten Roßner
8f12208074 feat(collabora): Update to 24.04.13 2025-04-22 14:07:55 +02:00
Norbert Tretkowski
90c49f6f83 feat(nubus): Update to 1.8.0 2025-04-22 14:07:55 +02:00
René Fischer
e25cb5e0f3 docs(testing.md): Add link to load test repo and information about nightly tests 2025-04-22 14:07:55 +02:00
Thorsten Roßner
79975a58e3 feat(helmfile): Support for SSO federation; see ssoFederation section in functional.yaml.gotmpl for details 2025-04-22 14:07:55 +02:00
Ben Schlagbauer
02867c47c0 docs: Overall fixes improvements 2025-04-22 14:07:55 +02:00
Thorsten Roßner
4df50b011d ci: Ensure "DEPLOY" options are grouped together 2025-04-22 14:07:55 +02:00
Thorsten Roßner
c22b467a61 docs(README-EE.md): More detailled information regarding oD EE artifacts 2025-04-22 14:07:55 +02:00
René Fischer
4bf98d0da0 chore(docs): Fix links in docs 2025-04-22 14:07:55 +02:00
Ben Schlagbauer
8585b8419e docs: Overall fixes improvements 2025-04-22 14:07:55 +02:00
Simon Herman
464efb41f2 docs(requirements): Add information on compatibility with Ingress-NGINX >= 1.12.0 2025-04-22 14:07:54 +02:00
René Fischer
790baebf71 chore(docs): Merge info repo contents 2025-04-22 14:07:54 +02:00
Thorsten Roßner
3fcfa00503 fix(helmfile): Support for Keycloak session settings via functional.authentication.realmSettings.* 2025-04-22 14:07:47 +02:00
Norbert Tretkowski
fe664a7f8d fix(ox-connector): Update to v0.19.0 2025-04-22 07:49:27 +02:00
Thorsten Roßner
67a1df0f80 fix(xwiki): Update Helm chart to v1.4.4 to fix the problem with XWiki not starting when secrets contained specific (XML interpreted) characters 2025-04-22 07:49:27 +02:00
Thorsten Roßner
6e6d15552e fix(helmfile): Remove no longer used secrets.nubus.defaultAccounts.* 2025-04-22 07:49:27 +02:00
Thomas Kaltenbrunner
46b38342d3 fix(helmfile): Fix Kyverno lint issues for EE components 2025-04-22 07:49:27 +02:00
René Fischer
08ee9ee44c chore(docs): Fix links in docs 2025-04-11 10:15:18 +02:00
68 changed files with 1875 additions and 204 deletions

View File

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

View File

@@ -1,3 +1,36 @@
## [1.3.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.3.0...v1.3.1) (2025-04-24)
### Bug Fixes
* **ci:** Update Helm to v3.17.3 ([9446faa](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/9446faaa597777e9fb15d33953e02fdbfef646b2))
* **ci:** Update Helm to v3.17.3 ([d794a20](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/d794a2036ed6543bf89a0b661cc8a4c8a383a5f0))
* **docs:** Update "Ingress controller" section and add footnote on volume provisioner in `requirements.md` ([17efbd7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/17efbd79f177f635885735823696a6e50b919d3e))
* **helmfile:** Conditional templating of additional annotations in selected components to unblock openDesk deployment despite a bug in Helm 3.17 (https://github.com/helm/helm/issues/30587) ([861b84b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/861b84b14de9fb42c483f3ddb9e083305750d137))
* **postfix:** Disable unauthenticated relaying of mails in `postfix-ox` ([7414f05](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/7414f05005e019f2121e8458fe63e795819fe92c))
# [1.3.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.2.1...v1.3.0) (2025-04-22)
### Bug Fixes
* **helmfile:** Fix Kyverno lint issues for EE components ([46b3834](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/46b38342d3cb6789e1734cd6eba412bc726c834b))
* **helmfile:** Remove no longer used `secrets.nubus.defaultAccounts.*` ([6e6d155](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/6e6d15552e87a77870755db3b48f2af686916c1f))
* **helmfile:** Support for Keycloak session settings via `functional.authentication.realmSettings.*` ([3fcfa00](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/3fcfa00503854f752a3885321b16b3f3597cb09a))
* **migrations:** Optional delete of `ums-minio-rewrites` Ingress, as it is non-existing in deployments with external object storage ([6932953](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/693295391bb02892b537a48513c9e0c2824ed466))
* **ox-connector:** Update to v0.19.0 ([fe664a7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/fe664a7f8d696fea53b6abadec5a0cb5db751f43))
* **xwiki:** Update Helm chart to v1.4.4 to fix the problem with XWiki not starting when secrets contained specific (XML interpreted) characters ([67a1df0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/67a1df0f80dc598287174a8dd6bda3f477227f0d))
### Features
* **collabora:** Update to 24.04.13 ([8f12208](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/8f12208074b2947ec65ebc3c21920d4f775e0c6e))
* **helmfile:** Add template support for annotations ([9cde57d](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/9cde57d74b8cfdd09e4f6b82cf45f1b1a686e035))
* **helmfile:** Support for SSO federation; see `ssoFederation` section in `functional.yaml.gotmpl` for details ([79975a5](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/79975a58e3a4f50e59d1d790045c22a32ab49372))
* **nubus:** Show openDesk version to all users (instead of admin users only) ([393ee31](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/393ee311630630fd1aae8354ead90bcaaf5e4dba))
* **nubus:** Update to 1.8.0 ([90c49f6](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/90c49f6f83df0b34b86c17164eaa4e137d0cd9be))
* **openproject:** Update to 15.5.0 ([7f1cfc5](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/7f1cfc55551f608603e0401dfef24bbb9cc334e5))
## [1.2.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.2.0...v1.2.1) (2025-03-28) ## [1.2.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.2.0...v1.2.1) (2025-03-28)

View File

@@ -123,7 +123,7 @@ When a repository path starts with `/zendis`, the artifact is only available in
- Collabora Online (COOL) container image: Is build from the same public source code as Collabora Development Edition (CODE), only the build configurations might differ. COOL includes a brand package that is not public and its license is not open source. - Collabora Online (COOL) container image: Is build from the same public source code as Collabora Development Edition (CODE), only the build configurations might differ. COOL includes a brand package that is not public and its license is not open source.
- COOL Controller container image and Helm chart: Source code and chart are using Mozilla Public License Version 2.0, but the source code is not public. It is provided to customers upon request. - COOL Controller container image and Helm chart: Source code and chart are using Mozilla Public License Version 2.0, but the source code is not public. It is provided to customers upon request.
openDesk updates Collabora once a COOL image based on the version pattern `<major>.<minor>.<patch>.3` is available, at the same time the CODE image will be updated to `<major>.<minor>.<patch>.2`. openDesk updates Collabora once a COOL image based on the version pattern `<major>.<minor>.<patch>.3+.<build>` was made available. This happens usually at the same time the CODE image with `<major>.<minor>.<patch>.2+.<build>` is made available.
### Element ### Element

View File

@@ -40,10 +40,10 @@ openDesk currently features the following functional main components:
| File management | Nextcloud | [30.0.6](https://nextcloud.com/de/changelog/#30-0-6) | [Nextcloud 30](https://docs.nextcloud.com/) | | File management | Nextcloud | [30.0.6](https://nextcloud.com/de/changelog/#30-0-6) | [Nextcloud 30](https://docs.nextcloud.com/) |
| Groupware | OX App Suite | [8.35](https://documentation.open-xchange.com/appsuite/releases/8.35/) | Online documentation available from within the installed application; [Additional resources](https://documentation.open-xchange.com/) | | Groupware | OX App Suite | [8.35](https://documentation.open-xchange.com/appsuite/releases/8.35/) | Online documentation available from within the installed application; [Additional resources](https://documentation.open-xchange.com/) |
| Knowledge management | XWiki | [16.10.5](https://www.xwiki.org/xwiki/bin/view/ReleaseNotes/Data/XWiki/16.10.5/) | [For the most recent release](https://www.xwiki.org/xwiki/bin/view/Documentation) | | Knowledge management | XWiki | [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 | [1.7.0](https://docs.software-univention.de/nubus-kubernetes-release-notes/latest/en/changelog.html#version-1-7-0-2025-02-23) | [Univention's documentation website](https://docs.software-univention.de/n/en/nubus.html) | | Portal & IAM | Nubus | [1.8.0](https://docs.software-univention.de/nubus-kubernetes-release-notes/latest/en/changelog.html#version-1-8-0-2025-04-07) | [Univention's documentation website](https://docs.software-univention.de/n/en/nubus.html) |
| Project management | OpenProject | [15.4.2](https://www.openproject.org/docs/release-notes/15-4-2/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) | | Project management | OpenProject | [15.5.0](https://www.openproject.org/docs/release-notes/15-5-0/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
| Videoconferencing | Jitsi | [2.0.9955](https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_9955) | [For the most recent release](https://jitsi.github.io/handbook/docs/category/user-guide/) | | Videoconferencing | Jitsi | [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 | [24.04.12.4](https://www.collaboraoffice.com/code-24-04-release-notes/) | Online documentation available from within the installed application; [Additional resources](https://sdk.collaboraonline.com/) | | Weboffice | Collabora | [24.04.13](https://www.collaboraoffice.com/code-24-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.

View File

@@ -119,7 +119,7 @@ openDesk should be compliant with the "Deutsche Verwaltungscloud Strategie" (DVS
## IT-Grundschutz ## IT-Grundschutz
The IT-Grundschutz catalog knowns a lot of modules ("Bausteine"), but not all of them apply to all components, as there are some related to hardware or some just relevant for the operator while openDesk is "just" the software platform. The first step for an IT-Grundschutz evaluation of a component (or the platform as a whole) requires defining which modules are applicable. Other modules apply to all components e.g. [APP.4.4 Kubernetes](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/06_APP_Anwendungen/APP_4_4_Kubernetes_Edition_2023.pdf), [SYS.1.6 Containerisierung](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/07_SYS_IT_Systeme/SYS_1_6_Containerisierung_Edition_2023.pdf) and [CON 2 Datenschutz](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/03_CON_Konzepte_und_Vorgehensweisen/CON_2_Datenschutz_Edition_2023.pdf). The IT-Grundschutz catalog knowns a lot of modules ("Bausteine"), but not all of them apply to all components, as there are some related to hardware or some just relevant for the operator while openDesk is "just" the software platform. The first step for an IT-Grundschutz evaluation of a component (or the platform as a whole) requires defining which modules are applicable. Other modules apply to all components e.g. [APP.4.4 Kubernetes](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/06_APP_Anwendungen/APP_4_4_Kubernetes_Edition_2023.pdf), [SYS.1.6 Containerisierung](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/07_SYS_IT_Systeme/SYS_1_6_Containerisierung_Edition_2023.pdf) and [CON.2 Datenschutz](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/03_CON_Konzepte_und_Vorgehensweisen/CON_2_Datenschutz_Edition_2023.pdf).
Within each module are multiple requirements ("Anforderungen") that are usually composed of multiple partial requirements ("Teilanforderungen"). Each requirement has a given category: Within each module are multiple requirements ("Anforderungen") that are usually composed of multiple partial requirements ("Teilanforderungen"). Each requirement has a given category:
- B for basic ("Basis") - the requirement must be fulfilled. - B for basic ("Basis") - the requirement must be fulfilled.
@@ -133,7 +133,7 @@ Different requirements address different roles in IT-Grundschutz.
- Operator: processes & product (service) - Operator: processes & product (service)
- Customer: processes. - Customer: processes.
As a supplier of an openDesk component, you will focus on the "Supplier" requirements, while the outcome (your product) must enable the Provider to fulfill the requirements that lay with its responsibility for the openDesk platform. Operators use openDesk to provide a service, therefore the openDesk platform must enable an Operator to fulfill the related requirements. Finally, the service must enable the customer to align with the scope of the IT Grundschutz catalog. So it will happen that a requirement from e.g. the customer level needs a specific capability by the product (Supplier's responsibility), a defined core configuration from the platform (Provider's responsibility), or a certain service setup from the Operator. As a supplier of an openDesk component, you will focus on the "Supplier" requirements, while the outcome (your product) must enable the Provider to fulfill the requirements that lay with its responsibility for the openDesk platform. Operators use openDesk to provide a service, therefore the openDesk platform must enable an Operator to fulfill the related requirements. Finally, the service must enable the customer to align with the scope of the IT-Grundschutz catalog. So it will happen that a requirement from e.g. the customer level needs a specific capability by the product (Supplier's responsibility), a defined core configuration from the platform (Provider's responsibility), or a certain service setup from the Operator.
We are aware that IT-Grundschutz is a complex topic and are working towards a streamlined process to reduce overhead as much as possible and ensure to maximize the use of synergies. We are aware that IT-Grundschutz is a complex topic and are working towards a streamlined process to reduce overhead as much as possible and ensure to maximize the use of synergies.
@@ -167,7 +167,7 @@ Each component must be able to operate according to the [EU's General Data Prote
While this can be answered by each component that will be in the spotlight for the suppliers, we also need an aligned overall picture for openDesk that at least has the platform-specific user lifecycle and cross-application interfaces in focus. While this can be answered by each component that will be in the spotlight for the suppliers, we also need an aligned overall picture for openDesk that at least has the platform-specific user lifecycle and cross-application interfaces in focus.
Note: The topics of availability, integrity, and confidentiality of personal data are also being addressed by the IT-Grundschutz module "CON 2". It has to be ensured that it is not in contradiction to what is being done in the general area of data protection. Note: The topics of availability, integrity, and confidentiality of personal data are also being addressed by the IT-Grundschutz module "CON.2". It has to be ensured that it is not in contradiction to what is being done in the general area of data protection.
**Reference:** https://gitlab.opencode.de/bmi/opendesk/documentation/datenschutz **Reference:** https://gitlab.opencode.de/bmi/opendesk/documentation/datenschutz
@@ -185,7 +185,8 @@ With a central Identity- and Access Management (IAM) also the user lifecycle (UL
The focus is to have all the account information in all applications including the account's state, profile picture ([reference](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/issues/27)) and - where required - the user's group memberships. This cannot be done purely by pushing that data through OIDC claims when a user logs in to an application therefore two ways of managing an account are applicable and described in the following subchapters. The focus is to have all the account information in all applications including the account's state, profile picture ([reference](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/issues/27)) and - where required - the user's group memberships. This cannot be done purely by pushing that data through OIDC claims when a user logs in to an application therefore two ways of managing an account are applicable and described in the following subchapters.
Note: Allowing ad hoc updates of account data through OIDC claims during login is still encouraged. > **Note**<br>
> Allowing ad hoc updates of account data through OIDC claims during login is still encouraged.
### Pull: LDAP ### Pull: LDAP

View File

@@ -159,4 +159,3 @@ for Helm charts.
You may also want to make use of our [standard CI](https://gitlab.opencode.de/bmi/opendesk/tooling/gitlab-config) to You may also want to make use of our [standard CI](https://gitlab.opencode.de/bmi/opendesk/tooling/gitlab-config) to
quickly get Helm charts and container images that are signed, linted, scanned, and released. quickly get Helm charts and container images that are signed, linted, scanned, and released.
Check out the `.gitlab-ci.yaml` files in the project's [Charts](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts) or [Images](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images) to get an idea just how little you need to do by yourself. Check out the `.gitlab-ci.yaml` files in the project's [Charts](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts) or [Images](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images) to get an idea just how little you need to do by yourself.
components

View File

@@ -82,8 +82,8 @@ The following values are used in this example documentation. Please ensure when
- `id.opendesk.tld`: hostname for the openDesk IdP, so openDesk is deployed at `opendesk.tld`. - `id.opendesk.tld`: hostname for the openDesk IdP, so openDesk is deployed at `opendesk.tld`.
- `fed-test-idp-realm`: realm name for your organization's IdP. - `fed-test-idp-realm`: realm name for your organization's IdP.
- `opendesk-federation-client`: OIDC client for the openDesk federation defined in your organization's IdP. - `opendesk-federation-client`: OIDC client for the openDesk federation defined in your organization's IdP.
- `auto-federate-idp`: Identifier of your organization IdP's configuration within the openDesk Keycloak. - `sso-federation-idp`: Identifier of your organization IdP's configuration within the openDesk Keycloak.
- `auto-federate-flow`: Identifier of the required additional login flow to be created and referenced in the openDesk Keycloak. - `sso-federation-flow`: Identifier of the required additional login flow to be created and referenced in the openDesk Keycloak.
## Keycloak admin console access ## Keycloak admin console access
@@ -125,7 +125,7 @@ If you just created the `fed-test-idp-realm`, you are already in the admin scree
- `Standard flow` - `Standard flow`
- `Direct access grants` - `Direct access grants`
- Client create wizard page 3: - Client create wizard page 3:
- *Valid Redirect URLs*: `https://id.opendesk.tld/realms/opendesk/broker/auto-federate-idp/endpoint` - *Valid Redirect URLs*: `https://id.opendesk.tld/realms/opendesk/broker/sso-federation-idp/endpoint`
- When completed with *Save*, you get to the detailed client configuration that also needs some updates: - When completed with *Save*, you get to the detailed client configuration that also needs some updates:
- Tab *Settings* > Section *Logout settings* - Tab *Settings* > Section *Logout settings*
- *Front channel logout*: `Off` - *Front channel logout*: `Off`
@@ -135,17 +135,21 @@ If you just created the `fed-test-idp-realm`, you are already in the admin scree
## openDesk IdP ## openDesk IdP
> **Note**
> While manual configuration is possible, an SSO federation can also be configured as part of the deployment.
> Check `functional.authentication.ssoFederation` section from the `functional.yaml.gotmpl` for details.
The following configuration is taking place in the Keycloak realm `opendesk`. The following configuration is taking place in the Keycloak realm `opendesk`.
- *Authentication* > *Create flow* - *Authentication* > *Create flow*
- *Name*: `auto-federate-flow` - *Name*: `sso-federation-flow`
- *Flow type*: `Basic flow` - *Flow type*: `Basic flow`
- *Create* - *Create*
- *Add execution*: Add `Detect existing broker user` and set it to `Required` - *Add execution*: Add `Detect existing broker user` and set it to `Required`
- *Add step*: `Automatically set existing user` and set it to `Required` - *Add step*: `Automatically set existing user` and set it to `Required`
- *Identity providers* > *User-defined* > *OpenID Connect 1.0* - *Identity providers* > *User-defined* > *OpenID Connect 1.0*
- *Alias*: `auto-federate-idp` (used in our example) - *Alias*: `sso-federation-idp` (used in our example)
- *Display Name*: A descriptive Name, in case you do not forcefully redirect the user to the IdP, that name is shown on the login screen for manual selection. - *Display Name*: A descriptive Name, in case you do not forcefully redirect the user to the IdP, that name is shown on the login screen for manual selection.
- *Use discovery endpoint*: `On` (default) - *Use discovery endpoint*: `On` (default)
- *Discovery endpoint*: `https://idp.organization.tld/realms/fed-test-idp-realm/.well-known/openid-configuration` - this URL may look different if you do not use Keycloak or a different Keycloak version as IdP in your organization - *Discovery endpoint*: `https://idp.organization.tld/realms/fed-test-idp-realm/.well-known/openid-configuration` - this URL may look different if you do not use Keycloak or a different Keycloak version as IdP in your organization
@@ -155,11 +159,11 @@ The following configuration is taking place in the Keycloak realm `opendesk`.
- *Client ID*: Use the client ID you took from your organization's IdP config (`opendesk-federation-client` in this example) - *Client ID*: Use the client ID you took from your organization's IdP config (`opendesk-federation-client` in this example)
- *Client Secret*: Use the secret you took from your organization's IdP config - *Client Secret*: Use the secret you took from your organization's IdP config
- When completed with *Add*, you get to the detailed IdP configuration which at least needs the following update: - When completed with *Add*, you get to the detailed IdP configuration which at least needs the following update:
- *First login flow override*: `auto-federate-flow` - *First login flow override*: `sso-federation-flow`
- Depending on your organizations IdP and process preferences, additional configuration may be required - Depending on your organizations IdP and process preferences, additional configuration may be required
- In case you want to forcefully redirect all users to your organization's IdP (disabling login with local openDesk accounts): - In case you want to forcefully redirect all users to your organization's IdP (disabling login with local openDesk accounts):
- *Authentication* > `2fa-browser` - *Authentication* > `2fa-browser`
- Click on the cogwheel next to the *Identity Provider Re-director* - Click on the cogwheel next to the *Identity Provider Re-director*
- *Alias*: `auto-federate-idp` - *Alias*: `sso-federation-idp`
- *Default Identity Provider*: `auto-federate-idp` - *Default Identity Provider*: `sso-federation-idp`

View File

@@ -73,7 +73,7 @@ For your convenience, we recommend creating a `*.domain.tld` A-Record for your c
## Domain ## Domain
A list of all subdomains can be found in `helmfile/environments/default/global.gotmpl`. A list of all subdomains can be found in `helmfile/environments/default/global.yaml.gotmpl`.
All subdomains can be customized. For example, _Nextcloud_ can be changed to `files.domain.tld` in `dev` environment: All subdomains can be customized. For example, _Nextcloud_ can be changed to `files.domain.tld` in `dev` environment:
@@ -99,7 +99,7 @@ export DOMAIN=domain.tld
### Apps ### Apps
Depending on your ideal openDesk deployment, you may wish to disable or enable certain apps. Depending on your ideal openDesk deployment, you may wish to disable or enable certain apps.
All available apps and their default values are located in `helmfile/environments/default/opendesk_main.gotmpl`. All available apps and their default values are located in `helmfile/environments/default/opendesk_main.yaml.gotmpl`.
| Component | Name | Default | Description | | Component | Name | Default | Description |
| -------------------- | --------------------------- | ------- | ------------------------------ | | -------------------- | --------------------------- | ------- | ------------------------------ |
@@ -231,7 +231,7 @@ ingress:
``` ```
Currently, the only supported ingress controller is `ingress-nginx` (see Currently, the only supported ingress controller is `ingress-nginx` (see
[requirements.md](./docs/requirements.md)) for reference). [requirements.md](./docs/requirements.md) for reference).
### Container runtime ### Container runtime
@@ -272,7 +272,8 @@ While openDesk configures the applications with meaningful defaults, you can che
### Ports ### Ports
**Note:** If you use `NodePort` for service exposure, you must check your deployment for the actual ports and ensure they are opened where necessary. > **Note**<br>
> If you use `NodePort` for service exposure, you must check your deployment for the actual ports and ensure they are opened where necessary.
#### Web-based user interface #### Web-based user interface

View File

@@ -1,5 +1,5 @@
<!-- <!--
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH SPDX-FileCopyrightText: 2024-2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
--> -->
@@ -10,6 +10,7 @@ SPDX-License-Identifier: Apache-2.0
* [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)
* [From v1.1.2](#from-v112) * [From v1.1.2](#from-v112)
* [Pre-upgrade from v1.1.2](#pre-upgrade-from-v112)
* [Helmfile cleanup: Do not configure OX provisioning when no OX installed](#helmfile-cleanup-do-not-configure-ox-provisioning-when-no-ox-installed) * [Helmfile cleanup: Do not configure OX provisioning when no OX installed](#helmfile-cleanup-do-not-configure-ox-provisioning-when-no-ox-installed)
* [Helmfile new default: PostgreSQL for XWiki and Nextcloud](#helmfile-new-default-postgresql-for-xwiki-and-nextcloud) * [Helmfile new default: PostgreSQL for XWiki and Nextcloud](#helmfile-new-default-postgresql-for-xwiki-and-nextcloud)
* [From v1.1.1](#from-v111) * [From v1.1.1](#from-v111)
@@ -83,7 +84,7 @@ To upgrade existing deployments, you cannot skip any version mentioned in the co
| Mandatory version | | Mandatory version |
| ----------------- | | ----------------- |
| v1.2.x | | v1.2+ |
| v1.1.x | | v1.1.x |
| v1.0.0 | | v1.0.0 |
| v0.9.0 | | v0.9.0 |
@@ -100,6 +101,8 @@ Be sure you check all the sections for the releases you are going to update your
## From v1.1.2 ## From v1.1.2
### Pre-upgrade from v1.1.2
#### Helmfile cleanup: Do not configure OX provisioning when no OX installed #### Helmfile cleanup: Do not configure OX provisioning when no OX installed
**Target group:** Installations that have no OX App Suite installed. **Target group:** Installations that have no OX App Suite installed.

View File

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

View File

@@ -100,6 +100,7 @@ containerSecurityContext:
type: "RuntimeDefault" type: "RuntimeDefault"
``` ```
or or
```yaml ```yaml
@@ -111,7 +112,7 @@ containerSecurityContext:
## readOnlyRootFilesystem ## readOnlyRootFilesystem
Containers should have immutable file systems, so that attackers can not modify application code or download malicious code. Containers should have an immutable file systems, so that attackers can not modify application code or download malicious code.
```yaml ```yaml
containerSecurityContext: containerSecurityContext:
@@ -146,7 +147,7 @@ This list gives you an overview of templated security settings and if they compl
| process | status | allowPrivilegeEscalation | privileged | readOnlyRootFilesystem | runAsNonRoot | runAsUser | runAsGroup | seccompProfile | capabilities | | process | status | allowPrivilegeEscalation | privileged | readOnlyRootFilesystem | runAsNonRoot | runAsUser | runAsGroup | seccompProfile | capabilities |
| ------- | ------ | ------------------------ | ---------- | ---------------------- | ------------ | --------- | ---------- | -------------- | ------------ | | ------- | ------ | ------------------------ | ---------- | ---------------------- | ------------ | --------- | ---------- | -------------- | ------------ |
| **collabora**/collabora-online | :x: | yes | no | no | yes | 100 | 101 | yes | no ["CHOWN","FOWNER","SYS_CHROOT"] | | **collabora**/collabora-online | :x: | yes | no | no | yes | 1001 | 1001 | yes | no ["CHOWN","FOWNER","SYS_CHROOT"] |
| **cryptpad**/cryptpad | :x: | no | no | no | yes | 4001 | 4001 | yes | yes | | **cryptpad**/cryptpad | :x: | no | no | no | yes | 4001 | 4001 | yes | yes |
| **element**/matrix-neoboard-widget | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes | | **element**/matrix-neoboard-widget | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes |
| **element**/matrix-neochoice-widget | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes | | **element**/matrix-neochoice-widget | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes |

View File

@@ -9,14 +9,14 @@ SPDX-License-Identifier: Apache-2.0
* [Overview](#overview) * [Overview](#overview)
* [Test concept](#test-concept) * [Test concept](#test-concept)
* [Rely on upstream applications QA](#rely-on-upstream-applications-qa) * [Rely on upstream applications QA](#rely-on-upstream-applications-qa)
* [Run minimal functional QA (end-to-end tests)](#run-minimal-functional-qa-end-to-end-tests) * [Functional QA (end-to-end tests)](#functional-qa-end-to-end-tests)
* [Run extensive load and performance tests](#run-extensive-load-and-performance-tests) * [Nightly testing](#nightly-testing)
* [Reporting test results](#reporting-test-results)
* [Load- and performance testing](#load--and-performance-testing)
* [Base performance testing](#base-performance-testing) * [Base performance testing](#base-performance-testing)
* [Load testing to saturation point](#load-testing-to-saturation-point) * [Load testing to saturation point](#load-testing-to-saturation-point)
* [Load testing up to a defined user count](#load-testing-up-to-a-defined-user-count) * [Load testing up to a defined user count](#load-testing-up-to-a-defined-user-count)
* [Overload/recovery tests](#overloadrecovery-tests) * [Overload/recovery tests](#overloadrecovery-tests)
* [Reporting and test results](#reporting-and-test-results)
* [Allure TestOps](#allure-testops)
<!-- TOC --> <!-- TOC -->
# Overview # Overview
@@ -42,24 +42,65 @@ We receive the release notes early before a new application release is integrate
we are able to check for the existence of a sufficient set of test cases. we are able to check for the existence of a sufficient set of test cases.
The suppliers create a set of test cases for each new function. The suppliers create a set of test cases for each new function.
## Run minimal functional QA (end-to-end tests) ## Functional QA (end-to-end tests)
To ensure the function of all applications, we run a minimal set of testcases to check the We develop and maintain a [set of end-to-end tests](https://gitlab.opencode.de/bmi/opendesk/deployment/e2e-tests) focussing on:
basic functionality of openDesk along with the integrated applications.
Furthermore, we analyze all features and use cases which are implemented by a set of more than one - use cases that are spanning more than a single application, e.g.
application. - the filepicker in OX App Suite for selecting files from Nextcloud or
Not all of these features are testable by the suppliers, so we develop testcases - the central navigation that is part of the top bar of most applications.
for such features. - openDesk specific configurations/supported settings that can be found in the `functional.yaml.gotmpl`, e.g.
- SSO federation or
- sharing settings for Nextcloud.
- bugs identified in the past, e.g.
- creating a folder in OX or
- enforcement of an account's password renewal.
The openDesk application owners prioritize this list of end-to-end-testcases, and we We execute the tests using English and German as language profile.
implement these testcases in the [test automation framework](https://gitlab.opencode.de/bmi/opendesk/deployment/e2e-tests).
## Run extensive load and performance tests The development team utilizes the test automation described above for QA'ing their feature branches.
### Nightly testing
We use the functional e2e-tests in nightly testruns on a matrix of deployments addressing different application profiles to ensure the quality of the development branch's current state.
The following naming scheme is applied for the deployment matrix:
- `<edition>-<type>-<profile>` resulting e.g. in `ce-init-default` or `ee-upgr-extsrv`
**`<edition>`**
- `ce`: openDesk Community Edition
- `ee`: openDesk Enterprise Edition
**`<type>`**
- `init`: Initial / fresh / from the scratch deployment of `develop` branch into an empty namespace.
- `upgr`: Deploy latest migration release (needs to be pinned manually) into an empty namespace, afterwards run upgrade deployment with current state of `develop` branch.
- `upd`: Deploy latest release (`main` branch) into an empty namespace, afterwards run upgrade deployment with current state of `develop` branch.
**`<profile>`**: The following profiles are defined
- `default`: With
- *`functional.yaml`*: No changes beside specific `2FA testing` group and enabled UDM REST API (required for user import).
- *Services*: Internal services deployed with openDesk are used.
- *Secrets*: Master password based secrets based on `secrets.yaml.gotmpl`
- *Certificates*: Letsencrypt-prod certificates are used.
- *Deployment*: GitLab CI based deployment.
- `funct1`: Different configuration of `functional.yaml`, self-signed-certs [and when available external secrets].
- `extsrv`: External services (where possible).
- `gitops`: Argo CD based deployment.
### Reporting test results
All executions of the end-to-end tests are tracked in a central platform running [Allure TestOps](https://docs.qameta.io/allure-testops/).
As the TestOps tool contains infrastructure details of our development and test clusters it is currently only accessible for to project members.
## Load- and performance testing
Our goal is to deliver openDesk as application-grade software with the ability to serve large user bases. Our goal is to deliver openDesk as application-grade software with the ability to serve large user bases.
We create and perform extensive load and performance tests for each release of openDesk. We create and perform [load- and performance tests](https://gitlab.opencode.de/bmi/opendesk/deployment/load-tests) for each release of openDesk.
Our approach consists of different layers of load testing. Our approach consists of different layers of load testing.
@@ -109,30 +150,4 @@ If necessary, we perform overload tests, which will saturate the system with mul
test cases until no further increase in throughput is visible. Then we add even more load test cases until no further increase in throughput is visible. Then we add even more load
until the first HTTP requests run into timeouts or errors. until the first HTTP requests run into timeouts or errors.
After a few minutes, we reduce the load below the saturation point. After a few minutes, we reduce the load below the saturation point.
Then we check if the system is able to recover from the overload status. Now we can check if the system is able to recover from the overload status.
# Reporting and test results
We perform test runs every night, on all of our environments.
For each environment, we define so-called profiles, these contain the features enabled
per environment.
For example: Testing the email features in an environment without deployment of Open-Xchange makes no sense at all.
Also, we test the whole system via a browser with `language=DE` and another browser with `language=EN`.
The test results are saved in an [Allure TestOps](https://qameta.io/) server, so interested persons
are able to view the test results later in detail.
## Allure TestOps
The Allure TestOps [server](https://testops.opendesk.run/) is currently only accessible to project members.
The relevant project is called *opendesk*.
To get an overview, click in the left symbol list onto the symbol "Rocket" to
check all relevant launches.
Now you can see the launch #xxxx, and directly check for the success
of this launch.

View File

@@ -14,7 +14,7 @@ This document covers the theming options for an openDesk deployment.
# Settings # Settings
All default settings can be found in [`theme.gotmpl`](../helmfile/environments/default/theme.gotmpl). Most of the components adhere to these settings. All default settings can be found in [`theme.yaml.gotmpl`](../helmfile/environments/default/theme.yaml.gotmpl). Most of the components adhere to these settings.
Please review the default configuration that is applied to understand your customization options. Please review the default configuration that is applied to understand your customization options.

View File

@@ -374,7 +374,7 @@ Example: `fix(open-xchange): Bump to 8.26 to heal issue with functional mailbox
#### Verified commits #### Verified commits
We only allow verified commits; please read about the options you have to make your commits verified: We only allow verified commits; please read on about the options you have to make your commits verified:
- https://docs.gitlab.com/user/project/repository/signed_commits/ssh/ - https://docs.gitlab.com/user/project/repository/signed_commits/ssh/
- https://docs.gitlab.com/user/project/repository/signed_commits/gpg/ - https://docs.gitlab.com/user/project/repository/signed_commits/gpg/
- https://docs.gitlab.com/user/project/repository/signed_commits/x509/ - https://docs.gitlab.com/user/project/repository/signed_commits/x509/

View File

@@ -33,6 +33,8 @@ imagePullSecrets:
ingress: ingress:
enabled: {{ .Values.ingress.enabled }} enabled: {{ .Values.ingress.enabled }}
annotations:
{{ .Values.annotations.coco.ingress | toYaml | nindent 4 }}
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 }}"
@@ -44,7 +46,8 @@ ingress:
hosts: hosts:
- "{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}" - "{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}"
podAnnotations: {} podAnnotations:
{{ .Values.annotations.coco.pod | toYaml | nindent 2 }}
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
@@ -65,4 +68,7 @@ replicaCount: {{ .Values.replicas.collaboraController }}
resources: resources:
{{ .Values.resources.collaboraController | toYaml | nindent 2 }} {{ .Values.resources.collaboraController | toYaml | nindent 2 }}
serviceAccount:
annotations:
{{ .Values.annotations.coco.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -65,6 +65,35 @@ ingress:
location /cool/getMetrics { deny all; return 403; } location /cool/getMetrics { deny all; return 403; }
location /cool/adminws/ { deny all; return 403; } location /cool/adminws/ { deny all; return 403; }
location /browser/dist/admin/admin.html { deny all; return 403; } location /browser/dist/admin/admin.html { deny all; return 403; }
# NGINX
nginx.org/websocket-services: "collabora"
nginx.org/lb-method: "hash $arg_WOPISrc consistent"
nginx.org/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.collabora }}s"
nginx.org/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.collabora }}s"
nginx.org/client-max-body-size: "{{ .Values.ingress.parameters.bodySize.collabora }}"
nginx.org/server-snippets: |
# block admin and metrics endpoint from outside by default
location /cool/getMetrics { deny all; return 403; }
location /cool/adminws/ { deny all; return 403; }
location /browser/dist/admin/admin.html { deny all; return 403; }
# HAProxy
haproxy.org/timeout-tunnel: "{{ .Values.ingress.parameters.bodyTimeout.collabora }}s"
haproxy.org/backend-config-snippet: |
balance url_param WOPISrc check_post
hash-type consistent
# HAProxy - Community: https://haproxy-ingress.github.io/
haproxy-ingress.github.io/timeout-tunnel: "{{ .Values.ingress.parameters.bodyTimeout.collabora }}s"
haproxy-ingress.github.io/balance-algorithm: "url_param WOPISrc check_post"
haproxy-ingress.github.io/config-backend: |
hash-type consistent
# block admin urls from outside
acl admin_url path_beg /cool/getMetrics
acl admin_url path_beg /cool/adminws/
acl admin_url path_beg /browser/dist/admin/admin.html
http-request deny if admin_url
{{- with .Values.annotations.collabora.ingress }}
{{ . | toYaml | nindent 4 }}
{{- end }}
enabled: {{ .Values.ingress.enabled }} enabled: {{ .Values.ingress.enabled }}
className: {{ .Values.ingress.ingressClassName | quote }} className: {{ .Values.ingress.ingressClassName | quote }}
hosts: hosts:
@@ -77,10 +106,11 @@ ingress:
hosts: hosts:
- "{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}" - "{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}"
podAnnotations: {} podAnnotations:
{{ .Values.annotations.collabora.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
fsGroup: 100 fsGroup: 1001
prometheus: prometheus:
servicemonitor: servicemonitor:
@@ -102,8 +132,8 @@ securityContext:
privileged: false privileged: false
readOnlyRootFilesystem: false readOnlyRootFilesystem: false
runAsNonRoot: true runAsNonRoot: true
runAsUser: 100 runAsUser: 1001
runAsGroup: 101 runAsGroup: 1001
seccompProfile: seccompProfile:
type: "RuntimeDefault" type: "RuntimeDefault"
capabilities: capabilities:
@@ -116,6 +146,13 @@ securityContext:
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.collabora | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.collabora | toYaml | nindent 4 }}
serviceAccount: serviceAccount:
create: true create: true
annotations:
{{ .Values.annotations.collabora.serviceAccount | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.collabora.service | toYaml | nindent 4 }}
... ...

View File

@@ -39,6 +39,9 @@ ingress:
enabled: {{ .Values.ingress.enabled }} enabled: {{ .Values.ingress.enabled }}
annotations: annotations:
nginx.org/websocket-services: "cryptpad" nginx.org/websocket-services: "cryptpad"
{{- with .Values.annotations.cryptpad.ingress }}
{{ . | toYaml | nindent 4 }}
{{- end }}
className: {{ .Values.ingress.ingressClassName | quote }} className: {{ .Values.ingress.ingressClassName | quote }}
hosts: hosts:
- host: "{{ .Values.global.hosts.cryptpad }}.{{ .Values.global.domain }}" - host: "{{ .Values.global.hosts.cryptpad }}.{{ .Values.global.domain }}"
@@ -53,7 +56,8 @@ ingress:
persistence: persistence:
enabled: false enabled: false
podAnnotations: {} podAnnotations:
{{ .Values.annotations.cryptpad.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
fsGroup: 4001 fsGroup: 4001
@@ -80,6 +84,8 @@ securityContext:
serviceAccount: serviceAccount:
create: true create: true
annotations:
{{ .Values.annotations.cryptpad.serviceAccount | toYaml | nindent 4 }}
workloadStateful: false workloadStateful: false

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG Ze
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
commonAnnotations:
{{ .Values.annotations.element.common | toYaml | nindent 2 }}
configuration: configuration:
endToEndEncryption: true endToEndEncryption: true
additionalConfiguration: additionalConfiguration:
@@ -136,8 +139,11 @@ ingress:
tls: tls:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.element.ingress | toYaml | nindent 4 }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.element.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -148,6 +154,14 @@ replicaCount: {{ .Values.replicas.element }}
resources: resources:
{{ .Values.resources.element | toYaml | nindent 2 }} {{ .Values.resources.element | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.element.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.element.serviceAccount | toYaml | nindent 4 }}
theme: theme:
title: "Chat - {{ .Values.theme.texts.productName }}" title: "Chat - {{ .Values.theme.texts.productName }}"
{{ .Values.theme | toYaml | nindent 2 }} {{ .Values.theme | toYaml | nindent 2 }}

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
additionalAnnotations:
{{ .Values.annotations.elementMatrixNeoboardWidget.additional | toYaml | nindent 2 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -39,8 +42,11 @@ ingress:
tls: tls:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.elementMatrixNeoboardWidget.ingress | toYaml | nindent 4 }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.elementMatrixNeoboardWidget.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -51,6 +57,14 @@ replicaCount: {{ .Values.replicas.matrixNeoBoardWidget }}
resources: resources:
{{ .Values.resources.matrixNeoBoardWidget | toYaml | nindent 2 }} {{ .Values.resources.matrixNeoBoardWidget | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.elementMatrixNeoboardWidget.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.elementMatrixNeoboardWidget.serviceAccount | toYaml | nindent 4 }}
theme: theme:
{{ .Values.theme | toYaml | nindent 2 }} {{ .Values.theme | toYaml | nindent 2 }}

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
additionalAnnotations:
{{ .Values.annotations.elementMatrixNeochoiceWidget.additional | toYaml | nindent 2 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -39,8 +42,11 @@ ingress:
tls: tls:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.elementMatrixNeochoiceWidget.ingress | toYaml | nindent 4 }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.elementMatrixNeochoiceWidget.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -48,6 +54,14 @@ podSecurityContext:
replicaCount: {{ .Values.replicas.matrixNeoChoiceWidget }} replicaCount: {{ .Values.replicas.matrixNeoChoiceWidget }}
service:
annotations:
{{ .Values.annotations.elementMatrixNeochoiceWidget.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.elementMatrixNeochoiceWidget.serviceAccount | toYaml | nindent 4 }}
theme: theme:
{{ .Values.theme | toYaml | nindent 2 }} {{ .Values.theme | toYaml | nindent 2 }}

View File

@@ -26,7 +26,8 @@ image:
fullnameOverride: "matrix-neodatefix-bot-bootstrap" fullnameOverride: "matrix-neodatefix-bot-bootstrap"
podAnnotations: {} podAnnotations:
{{ .Values.annotations.elementMatrixNeodatefixBotBootstrap.pod | toYaml | nindent 2 }}
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
@@ -43,4 +44,7 @@ securityContext:
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.synapseCreateUser | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.synapseCreateUser | toYaml | nindent 4 }}
podAnnotations:
{{ .Values.annotations.elementMatrixNeodatefixBotBootstrap.serviceAccount | toYaml | nindent 2 }}
... ...

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
additionalAnnotations:
{{ .Values.annotations.elementMatrixNeodatefixBot.additional | toYaml | nindent 2 }}
global: global:
domain: {{ .Values.global.domain | quote }} domain: {{ .Values.global.domain | quote }}
hosts: hosts:
@@ -76,6 +79,8 @@ ingress:
tls: tls:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.elementMatrixNeodatefixBot.ingress | toYaml | nindent 4 }}
liveness sample: liveness sample:
enabled: true enabled: true
@@ -83,8 +88,11 @@ liveness sample:
persistence: persistence:
size: {{ .Values.persistence.storages.matrixNeoDateFixBot.size | quote }} size: {{ .Values.persistence.storages.matrixNeoDateFixBot.size | quote }}
storageClass: {{ coalesce .Values.persistence.storages.matrixNeoDateFixBot.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.matrixNeoDateFixBot.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
annotations:
{{ .Values.annotations.elementMatrixNeodatefixBot.persistence | toYaml | nindent 4 }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.elementMatrixNeodatefixBot.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -98,4 +106,12 @@ replicaCount: {{ .Values.replicas.matrixNeoDateFixBot }}
resources: resources:
{{ .Values.resources.matrixNeoDateFixBot | toYaml | nindent 2 }} {{ .Values.resources.matrixNeoDateFixBot | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.elementMatrixNeodatefixBot.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.elementMatrixNeodatefixBot.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
additionalAnnotations:
{{ .Values.annotations.elementMatrixNeodatefixWidget.additional | toYaml | nindent 2 }}
configuration: configuration:
bot: bot:
username: "meetings-bot" username: "meetings-bot"
@@ -44,8 +47,11 @@ ingress:
tls: tls:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.elementMatrixNeodatefixWidget.ingress | toYaml | nindent 4 }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.elementMatrixNeodatefixWidget.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -59,6 +65,14 @@ resources:
theme: theme:
{{ .Values.theme | toYaml | nindent 2 }} {{ .Values.theme | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.elementMatrixNeodatefixWidget.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.elementMatrixNeodatefixWidget.serviceAccount | toYaml | nindent 4 }}
nginx: nginx:
ipv4Only: {{ if eq .Values.cluster.networking.ipFamilies "IPv4" }}true{{ else }}false{{ end }} ipv4Only: {{ if eq .Values.cluster.networking.ipFamilies "IPv4" }}true{{ else }}false{{ end }}

View File

@@ -26,7 +26,8 @@ image:
fullnameOverride: "opendesk-matrix-user-verification-service-bootstrap" fullnameOverride: "opendesk-matrix-user-verification-service-bootstrap"
podAnnotations: {} podAnnotations:
{{ .Values.annotations.elementMatrixUserVerificationServiceBootstrap.pod | toYaml | nindent 2 }}
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
@@ -42,4 +43,10 @@ securityContext:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.synapseCreateUser | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.synapseCreateUser | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.elementMatrixUserVerificationServiceBootstrap.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
additionalAnnotations:
{{ .Values.annotations.elementMatrixUserVerificationService.additional | toYaml | nindent 2 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -42,7 +45,8 @@ image:
repository: {{ .Values.images.matrixUserVerificationService.repository | quote }} repository: {{ .Values.images.matrixUserVerificationService.repository | quote }}
tag: {{ .Values.images.matrixUserVerificationService.tag | quote }} tag: {{ .Values.images.matrixUserVerificationService.tag | quote }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.elementMatrixUserVerificationService.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -53,4 +57,12 @@ replicaCount: {{ .Values.replicas.matrixUserVerificationService }}
resources: resources:
{{ .Values.resources.matrixUserVerificationService | toYaml | nindent 2 }} {{ .Values.resources.matrixUserVerificationService | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.elementMatrixUserVerificationService.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.elementMatrixUserVerificationService.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG Ze
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
commonAnnotations:
{{ .Values.annotations.elementSynapseWeb.common | toYaml | nindent 2 }}
clusterDomain: {{ .Values.cluster.networking.domain }} clusterDomain: {{ .Values.cluster.networking.domain }}
containerSecurityContext: containerSecurityContext:
@@ -44,6 +47,9 @@ ingress:
nginx.org/client-max-body-size: "{{ .Values.ingress.parameters.bodySize.element }}" nginx.org/client-max-body-size: "{{ .Values.ingress.parameters.bodySize.element }}"
nginx.org/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.element }}s" nginx.org/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.element }}s"
nginx.org/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.element }}s" nginx.org/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.element }}s"
{{- with .Values.annotations.elementSynapseWeb.ingress }}
{{ . | toYaml | nindent 4 }}
{{- end }}
host: "{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}" host: "{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}"
enabled: {{ .Values.ingress.enabled }} enabled: {{ .Values.ingress.enabled }}
ingressClassName: {{ .Values.ingress.ingressClassName | quote }} ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
@@ -51,7 +57,8 @@ ingress:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.elementSynapseWeb.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -62,4 +69,12 @@ replicaCount: {{ .Values.replicas.synapseWeb }}
resources: resources:
{{ .Values.resources.synapseWeb | toYaml | nindent 2 }} {{ .Values.resources.synapseWeb | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.elementSynapseWeb.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.elementSynapseWeb.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG Ze
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
commonAnnotations:
{{ .Values.annotations.elementSynapse.common | toYaml | nindent 2 }}
configuration: configuration:
additionalConfiguration: additionalConfiguration:
user_directory: user_directory:
@@ -217,6 +220,8 @@ federation:
tls: tls:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.elementSynapse.federationIngress | toYaml | nindent 6 }}
global: global:
domain: {{ .Values.global.domain | quote }} domain: {{ .Values.global.domain | quote }}
@@ -234,8 +239,11 @@ image:
persistence: persistence:
size: {{ .Values.persistence.storages.synapse.size | quote }} size: {{ .Values.persistence.storages.synapse.size | quote }}
storageClass: {{ coalesce .Values.persistence.storages.synapse.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.synapse.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
annotations:
{{ .Values.annotations.elementSynapse.persistence | toYaml | nindent 4 }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.elementSynapse.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -250,6 +258,14 @@ replicaCount: {{ .Values.replicas.synapse }}
resources: resources:
{{ .Values.resources.synapse | toYaml | nindent 2 }} {{ .Values.resources.synapse | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.elementSynapse.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.elementSynapse.serviceAccount | toYaml | nindent 4 }}
tls: tls:
secretName: {{ if .Values.global.matrixDomain }}"opendesk-certificates-synapse-tls"{{ else }}"opendesk-certificates-tls"{{ end }} secretName: {{ if .Values.global.matrixDomain }}"opendesk-certificates-synapse-tls"{{ else }}"opendesk-certificates-tls"{{ end }}
... ...

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG Ze
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
commonAnnotations:
{{ .Values.annotations.elementWellKnown.common | toYaml | nindent 2 }}
configuration: configuration:
e2ee: e2ee:
forceDisable: false forceDisable: false
@@ -44,8 +47,11 @@ ingress:
tls: tls:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.elementWellKnown.ingress | toYaml | nindent 4 }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.elementWellKnown.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -56,4 +62,11 @@ replicaCount: {{ .Values.replicas.wellKnown }}
resources: resources:
{{ .Values.resources.wellKnown | toYaml | nindent 2 }} {{ .Values.resources.wellKnown | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.elementWellKnown.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.elementWellKnown.serviceAccount | toYaml | nindent 4 }}
... ...

View File

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

View File

@@ -12,7 +12,10 @@ global:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "opendesk-nextcloud-management" intents.otterize.com/service-name: "opendesk-nextcloud-php"
{{- with .Values.annotations.nextcloudNextcloudMgmt.additional }}
{{ . | toYaml | nindent 2}}
{{- end }}
cleanup: cleanup:
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }} deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
@@ -184,8 +187,6 @@ containerSecurityContext:
runAsNonRoot: true runAsNonRoot: true
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.nextcloudManagement | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.nextcloudManagement | toYaml | nindent 4 }}
podSecurityContext:
fsGroup: 101
debug: debug:
loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"2"{{ end }} loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"2"{{ end }}
@@ -214,10 +215,20 @@ image:
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
tag: {{ .Values.images.nextcloud.tag | quote }} tag: {{ .Values.images.nextcloud.tag | quote }}
theme: podAnnotations:
{{ .Values.theme | toYaml | nindent 2 }} {{ .Values.annotations.nextcloudNextcloudMgmt.pod | toYaml | nindent 2 }}
podSecurityContext:
fsGroup: 101
resources: resources:
{{ .Values.resources.nextcloud | toYaml | nindent 4 }} {{ .Values.resources.nextcloud | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.nextcloudNextcloudMgmt.serviceAccount | toYaml | nindent 4 }}
theme:
{{ .Values.theme | toYaml | nindent 2 }}
... ...

View File

@@ -9,6 +9,13 @@ global:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
exporter: exporter:
additionalAnnotations:
intents.otterize.com/service-name: "opendesk-nextcloud-exporter"
{{- with .Values.annotations.nextcloudExporter.additional }}
{{ . | toYaml | nindent 4 }}
{{- end }}
enabled: true enabled: true
configuration: configuration:
server: "http://opendesk-nextcloud-aio" server: "http://opendesk-nextcloud-aio"
@@ -34,7 +41,8 @@ exporter:
repository: "{{ .Values.images.nextcloudExporter.repository }}" repository: "{{ .Values.images.nextcloudExporter.repository }}"
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
tag: {{ .Values.images.nextcloudExporter.tag | quote }} tag: {{ .Values.images.nextcloudExporter.tag | quote }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.nextcloudExporter.pod | toYaml | nindent 4 }}
prometheus: prometheus:
serviceMonitor: serviceMonitor:
enabled: {{ .Values.monitoring.prometheus.serviceMonitors.enabled }} enabled: {{ .Values.monitoring.prometheus.serviceMonitors.enabled }}
@@ -48,9 +56,17 @@ exporter:
resources: resources:
{{ .Values.resources.nextcloudExporter | toYaml | nindent 4 }} {{ .Values.resources.nextcloudExporter | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.nextcloudExporter.serviceAccount | toYaml | nindent 6 }}
aio: aio:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "opendesk-nextcloud-aio" intents.otterize.com/service-name: "opendesk-nextcloud-aio"
{{- with .Values.annotations.nextcloudAio.additional }}
{{ . | toYaml | nindent 4 }}
{{- end }}
configuration: configuration:
cache: cache:
auth: auth:
@@ -139,11 +155,15 @@ aio:
nginx.org/client-max-body-size: "{{ .Values.ingress.parameters.bodySize.nextcloud }}" nginx.org/client-max-body-size: "{{ .Values.ingress.parameters.bodySize.nextcloud }}"
nginx.org/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.nextcloud }}s" nginx.org/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.nextcloud }}s"
nginx.org/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.nextcloud }}s" nginx.org/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.nextcloud }}s"
{{- with .Values.annotations.nextcloudAio.ingress }}
{{ . | toYaml | nindent 6 }}
{{- end }}
ingressClassName: {{ .Values.ingress.ingressClassName | quote }} ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
host: "{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}" host: "{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}"
tls: tls:
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.nextcloudAio.pod | toYaml | nindent 4 }}
podSecurityContext: podSecurityContext:
fsGroup: 101 fsGroup: 101
prometheus: prometheus:
@@ -159,4 +179,12 @@ aio:
resources: resources:
{{ .Values.resources.nextcloud | toYaml | nindent 4 }} {{ .Values.resources.nextcloud | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.nextcloudAio.service | toYaml | nindent 6 }}
serviceAccount:
annotations:
{{ .Values.annotations.nextcloudAio.serviceAccount | toYaml | nindent 6 }}
... ...

View File

@@ -33,6 +33,9 @@ ingressCollaborationWS:
nginx.ingress.kubernetes.io/proxy-read-timeout: "86400" nginx.ingress.kubernetes.io/proxy-read-timeout: "86400"
nginx.ingress.kubernetes.io/proxy-send-timeout: "86400" nginx.ingress.kubernetes.io/proxy-send-timeout: "86400"
nginx.ingress.kubernetes.io/upstream-hash-by: $arg_room nginx.ingress.kubernetes.io/upstream-hash-by: $arg_room
{{- with .Values.annotations.notes.ingressCollaborationWS }}
{{ . | toYaml | nindent 4 }}
{{- end }}
ingressAdmin: ingressAdmin:
enabled: {{ .Values.ingress.enabled }} enabled: {{ .Values.ingress.enabled }}
@@ -41,6 +44,8 @@ ingressAdmin:
tls: tls:
enabled: "{{ .Values.ingress.tls.enabled }}" enabled: "{{ .Values.ingress.tls.enabled }}"
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.notes.ingressAdmin | toYaml | nindent 4 }}
ingressMedia: ingressMedia:
enabled: {{ .Values.ingress.enabled }} enabled: {{ .Values.ingress.enabled }}
@@ -54,6 +59,9 @@ ingressMedia:
nginx.ingress.kubernetes.io/use-regex: "true" nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /{{ .Values.objectstores.notes.bucket }}/$1 nginx.ingress.kubernetes.io/rewrite-target: /{{ .Values.objectstores.notes.bucket }}/$1
nginx.ingress.kubernetes.io/session-cookie-path: /media nginx.ingress.kubernetes.io/session-cookie-path: /media
{{- with .Values.annotations.notes.ingressMedia }}
{{ . | toYaml | nindent 4 }}
{{- end }}
tls: tls:
enabled: "{{ .Values.ingress.tls.enabled }}" enabled: "{{ .Values.ingress.tls.enabled }}"
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
@@ -66,11 +74,14 @@ ingressCollaborationApi:
tls: tls:
enabled: "{{ .Values.ingress.tls.enabled }}" enabled: "{{ .Values.ingress.tls.enabled }}"
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.notes.ingressCollaborationAPI | toYaml | nindent 4 }}
serviceMedia: serviceMedia:
host: {{ .Values.objectstores.notes.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }} host: {{ .Values.objectstores.notes.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
port: {{ .Values.objectstores.notes.port | default 443 }} port: {{ .Values.objectstores.notes.port | default 443 }}
annotations:
{{ .Values.annotations.notes.serviceMedia | toYaml | nindent 4 }}
frontend: frontend:
image: image:
@@ -103,6 +114,13 @@ frontend:
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.notesFrontend | toYaml | nindent 6 }} {{ .Values.seLinuxOptions.notesFrontend | toYaml | nindent 6 }}
podAnnotations:
{{ .Values.annotations.notesFrontend.pod | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.notesFrontend.service | toYaml | nindent 6 }}
yProvider: yProvider:
image: image:
repository: {{ printf "%s/%s" (coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.notesYProvider.registry) (.Values.images.notesYProvider.repository) | quote }} repository: {{ printf "%s/%s" (coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.notesYProvider.registry) (.Values.images.notesYProvider.repository) | quote }}
@@ -131,6 +149,13 @@ yProvider:
COLLABORATION_SERVER_SECRET: {{ .Values.secrets.notes.collaborationSecret | quote }} COLLABORATION_SERVER_SECRET: {{ .Values.secrets.notes.collaborationSecret | quote }}
Y_PROVIDER_API_KEY: {{ .Values.secrets.notes.collaborationSecret | quote }} Y_PROVIDER_API_KEY: {{ .Values.secrets.notes.collaborationSecret | quote }}
podAnnotations:
{{ .Values.annotations.notesYProvider.pod | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.notesYProvider.service | toYaml | nindent 6 }}
oidc: oidc:
clientId: "opendesk-notes" clientId: "opendesk-notes"
clientSecret: {{ .Values.secrets.keycloak.clientSecret.notes | quote }} clientSecret: {{ .Values.secrets.keycloak.clientSecret.notes | quote }}
@@ -215,6 +240,9 @@ backend:
python manage.py migrate --no-input python manage.py migrate --no-input
restartPolicy: Never restartPolicy: Never
migrateJobAnnotations:
{{ .Values.annotations.notesBackend.migrateJob | toYaml | nindent 4 }}
createsuperuser: createsuperuser:
command: command:
- "/bin/sh" - "/bin/sh"
@@ -223,6 +251,9 @@ backend:
python manage.py createsuperuser --email default.admin@{{ .Values.global.domain }} --password {{ .Values.secrets.notes.superuser }} python manage.py createsuperuser --email default.admin@{{ .Values.global.domain }} --password {{ .Values.secrets.notes.superuser }}
restartPolicy: Never restartPolicy: Never
podAnnotations:
{{ .Values.annotations.notesBackend.pod | toYaml | nindent 4 }}
resources: resources:
{{ .Values.resources.notesBackend | toYaml | nindent 4 }} {{ .Values.resources.notesBackend | toYaml | nindent 4 }}
securityContext: securityContext:
@@ -239,4 +270,9 @@ backend:
runAsNonRoot: true runAsNonRoot: true
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.notesBackend | toYaml | nindent 6 }} {{ .Values.seLinuxOptions.notesBackend | toYaml | nindent 6 }}
service:
annotations:
{{ .Values.annotations.notesBackend.service | toYaml | nindent 6 }}
... ...

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG Ze
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
additionalAnnotations:
{{ .Values.annotations.nubusIntercomService.additional | toYaml | nindent 2 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -99,8 +102,11 @@ ingress:
tls: tls:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.nubusIntercomService.ingress | toYaml | nindent 4 }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.nubusIntercomService.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -150,4 +156,11 @@ replicaCount: {{ .Values.replicas.intercomService }}
resources: resources:
{{ .Values.resources.intercomService | toYaml | nindent 2 }} {{ .Values.resources.intercomService | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.nubusIntercomService.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusIntercomService.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -7,6 +7,9 @@ global:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
additionalAnnotations:
{{ .Values.annotations.nubusNginxS3Gateway.additional | toYaml | nindent 2 }}
image: image:
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nginxS3Gateway.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nginxS3Gateway.registry | quote }}
repository: {{ .Values.images.nginxS3Gateway.repository | quote }} repository: {{ .Values.images.nginxS3Gateway.repository | quote }}
@@ -20,6 +23,10 @@ ingress:
annotations: annotations:
nginx.ingress.kubernetes.io/rewrite-target: "/portal-assets/icons/$2/$3" nginx.ingress.kubernetes.io/rewrite-target: "/portal-assets/icons/$2/$3"
nginx.ingress.kubernetes.io/use-regex: "true" nginx.ingress.kubernetes.io/use-regex: "true"
{{- with .Values.annotations.nubusNginxS3Gateway.ingress }}
{{. | toYaml | nindent 4 }}
{{- end }}
path: "/univention/(portal|selfservice)/icons/(logos|entries)/(.*)$" path: "/univention/(portal|selfservice)/icons/(logos|entries)/(.*)$"
tls: tls:
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
@@ -36,8 +43,20 @@ configuration:
secretKey: secretKey:
value: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }} value: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
podAnnotations:
{{ .Values.annotations.nubusNginxS3Gateway.pod | toYaml | nindent 2 }}
resources: resources:
{{ .Values.resources.nginxS3Gateway | toYaml | nindent 2 }} {{ .Values.resources.nginxS3Gateway | toYaml | nindent 2 }}
replicaCount: {{ .Values.replicas.nginxS3Gateway }} replicaCount: {{ .Values.replicas.nginxS3Gateway }}
service:
annotations:
{{ .Values.annotations.nubusNginxS3Gateway.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusNginxS3Gateway.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -3,6 +3,9 @@ SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlic
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
additionalAnnotations:
{{ .Values.annotations.nubus.additional | toYaml | nindent 2 }}
global: global:
certManagerIssuer: {{ .Values.certificate.issuerRef.name | quote }} certManagerIssuer: {{ .Values.certificate.issuerRef.name | quote }}
domain: {{ .Values.global.domain | quote }} domain: {{ .Values.global.domain | quote }}
@@ -119,6 +122,22 @@ global:
groups: __DELETE_KEY__ groups: __DELETE_KEY__
ingress: ingress:
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "128k"
nginx.ingress.kubernetes.io/proxy-buffer-size: "64k"
nginx.ingress.kubernetes.io/proxy-buffers-number: "4"
nginx.ingress.kubernetes.io/proxy-busy-buffers-size: "128k"
nginx.ingress.kubernetes.io/proxy-http-version: "1.1"
nginx.ingress.kubernetes.io/proxy-set-headers: |
Host $http_host;
X-Forwarded-For $proxy_add_x_forwarded_for;
X-Forwarded-Host $http_x_forwarded_host;
X-Forwarded-Port $http_x_forwarded_port;
X-Forwarded-Proto $http_x_forwarded_proto;
nginx.ingress.kubernetes.io/use-regex: "true"
{{- with .Values.annotations.nubus.ingress }}
{{ . | toYaml | nindent 4 }}
{{- end }}
# temporary fix # temporary fix
{{- if not .Values.apps.minio.enabled }} {{- if not .Values.apps.minio.enabled }}
enabled: false enabled: false
@@ -160,6 +179,8 @@ keycloak:
runAsNonRoot: true runAsNonRoot: true
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.umsKeycloak | toYaml | nindent 6 }} {{ .Values.seLinuxOptions.umsKeycloak | toYaml | nindent 6 }}
commonAnnotations:
{{ .Values.annotations.nubusKeycloak.common | toYaml | nindent 4 }}
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloak.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloak.registry | quote }}
repository: {{ .Values.images.nubusKeycloak.repository }} repository: {{ .Values.images.nubusKeycloak.repository }}
@@ -178,6 +199,9 @@ keycloak:
adminPassword: "admin_password" adminPassword: "admin_password"
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-keycloak" intents.otterize.com/service-name: "ums-keycloak"
{{- with .Values.annotations.nubusKeycloak.pod }}
{{ . | toYaml | nindent 4 }}
{{- end }}
postgresql: postgresql:
connection: connection:
host: {{ .Values.databases.keycloak.host | quote }} host: {{ .Values.databases.keycloak.host | quote }}
@@ -192,6 +216,12 @@ keycloak:
replicaCount: {{ .Values.replicas.keycloak }} replicaCount: {{ .Values.replicas.keycloak }}
resources: resources:
{{ .Values.resources.umsKeycloak | toYaml | nindent 4 }} {{ .Values.resources.umsKeycloak | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.nubusKeycloak.service | toYaml | nindent 6 }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusKeycloak.serviceAccount | toYaml | nindent 6 }}
{{- if .Values.certificate.selfSigned }} {{- if .Values.certificate.selfSigned }}
extraVolumes: extraVolumes:
- name: "trusted-cert-crt-secret-volume" - name: "trusted-cert-crt-secret-volume"
@@ -233,6 +263,9 @@ nubusGuardian:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-guardian-authorization-api" intents.otterize.com/service-name: "ums-guardian-authorization-api"
{{- with .Values.annotations.nubusGuardian.authorizationApiPod }}
{{ . | toYaml | nindent 6 }}
{{- end }}
podSecurityContext: podSecurityContext:
fsGroup: 1000 fsGroup: 1000
fsGroupChangePolicy: "Always" fsGroupChangePolicy: "Always"
@@ -253,12 +286,67 @@ nubusGuardian:
type: RuntimeDefault type: RuntimeDefault
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianAuthorizationApi | toYaml | nindent 8 }} {{ .Values.seLinuxOptions.umsGuardianAuthorizationApi | toYaml | nindent 8 }}
global:
podAnnotations:
{{ .Values.annotations.nubusGuardian.globalPod | toYaml | nindent 6 }}
ingress: ingress:
annotations:
{{ .Values.annotations.nubusGuardian.ingressIngress | toYaml | nindent 6 }}
certManager: certManager:
enabled: false enabled: false
tls: tls:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
items:
- name: management-ui
host: ""
# -- Define the Ingress paths.
paths:
- path: /univention/guardian/management-ui
pathType: Prefix
backend:
service:
name: guardian-management-ui
port:
number: 80
ingressClassName: ""
annotations:
{{ .Values.annotations.nubusGuardian.ingressManagementUi | toYaml | nindent 10 }}
tls:
# enabled: true
secretName: ""
- name: management-api
host: ""
paths:
- path: /guardian/management
pathType: Prefix
backend:
service:
name: guardian-management-api
port:
number: 80
ingressClassName: ""
annotations:
{{ .Values.annotations.nubusGuardian.ingressManagementApi | toYaml | nindent 10 }}
tls:
# enabled: true
secretName: ""
- name: authorization-api
host: ""
paths:
- path: /guardian/authorization
pathType: Prefix
backend:
service:
name: guardian-authorization-api
port:
number: 80
ingressClassName: ""
annotations:
{{ .Values.annotations.nubusGuardian.ingressAuthorizationApi | toYaml | nindent 10 }}
tls:
# enabled: true
secretName: ""
managementApi: managementApi:
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianManagementApi.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianManagementApi.registry | quote }}
@@ -269,6 +357,9 @@ nubusGuardian:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-guardian-management-api" intents.otterize.com/service-name: "ums-guardian-management-api"
{{- with .Values.annotations.nubusGuardian.managementApiPod }}
{{ . | toYaml | nindent 6 }}
{{- end }}
podSecurityContext: podSecurityContext:
fsGroup: 1000 fsGroup: 1000
fsGroupChangePolicy: "Always" fsGroupChangePolicy: "Always"
@@ -299,6 +390,9 @@ nubusGuardian:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-guardian-management-ui" intents.otterize.com/service-name: "ums-guardian-management-ui"
{{- with .Values.annotations.nubusGuardian.managementUiPod }}
{{ . | toYaml | nindent 6 }}
{{- end }}
replicaCount: {{ .Values.replicas.umsGuardianManagementUi }} replicaCount: {{ .Values.replicas.umsGuardianManagementUi }}
resources: resources:
{{ .Values.resources.umsGuardianManagementUi | toYaml | nindent 6 }} {{ .Values.resources.umsGuardianManagementUi | toYaml | nindent 6 }}
@@ -378,11 +472,17 @@ nubusGuardian:
repository: {{ .Values.images.nubusGuardianProvisioning.repository }} repository: {{ .Values.images.nubusGuardianProvisioning.repository }}
tag: {{ .Values.images.nubusGuardianProvisioning.tag }} tag: {{ .Values.images.nubusGuardianProvisioning.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusGuardian.serviceAccount | toYaml | nindent 6 }}
nubusNotificationsApi: nubusNotificationsApi:
enabled: false enabled: false
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-notifications-api" intents.otterize.com/service-name: "ums-notifications-api"
{{- with .Values.annotations.nubusNotificationsApi.additional }}
{{ . | toYaml | nindent 4 }}
{{- end }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -405,11 +505,22 @@ nubusNotificationsApi:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
ingress: ingress:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: "/$2$3"
nginx.ingress.kubernetes.io/use-regex: "true"
{{- with .Values.annotations.nubusNotificationsApi.ingress }}
{{. | toYaml | nindent 6 }}
{{- end }}
certManager: certManager:
enabled: false enabled: false
tls: tls:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
persistence:
annotations:
{{ .Values.annotations.nubusNotificationsApi.persistence | toYaml | nindent 6 }}
podAnnotations:
{{ .Values.annotations.nubusNotificationsApi.pod | toYaml | nindent 4 }}
postgresql: postgresql:
connection: connection:
host: {{ .Values.databases.umsNotificationsApi.host | quote }} host: {{ .Values.databases.umsNotificationsApi.host | quote }}
@@ -419,7 +530,12 @@ nubusNotificationsApi:
database: {{ .Values.databases.umsNotificationsApi.name | quote }} database: {{ .Values.databases.umsNotificationsApi.name | quote }}
existingSecret: existingSecret:
name: "ums-notifications-api-postgresql-opendesk-credentials" name: "ums-notifications-api-postgresql-opendesk-credentials"
service:
annotations:
{{ .Values.annotations.nubusNotificationsApi.service | toYaml | nindent 6 }}
serviceAccount: serviceAccount:
annotations:
{{ .Values.annotations.nubusNotificationsApi.serviceAccount | toYaml | nindent 6 }}
create: true create: true
replicaCount: {{ .Values.replicas.umsNotificationsApi }} replicaCount: {{ .Values.replicas.umsNotificationsApi }}
resources: resources:
@@ -428,6 +544,9 @@ nubusNotificationsApi:
nubusPortalFrontend: nubusPortalFrontend:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-portal-frontend" intents.otterize.com/service-name: "ums-portal-frontend"
{{- with .Values.annotations.nubusPortalFrontend.additional }}
{{ . | toYaml | nindent 4 }}
{{- end }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -450,11 +569,60 @@ nubusPortalFrontend:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
ingress: ingress:
annotations:
{{ .Values.annotations.nubusPortalFrontend.ingressIngress | toYaml | nindent 6 }}
certManager: certManager:
enabled: false enabled: false
items:
- name: rewrites
host: ""
paths:
- path: /univention/(portal|selfservice)/$
pathType: ImplementationSpecific
- path: /univention/(portal|selfservice)/index.html$
pathType: ImplementationSpecific
- path: /univention/(portal|selfservice)/(css|fonts|i18n|media|js|oidc|custom)(/.*)$
pathType: ImplementationSpecific
- path: /univention/(portal)/(icons)(/.*)$
pathType: ImplementationSpecific
ingressClassName: ""
annotations:
nginx.ingress.kubernetes.io/rewrite-target: "/$2$3"
nginx.ingress.kubernetes.io/use-regex: "true"
{{- with .Values.annotations.nubusPortalFrontend.ingressRewrites }}
{{ . | toYaml | nindent 10 }}
{{- end }}
tls:
secretName: ""
- name: redirects
host: ""
paths:
- pathType: ImplementationSpecific
path: /$
- pathType: ImplementationSpecific
path: /univention$
- pathType: ImplementationSpecific
path: /univention/$
- pathType: ImplementationSpecific
path: /univention/portal$
- pathType: ImplementationSpecific
path: /univention/selfservice$
ingressClassName: ""
annotations:
nginx.ingress.kubernetes.io/permanent-redirect: "/univention/portal/"
{{- with .Values.annotations.nubusPortalFrontend.ingressRedirects }}
{{ . | toYaml | nindent 10 }}
{{- end }}
tls:
secretName: ""
tls: tls:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName }} secretName: {{ .Values.ingress.tls.secretName }}
persistence:
annotations:
{{ .Values.annotations.nubusPortalFrontend.persistence | toYaml | nindent 6 }}
podAnnotations:
{{ .Values.annotations.nubusPortalFrontend.pod | toYaml | nindent 4 }}
portalFrontend: portalFrontend:
branding: branding:
css: {{ .Values.theme.styles.portal.main | toJson }} css: {{ .Values.theme.styles.portal.main | toJson }}
@@ -463,7 +631,12 @@ nubusPortalFrontend:
# The actual `logo` is set in customizing image, the logo down here is for for waiting spinner. # The actual `logo` is set in customizing image, the logo down here is for for waiting spinner.
logo: {{ .Values.theme.imagery.portal.waitingSpinnerSvg | toJson }} logo: {{ .Values.theme.imagery.portal.waitingSpinnerSvg | toJson }}
backgroundImage: {{ .Values.theme.imagery.portal.backgroundSvg | toJson }} backgroundImage: {{ .Values.theme.imagery.portal.backgroundSvg | toJson }}
service:
annotations:
{{ .Values.annotations.nubusPortalFrontend.service | toYaml | nindent 6 }}
serviceAccount: serviceAccount:
annotations:
{{ .Values.annotations.nubusPortalFrontend.serviceAccount | toYaml | nindent 6 }}
create: true create: true
replicaCount: {{ .Values.replicas.umsPortalFrontend }} replicaCount: {{ .Values.replicas.umsPortalFrontend }}
resources: resources:
@@ -479,6 +652,8 @@ nubusKeycloakExtensions:
keyMapping: keyMapping:
adminPassword: "admin_password" adminPassword: "admin_password"
proxy: proxy:
additionalAnnotations:
{{ .Values.annotations.nubusKeycloakExtensions.proxyAdditional | toYaml | nindent 6 }}
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloakExtensionProxy.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloakExtensionProxy.registry | quote }}
repository: {{ .Values.images.nubusKeycloakExtensionProxy.repository }} repository: {{ .Values.images.nubusKeycloakExtensionProxy.repository }}
@@ -487,6 +662,12 @@ nubusKeycloakExtensions:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
ingress: ingress:
annotations:
nginx.org/proxy-buffer-size: "8k"
nginx.ingress.kubernetes.io/proxy-buffer-size: "8k"
{{- with .Values.annotations.nubusKeycloakExtensions.proxyIngress }}
{{ . | toYaml | nindent 8 }}
{{- end }}
paths: paths:
{{- if .Values.debug.enabled }} {{- if .Values.debug.enabled }}
- pathType: "Prefix" - pathType: "Prefix"
@@ -507,6 +688,9 @@ nubusKeycloakExtensions:
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-keycloak-extensions-proxy" intents.otterize.com/service-name: "ums-keycloak-extensions-proxy"
{{- with .Values.annotations.nubusKeycloakExtensions.proxyPod }}
{{ . | toYaml | nindent 6 }}
{{- end }}
replicaCount: {{ .Values.replicas.umsKeycloakExtensionsProxy }} replicaCount: {{ .Values.replicas.umsKeycloakExtensionsProxy }}
resources: resources:
{{ .Values.resources.umsKeycloakExtensionProxy | toYaml | nindent 6 }} {{ .Values.resources.umsKeycloakExtensionProxy | toYaml | nindent 6 }}
@@ -515,6 +699,12 @@ nubusKeycloakExtensions:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.umsKeycloakExtensionHandler | toYaml | nindent 8 }} {{ .Values.seLinuxOptions.umsKeycloakExtensionHandler | toYaml | nindent 8 }}
service:
annotations:
{{ .Values.annotations.nubusKeycloakExtensions.proxyService | toYaml | nindent 8 }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusKeycloakExtensions.proxyServiceAccount | toYaml | nindent 8 }}
postgresql: postgresql:
connection: connection:
host: {{ .Values.databases.keycloakExtension.host | quote }} host: {{ .Values.databases.keycloakExtension.host | quote }}
@@ -542,6 +732,8 @@ nubusKeycloakExtensions:
keyMapping: keyMapping:
password: "umcKeycloakExtensionsSmtpPassword" password: "umcKeycloakExtensionsSmtpPassword"
handler: handler:
additionalAnnotations:
{{ .Values.annotations.nubusKeycloakExtensions.handlerAdditional | toYaml | nindent 6 }}
appConfig: appConfig:
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 }}
@@ -556,6 +748,9 @@ nubusKeycloakExtensions:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-keycloak-extensions-handler" intents.otterize.com/service-name: "ums-keycloak-extensions-handler"
{{- with .Values.annotations.nubusKeycloakExtensions.handlerPod }}
{{ . | toYaml | nindent 6 }}
{{- end }}
replicaCount: {{ .Values.replicas.umsKeycloakExtensionsHandler }} replicaCount: {{ .Values.replicas.umsKeycloakExtensionsHandler }}
resources: resources:
{{ .Values.resources.umsKeycloakExtensionHandler | toYaml | nindent 6 }} {{ .Values.resources.umsKeycloakExtensionHandler | toYaml | nindent 6 }}
@@ -564,6 +759,12 @@ nubusKeycloakExtensions:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.umsKeycloakExtensionHandler | toYaml | nindent 8 }} {{ .Values.seLinuxOptions.umsKeycloakExtensionHandler | toYaml | nindent 8 }}
service:
annotations:
{{ .Values.annotations.nubusKeycloakExtensions.handlerService | toYaml | nindent 8 }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusKeycloakExtensions.handlerServiceAccount | toYaml | nindent 8 }}
nubusPortalListener: nubusPortalListener:
enabled: false enabled: false
@@ -594,6 +795,9 @@ nubusPortalConsumer:
storageClass: {{ coalesce .Values.persistence.storages.nubusPortalConsumer.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.nubusPortalConsumer.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-portal-consumer" intents.otterize.com/service-name: "ums-portal-consumer"
{{- with .Values.annotations.nubusPortalConsumer.pod }}
{{ . | toYaml | nindent 4 }}
{{- end }}
provisioningApi: provisioningApi:
auth: auth:
username: "portal-consumer" username: "portal-consumer"
@@ -603,7 +807,7 @@ nubusPortalConsumer:
{{ .Values.resources.umsPortalConsumer | toYaml | nindent 4 }} {{ .Values.resources.umsPortalConsumer | toYaml | nindent 4 }}
resourcesWaitForDependency: resourcesWaitForDependency:
{{ .Values.resources.umsPortalConsumerDependencies | toYaml | nindent 4 }} {{ .Values.resources.umsPortalConsumerDependencies | toYaml | nindent 4 }}
securityContext: containerSecurityContext:
seccompProfile: seccompProfile:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
@@ -650,6 +854,9 @@ nubusPortalConsumer:
nubusPortalServer: nubusPortalServer:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-portal-server" intents.otterize.com/service-name: "ums-portal-server"
{{- with .Values.annotations.nubusPortalServer.additional }}
{{ . | toYaml | nindent 4 }}
{{- end }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -672,6 +879,13 @@ nubusPortalServer:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
ingress: ingress:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: "/$2$3"
nginx.ingress.kubernetes.io/use-regex: "true"
{{- with .Values.annotations.nubusPortalServer.ingress }}
{{ . | toYaml | nindent 8 }}
{{- end }}
certManager: certManager:
enabled: false enabled: false
tls: tls:
@@ -679,10 +893,18 @@ nubusPortalServer:
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
objectStorage: objectStorage:
auth: auth:
accessKey: {{ .Values.objectstores.nubus.username | quote }} accessKeyId: {{ .Values.objectstores.nubus.username | quote }}
secretKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }} secretAccessKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
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:
annotations:
{{ .Values.annotations.nubusPortalServer.persistence | toYaml | nindent 6 }}
podAnnotations:
{{ .Values.annotations.nubusPortalServer.pod | toYaml | nindent 4 }}
portalServer:
objectStorageEndpoint: {{ printf "https://%s" (.Values.objectstores.nubus.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }}
objectStorageBucket: {{ .Values.objectstores.nubus.bucket | quote }}
objectStorageCredentialSecret: objectStorageCredentialSecret:
name: "ums-portal-server-minio-opendesk-credentials" name: "ums-portal-server-minio-opendesk-credentials"
accessKeyKey: "access-key-id" accessKeyKey: "access-key-id"
@@ -690,13 +912,19 @@ nubusPortalServer:
portalServer: portalServer:
centralNavigation: centralNavigation:
enabled: true enabled: true
authenticatorSecretName: "ums-opendesk-portal-server-central-navigation" existingSecret:
name: "ums-opendesk-portal-server-central-navigation"
featureToggles: featureToggles:
notifications_api: false notifications_api: false
replicaCount: {{ .Values.replicas.umsPortalServer }} replicaCount: {{ .Values.replicas.umsPortalServer }}
resources: resources:
{{ .Values.resources.umsPortalServer | toYaml | nindent 4 }} {{ .Values.resources.umsPortalServer | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.nubusPortalServer.service | toYaml | nindent 6 }}
serviceAccount: serviceAccount:
annotations:
{{ .Values.annotations.nubusPortalServer.serviceAccount | toYaml | nindent 6 }}
create: true create: true
{{- if .Values.certificate.selfSigned }} {{- if .Values.certificate.selfSigned }}
extraVolumes: extraVolumes:
@@ -730,6 +958,9 @@ nubusPortalServer:
nubusUdmRestApi: nubusUdmRestApi:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-udm-rest-api" intents.otterize.com/service-name: "ums-udm-rest-api"
{{- with .Values.annotations.nubusUdmRestApi.additional }}
{{ . | toYaml | nindent 4 }}
{{- end }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -748,6 +979,15 @@ nubusUdmRestApi:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
ingress: ingress:
enabled: {{ .Values.functional.externalServices.nubus.udmRestApi.enabled }} enabled: {{ .Values.functional.externalServices.nubus.udmRestApi.enabled }}
annotations:
nginx.ingress.kubernetes.io/proxy-buffer-size: "64k"
nginx.ingress.kubernetes.io/configuration-snippet-disabled: |
rewrite ^/univention(/udm/.*)$ $1 break;
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: "/$2$3"
{{- with .Values.annotations.nubusUdmRestApi.ingress }}
{{ . | toYaml | nindent 6 }}
{{- end }}
certManager: certManager:
enabled: false enabled: false
tls: tls:
@@ -755,12 +995,23 @@ nubusUdmRestApi:
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
initResources: initResources:
{{ .Values.resources.umsUdmRestApiInit | toYaml | nindent 4 }} {{ .Values.resources.umsUdmRestApiInit | toYaml | nindent 4 }}
persistence:
annotations:
{{ .Values.annotations.nubusUdmRestApi.persistence | toYaml | nindent 6 }}
podAnnotations:
{{ .Values.annotations.nubusUdmRestApi.pod | toYaml | nindent 4 }}
replicaCount: {{ .Values.replicas.umsUdmRestApi }} replicaCount: {{ .Values.replicas.umsUdmRestApi }}
resources: resources:
{{ .Values.resources.umsUdmRestApi | toYaml | nindent 4 }} {{ .Values.resources.umsUdmRestApi | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.nubusUdmRestApi.service | toYaml | nindent 6 }}
serviceAccount: serviceAccount:
annotations: annotations:
intended.usage: "compliance" intended.usage: "compliance"
{{- with .Values.annotations.nubusUdmRestApi.serviceAccount }}
{{ . | toYaml | nindent 6 }}
{{- end }}
udmRestApi: udmRestApi:
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusUdmRestApi.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusUdmRestApi.registry | quote }}
@@ -769,6 +1020,8 @@ nubusUdmRestApi:
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusLdapNotifier: nubusLdapNotifier:
additionalAnnotations:
{{ .Values.annotations.nubusLdapNotifier.additional | toYaml | nindent 4 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -792,11 +1045,22 @@ nubusLdapNotifier:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-ldap-notifier" intents.otterize.com/service-name: "ums-ldap-notifier"
{{- with .Values.annotations.nubusLdapNotifier.pod }}
{{ . | toYaml | nindent 4 }}
{{- end }}
replicaCount: {{ .Values.replicas.umsLdapNotifier }} replicaCount: {{ .Values.replicas.umsLdapNotifier }}
resources: resources:
{{ .Values.resources.umsLdapNotifier | toYaml | nindent 4 }} {{ .Values.resources.umsLdapNotifier | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.nubusLdapNotifier.service | toYaml | nindent 6 }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusLdapNotifier.serviceAccount | toYaml | nindent 6 }}
nubusLdapServer: nubusLdapServer:
additionalAnnotations:
{{ .Values.annotations.nubusLdapServer.additional | toYaml | nindent 4 }}
global: global:
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
imagePullSecrets: imagePullSecrets:
@@ -825,13 +1089,20 @@ nubusLdapServer:
persistence: persistence:
size: {{ .Values.persistence.storages.nubusLdapServerData.size | quote }} size: {{ .Values.persistence.storages.nubusLdapServerData.size | quote }}
storageClass: {{ coalesce .Values.persistence.storages.nubusLdapServerData.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.nubusLdapServerData.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
podAnnotations:
{{ .Values.annotations.nubusLdapServer.pod | toYaml | nindent 4 }}
replicaCountPrimary: {{ .Values.replicas.umsLdapServerPrimary }} replicaCountPrimary: {{ .Values.replicas.umsLdapServerPrimary }}
replicaCountSecondary: {{ .Values.replicas.umsLdapServerSecondary }} replicaCountSecondary: {{ .Values.replicas.umsLdapServerSecondary }}
replicaCountProxy: {{ .Values.replicas.umsLdapServerProxy }} replicaCountProxy: {{ .Values.replicas.umsLdapServerProxy }}
resources: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }} resources: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }}
resourcesPrimary: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }} resourcesPrimary: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }}
resourcesSecondary: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }} resourcesSecondary: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.nubusLdapServer.service | toYaml | nindent 6 }}
serviceAccount: serviceAccount:
annotations:
{{ .Values.annotations.nubusLdapServer.serviceAccount | toYaml | nindent 6 }}
create: true create: true
waitForDependency: waitForDependency:
image: image:
@@ -842,9 +1113,14 @@ nubusLdapServer:
nubusProvisioning: nubusProvisioning:
enabled: true enabled: true
additionalAnnotations:
{{ .Values.annotations.nubusProvisioning.additional | toYaml | nindent 4 }}
api: api:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-api" intents.otterize.com/service-name: "ums-provisioning-api"
{{- with .Values.annotations.nubusProvisioning.apiAdditional }}
{{ . | toYaml | nindent 6 }}
{{- end }}
auth: auth:
adminPassword: {{ .Values.secrets.nubus.provisioning.api.adminPassword | quote }} adminPassword: {{ .Values.secrets.nubus.provisioning.api.adminPassword | quote }}
prefillPassword: {{ .Values.secrets.nubus.provisioning.api.prefillPassword | quote}} prefillPassword: {{ .Values.secrets.nubus.provisioning.api.prefillPassword | quote}}
@@ -857,6 +1133,8 @@ nubusProvisioning:
nats: nats:
auth: auth:
password: {{ .Values.secrets.nubus.provisioning.api.natsPassword | quote}} password: {{ .Values.secrets.nubus.provisioning.api.natsPassword | quote}}
podAnnotations:
{{ .Values.annotations.nubusProvisioning.apiPod | toYaml | nindent 6 }}
resources: resources:
{{ .Values.resources.umsProvisioningApi | toYaml | nindent 6 }} {{ .Values.resources.umsProvisioningApi | toYaml | nindent 6 }}
containerSecurityContext: containerSecurityContext:
@@ -876,6 +1154,9 @@ nubusProvisioning:
dispatcher: dispatcher:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-dispatcher" intents.otterize.com/service-name: "ums-provisioning-dispatcher"
{{- with .Values.annotations.nubusProvisioning.dispatcherAdditional }}
{{ . | toYaml | nindent 6 }}
{{- end }}
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningDispatcher.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningDispatcher.registry | quote }}
repository: {{ .Values.images.nubusProvisioningDispatcher.repository }} repository: {{ .Values.images.nubusProvisioningDispatcher.repository }}
@@ -884,6 +1165,8 @@ nubusProvisioning:
nats: nats:
auth: auth:
password: {{ .Values.secrets.nubus.provisioning.dispatcherNatsPassword | quote}} password: {{ .Values.secrets.nubus.provisioning.dispatcherNatsPassword | quote}}
podAnnotations:
{{ .Values.annotations.nubusProvisioning.dispatcherPod | toYaml | nindent 6 }}
resources: resources:
{{ .Values.resources.umsProvisioningDispatcher | toYaml | nindent 6 }} {{ .Values.resources.umsProvisioningDispatcher | toYaml | nindent 6 }}
imagePullSecrets: imagePullSecrets:
@@ -894,6 +1177,9 @@ nubusProvisioning:
nats: nats:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-nats" intents.otterize.com/service-name: "ums-provisioning-nats"
{{- with .Values.annotations.nubusProvisioning.natsAdditional }}
{{ . | toYaml | nindent 6 }}
{{- end }}
auth: auth:
adminPassword: {{ .Values.secrets.nats.natsAdminPassword | quote }} adminPassword: {{ .Values.secrets.nats.natsAdminPassword | quote }}
config: config:
@@ -940,9 +1226,14 @@ nubusProvisioning:
{{ .Values.resources.umsProvisioningNats | toYaml | nindent 6 }} {{ .Values.resources.umsProvisioningNats | toYaml | nindent 6 }}
serviceAccount: serviceAccount:
create: true create: true
podAnnotations:
{{ .Values.annotations.nubusProvisioning.pod | toYaml | nindent 4 }}
prefill: prefill:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-prefill" intents.otterize.com/service-name: "ums-provisioning-prefill"
{{- with .Values.annotations.nubusProvisioning.prefillAdditional }}
{{ . | toYaml | nindent 6 }}
{{- end }}
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningPrefill.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningPrefill.registry | quote }}
repository: {{ .Values.images.nubusProvisioningPrefill.repository }} repository: {{ .Values.images.nubusProvisioningPrefill.repository }}
@@ -951,11 +1242,16 @@ nubusProvisioning:
nats: nats:
auth: auth:
password: {{ .Values.secrets.nubus.provisioning.prefillNatsPassword | quote}} password: {{ .Values.secrets.nubus.provisioning.prefillNatsPassword | quote}}
podAnnotations:
{{ .Values.annotations.nubusProvisioning.prefillPod | toYaml | nindent 6 }}
resources: resources:
{{ .Values.resources.umsProvisioningPrefill | toYaml | nindent 6 }} {{ .Values.resources.umsProvisioningPrefill | toYaml | nindent 6 }}
udmTransformer: udmTransformer:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-udm-transformer" intents.otterize.com/service-name: "ums-provisioning-udm-transformer"
{{- with .Values.annotations.nubusProvisioning.udmTransformerAdditional }}
{{ . | toYaml | nindent 6 }}
{{- end }}
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningUdmTransformer.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningUdmTransformer.registry | quote }}
repository: {{ .Values.images.nubusProvisioningUdmTransformer.repository }} repository: {{ .Values.images.nubusProvisioningUdmTransformer.repository }}
@@ -964,6 +1260,8 @@ nubusProvisioning:
nats: nats:
auth: auth:
password: {{ .Values.secrets.nubus.provisioning.udmTransformerNatsPassword | quote}} password: {{ .Values.secrets.nubus.provisioning.udmTransformerNatsPassword | quote}}
podAnnotations:
{{ .Values.annotations.nubusProvisioning.udmTransformerPod | toYaml | nindent 6 }}
resources: resources:
{{ .Values.resources.umsProvisioningUdmTransformer | toYaml | nindent 6 }} {{ .Values.resources.umsProvisioningUdmTransformer | toYaml | nindent 6 }}
replicaCount: replicaCount:
@@ -974,6 +1272,9 @@ nubusProvisioning:
registerConsumers: registerConsumers:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-register-consumers" intents.otterize.com/service-name: "ums-provisioning-register-consumers"
{{- with .Values.annotations.nubusProvisioning.registerConsumersAdditional }}
{{ . | toYaml | nindent 6 }}
{{- end }}
{{- if .Values.apps.oxAppSuite.enabled }} {{- if .Values.apps.oxAppSuite.enabled }}
createUsers: createUsers:
oxConsumer: oxConsumer:
@@ -989,10 +1290,18 @@ nubusProvisioning:
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-provisioning-register-consumers" intents.otterize.com/service-name: "ums-provisioning-register-consumers"
{{- with .Values.annotations.nubusProvisioning.registerConsumersPod }}
{{ . | toYaml | nindent 6 }}
{{- end }}
resources: resources:
registerConsumers: registerConsumers:
{{ .Values.resources.umsProvisioningRegisterConsumers | toYaml | nindent 6 }} {{ .Values.resources.umsProvisioningRegisterConsumers | toYaml | nindent 6 }}
service:
annotations:
{{ .Values.annotations.nubusProvisioning.service | toYaml | nindent 6 }}
serviceAccount: serviceAccount:
annotations:
{{ .Values.annotations.nubusProvisioning.serviceAccount | toYaml | nindent 6 }}
create: true create: true
nubusUdmListener: nubusUdmListener:
@@ -1018,12 +1327,17 @@ nubusUdmListener:
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
podAnnotations:
{{ .Values.annotations.nubusUdmListener.pod | toYaml | nindent 4 }}
replicaCount: {{ .Values.replicas.umsUdmListener }} replicaCount: {{ .Values.replicas.umsUdmListener }}
resources: resources:
{{ .Values.resources.umsUdmListener | toYaml | nindent 4 }} {{ .Values.resources.umsUdmListener | toYaml | nindent 4 }}
nats: nats:
auth: auth:
password: {{ .Values.secrets.nubus.provisioning.udmListenerNatsPassword | quote}} password: {{ .Values.secrets.nubus.provisioning.udmListenerNatsPassword | quote}}
serviceAccount:
annotations:
{{ .Values.annotations.nubusUdmListener.serviceAccount | toYaml | nindent 6 }}
nubusSelfServiceListener: nubusSelfServiceListener:
enabled: false enabled: false
@@ -1057,6 +1371,9 @@ nubusSelfServiceConsumer:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-selfservice-listener" intents.otterize.com/service-name: "ums-selfservice-listener"
{{- with .Values.annotations.nubusSelfserviceConsumer.pod }}
{{ . | toYaml | nindent 4 }}
{{- end }}
provisioningApi: provisioningApi:
auth: auth:
password: {{ .Values.secrets.nubus.selfserviceConsumer.provisioningApiPassword | quote}} password: {{ .Values.secrets.nubus.selfserviceConsumer.provisioningApiPassword | quote}}
@@ -1065,6 +1382,9 @@ nubusSelfServiceConsumer:
resourcesWaitForDependency: resourcesWaitForDependency:
{{ .Values.resources.umsSelfserviceConsumer | toYaml | nindent 4 }} {{ .Values.resources.umsSelfserviceConsumer | toYaml | nindent 4 }}
replicaCount: {{ .Values.replicas.umsSelfserviceConsumer }} replicaCount: {{ .Values.replicas.umsSelfserviceConsumer }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusSelfserviceConsumer.serviceAccount | toYaml | nindent 6 }}
waitForDependency: waitForDependency:
image: image:
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 }}
@@ -1078,6 +1398,9 @@ nubusStackDataUms:
argocd.argoproj.io/hook: "Sync" argocd.argoproj.io/hook: "Sync"
argocd.argoproj.io/hook-delete-policy: "HookSucceeded" argocd.argoproj.io/hook-delete-policy: "HookSucceeded"
intents.otterize.com/service-name: "ums-stack-data-ums" intents.otterize.com/service-name: "ums-stack-data-ums"
{{- with .Values.annotations.nubusStackDataUms.additional }}
{{ . | toYaml | nindent 4 }}
{{- end }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -1120,6 +1443,8 @@ nubusStackDataUms:
username: {{ .Values.databases.umsSelfservice.username | quote }} username: {{ .Values.databases.umsSelfservice.username | quote }}
connection: connection:
host: {{ .Values.databases.umsSelfservice.host | quote }} host: {{ .Values.databases.umsSelfservice.host | quote }}
podAnnotations:
{{ .Values.annotations.nubusStackDataUms.pod | toYaml | nindent 4 }}
pullSecrets: pullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
resources: resources:
@@ -1136,6 +1461,9 @@ nubusStackDataUms:
smtpUser: {{ printf "%s@%s" "opendesk-system" ( .Values.global.mailDomain | default .Values.global.domain ) }} smtpUser: {{ printf "%s@%s" "opendesk-system" ( .Values.global.mailDomain | default .Values.global.domain ) }}
smtpStartTls: false smtpStartTls: false
ldapBase: {{ .Values.ldap.baseDn }} ldapBase: {{ .Values.ldap.baseDn }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusStackDataUms.serviceAccount | toYaml | nindent 6 }}
templateContext: templateContext:
initialPasswordAdministrator: {{ .Values.secrets.nubus.systemAccounts.administratorPassword | quote }} initialPasswordAdministrator: {{ .Values.secrets.nubus.systemAccounts.administratorPassword | quote }}
apps: {{ .Values.apps | toYaml | nindent 6 }} apps: {{ .Values.apps | toYaml | nindent 6 }}
@@ -1208,6 +1536,9 @@ nubusStackDataUms:
nubusUmcServer: nubusUmcServer:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-umc-server" intents.otterize.com/service-name: "ums-umc-server"
{{- with .Values.annotations.nubusUmcServer.additional }}
{{ . | toYaml | nindent 4 }}
{{- end }}
containerSecurityContext: containerSecurityContext:
enabled: true enabled: true
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
@@ -1272,6 +1603,14 @@ nubusUmcServer:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
ingress: ingress:
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: "/$2$3"
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header X-UMC-HTTPS 'on';
{{- with .Values.annotations.nubusUmcServer.ingress }}
{{ . | toYaml | nindent 6 }}
{{- end }}
certManager: certManager:
enabled: false enabled: false
tls: tls:
@@ -1285,6 +1624,8 @@ nubusUmcServer:
name: "ums-umc-server-memcached-opendesk-credentials" name: "ums-umc-server-memcached-opendesk-credentials"
keyMapping: keyMapping:
memcached-password: "umcServerMemcachedPassword" memcached-password: "umcServerMemcachedPassword"
podAnnotations:
{{ .Values.annotations.nubusUmcServer.pod | toYaml | nindent 4 }}
postgresql: postgresql:
bundled: false bundled: false
connection: connection:
@@ -1323,6 +1664,9 @@ nubusUmcServer:
Mit freundlichen Grüßen Mit freundlichen Grüßen
Ihr {domainname} Passwort-Service Ihr {domainname} Passwort-Service
serviceAccount:
annotations:
{{ .Values.annotations.nubusUmcServer.serviceAccount | toYaml | nindent 6 }}
smtp: smtp:
existingSecret: existingSecret:
name: "ums-umc-server-smtp-credentials-custom" name: "ums-umc-server-smtp-credentials-custom"
@@ -1351,6 +1695,12 @@ nubusUmcGateway:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
ingress: ingress:
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: "/$2$3"
{{- with .Values.annotations.nubusUmcGateway.ingress }}
{{ . | toYaml | nindent 4 }}
{{- end }}
certManager: certManager:
enabled: false enabled: false
tls: tls:
@@ -1358,13 +1708,21 @@ nubusUmcGateway:
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
initResources: initResources:
{{ .Values.resources.umsUmcGateway | toYaml | nindent 4 }} {{ .Values.resources.umsUmcGateway | toYaml | nindent 4 }}
podAnnotations:
{{ .Values.annotations.nubusUmcGateway.pod | toYaml | nindent 4 }}
replicaCount: {{ .Values.replicas.umsUmcGateway }} replicaCount: {{ .Values.replicas.umsUmcGateway }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusUmcGateway.serviceAccount | toYaml | nindent 6 }}
resources: resources:
{{ .Values.resources.umsUmcGateway | toYaml | nindent 4 }} {{ .Values.resources.umsUmcGateway | toYaml | nindent 4 }}
nubusKeycloakBootstrap: nubusKeycloakBootstrap:
additionalAnnotations: additionalAnnotations:
argocd.argoproj.io/hook: "Sync" argocd.argoproj.io/hook: "Sync"
{{- with .Values.annotations.nubusKeycloakBootstrapNubus.additional }}
{{ . | toYaml | nindent 4 }}
{{- end }}
bootstrap: bootstrap:
ldapMappers: ldapMappers:
- ldapAndUserModelAttributeName: "opendeskProjectmanagementAdmin" - ldapAndUserModelAttributeName: "opendeskProjectmanagementAdmin"
@@ -1405,6 +1763,9 @@ nubusKeycloakBootstrap:
name: "ums-keycloak-bootstrap-ldap-opendesk-credentials" name: "ums-keycloak-bootstrap-ldap-opendesk-credentials"
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-keycloak-bootstrap" intents.otterize.com/service-name: "ums-keycloak-bootstrap"
{{- with .Values.annotations.nubusKeycloakBootstrapNubus.pod }}
{{ . | toYaml | nindent 4 }}
{{- end }}
resources: resources:
{{ .Values.resources.umsKeycloakBootstrap | toYaml | nindent 4 }} {{ .Values.resources.umsKeycloakBootstrap | toYaml | nindent 4 }}
waitForDependency: waitForDependency:
@@ -1413,12 +1774,15 @@ nubusKeycloakBootstrap:
repository: {{ .Values.images.nubusWaitForDependency.repository }} repository: {{ .Values.images.nubusWaitForDependency.repository }}
tag: {{ .Values.images.nubusWaitForDependency.tag }} tag: {{ .Values.images.nubusWaitForDependency.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusKeycloakBootstrapNubus.serviceAccount | toYaml | nindent 6 }}
# Credential secrets for accessing customer supplied services # Credential secrets for accessing customer supplied services
extraSecrets: extraSecrets:
- name: "ums-opendesk-portal-server-central-navigation" - name: "ums-opendesk-portal-server-central-navigation"
stringData: stringData:
authenticator.secret: {{ .Values.secrets.centralnavigation.apiKey | quote }} password: {{ .Values.secrets.centralnavigation.apiKey | quote }}
- name: "ums-opendesk-guardian-client-secret" - name: "ums-opendesk-guardian-client-secret"
stringData: stringData:
managementApiClientSecret: {{ .Values.secrets.keycloak.clientSecret.guardian | quote }} managementApiClientSecret: {{ .Values.secrets.keycloak.clientSecret.guardian | quote }}

View File

@@ -1,5 +1,5 @@
{{/* {{/*
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH SPDX-FileCopyrightText: 2024-2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
@@ -110,8 +110,13 @@ config:
clientSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.clientSessionMaxLifespan }} clientSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.clientSessionMaxLifespan }}
clientOfflineSessionIdleTimeout: {{ .Values.functional.authentication.realmSettings.clientOfflineSessionIdleTimeout }} clientOfflineSessionIdleTimeout: {{ .Values.functional.authentication.realmSettings.clientOfflineSessionIdleTimeout }}
clientOfflineSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.clientOfflineSessionMaxLifespan }} clientOfflineSessionMaxLifespan: {{ .Values.functional.authentication.realmSettings.clientOfflineSessionMaxLifespan }}
ssoFederation:
enabled: {{ .Values.functional.authentication.ssoFederation.enabled }}
enforceFederatedLogin: {{ .Values.functional.authentication.ssoFederation.enforceFederatedLogin }}
name: {{ .Values.functional.authentication.ssoFederation.name | quote }}
idpDetails: {{ .Values.functional.authentication.ssoFederation.idpDetails | toYaml | nindent 6 }}
twoFactorSettings: twoFactorSettings:
additionalGroups: {{ .Values.functional.authentication.twoFactor.groups }} additionalGroups: {{ .Values.functional.authentication.twoFactor.groups | toYaml | nindent 6 }}
precreateGroups: [ 'Domain Admins', 'Domain Users', '2fa-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 }}
@@ -120,7 +125,7 @@ config:
{{ if .Values.apps.jitsi.enabled }}'managed-by-attribute-Videoconference',{{ end }} {{ if .Values.apps.jitsi.enabled }}'managed-by-attribute-Videoconference',{{ end }}
{{ if .Values.apps.oxAppSuite.enabled }}'managed-by-attribute-Groupware',{{ end }} {{ if .Values.apps.oxAppSuite.enabled }}'managed-by-attribute-Groupware',{{ end }}
{{ if .Values.apps.notes.enabled }}'managed-by-attribute-Notes',{{ end }} {{ if .Values.apps.notes.enabled }}'managed-by-attribute-Notes',{{ end }}
] ]
opendesk: opendesk:
# We use client specific scopes as we bind them to Keycloak role membership which itself is linked # We use client specific scopes as we bind them to Keycloak role membership which itself is linked
@@ -754,11 +759,17 @@ containerSecurityContext:
{{ .Values.seLinuxOptions.opendeskKeycloakBootstrap | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.opendeskKeycloakBootstrap | toYaml | nindent 4 }}
additionalAnnotations: additionalAnnotations:
argocd.argoproj.io/hook: "Sync" argocd.argoproj.io/hook: "Sync"
argocd.argoproj.io/hook-delete-policy: "BeforeHookCreation" argocd.argoproj.io/hook-delete-policy: "BeforeHookCreation"
{{- with .Values.annotations.nubusKeycloakBootstrap.additional }}
{{. | toYaml | nindent 2 }}
{{- end }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-keycloak-bootstrap" intents.otterize.com/service-name: "ums-keycloak-bootstrap"
{{- with .Values.annotations.nubusKeycloakBootstrap.pod }}
{{. | toYaml | nindent 2 }}
{{- end }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -768,6 +779,10 @@ podSecurityContext:
resources: resources:
{{ .Values.resources.opendeskKeycloakBootstrap | toYaml | nindent 2 }} {{ .Values.resources.opendeskKeycloakBootstrap | toYaml | nindent 2 }}
serviceAccount:
annotations:
{{ .Values.annotations.nubusKeycloakBootstrap.serviceAccount | toYaml | nindent 4 }}
{{- if .Values.certificate.selfSigned }} {{- if .Values.certificate.selfSigned }}
extraVolumes: extraVolumes:
- name: "trusted-cert-secret-volume" - name: "trusted-cert-secret-volume"

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG Ze
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
commonAnnotations:
{{ .Values.annotations.openxchangeDovecot.common | toYaml | nindent 2 }}
image: image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.dovecot.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.dovecot.registry | quote }}
repository: {{ .Values.images.dovecot.repository | quote }} repository: {{ .Values.images.dovecot.repository | quote }}
@@ -79,9 +82,6 @@ containerSecurityContext:
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.dovecot | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.dovecot | toYaml | nindent 4 }}
podAnnotations: {}
{{- if .Values.certificate.selfSigned }} {{- if .Values.certificate.selfSigned }}
extraVolumes: extraVolumes:
- name: "trusted-cert-secret-volume" - name: "trusted-cert-secret-volume"
@@ -111,14 +111,26 @@ persistence:
- "ReadWriteOnce" - "ReadWriteOnce"
{{- end }} {{- end }}
size: {{ .Values.persistence.storages.dovecot.size | quote }} size: {{ .Values.persistence.storages.dovecot.size | quote }}
annotations:
{{ .Values.annotations.openxchangeDovecot.persistence | toYaml | nindent 4 }}
podAnnotations:
{{ .Values.annotations.openxchangeDovecot.pod | toYaml | nindent 2 }}
resources: resources:
{{ .Values.resources.dovecot | toYaml | nindent 2 }} {{ .Values.resources.dovecot | toYaml | nindent 2 }}
{{- if or (eq (coalesce .Values.service.type.dovecot .Values.cluster.service.type) "NodePort") (eq (coalesce .Values.service.type.dovecot .Values.cluster.service.type) "LoadBalancer") }} {{- if or (eq (coalesce .Values.service.type.dovecot .Values.cluster.service.type) "NodePort") (eq (coalesce .Values.service.type.dovecot .Values.cluster.service.type) "LoadBalancer") }}
service: service:
annotations:
{{ .Values.annotations.openxchangeDovecot.service | toYaml | nindent 4 }}
external: external:
enabled: true enabled: true
type: {{ coalesce .Values.service.type.dovecot .Values.cluster.service.type | quote }} type: {{ coalesce .Values.service.type.dovecot .Values.cluster.service.type | quote }}
{{- end }} {{- end }}
serviceAccount:
annotations:
{{ .Values.annotations.openxchangeDovecot.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -4,6 +4,13 @@ SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG Ze
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
additionalAnnotations:
argocd.argoproj.io/hook: "Sync"
argocd.argoproj.io/hook-delete-policy: "HookSucceeded"
{{- with .Values.annotations.openxchangeBootstrap.additional }}
{{ . | toYaml | nindent 2 }}
{{- end }}
cleanup: cleanup:
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }} deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }} deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
@@ -31,7 +38,8 @@ image:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 2 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 2 }}
additionalAnnotations: serviceAccount:
argocd.argoproj.io/hook: "Sync" annotations:
argocd.argoproj.io/hook-delete-policy: "HookSucceeded" {{ .Values.annotations.openxchangeBootstrap.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -6,7 +6,11 @@ SPDX-License-Identifier: Apache-2.0
--- ---
appsuite: appsuite:
core-mw: core-mw:
podAnnotations:
logging.open-xchange.com/format: "appsuite-json"
{{- with .Values.annotations.openxchangeEnterpriseContactPicker.appsuiteCoreMwPod }}
{{ . | toYaml | nindent 6 }}
{{- end }}
properties: properties:
# Enterprise contact picker # Enterprise contact picker
com.openexchange.contacts.ldap.accounts: "opendesk,other,functional" com.openexchange.contacts.ldap.accounts: "opendesk,other,functional"
@@ -28,6 +32,10 @@ appsuite:
dn: "uid=ldapsearch_ox,cn=users,{{ .Values.ldap.baseDn }}" dn: "uid=ldapsearch_ox,cn=users,{{ .Values.ldap.baseDn }}"
password: {{ .Values.secrets.nubus.ldapSearch.ox | quote }} password: {{ .Values.secrets.nubus.ldapSearch.ox | quote }}
serviceAccount:
annotations:
{{ .Values.annotations.openxchangeEnterpriseContactPicker.appsuiteCoreMwServiceAccount | toYaml | nindent 8 }}
uiSettings: uiSettings:
# Enterprise contact picker # Enterprise contact picker
io.ox/core//features/enterprisePicker/enabled: "true" io.ox/core//features/enterprisePicker/enabled: "true"

View File

@@ -32,7 +32,8 @@ nextcloud-integration-ui:
{{- range .Values.global.imagePullSecrets }} {{- range .Values.global.imagePullSecrets }}
- name: {{ . | quote }} - name: {{ . | quote }}
{{- end }} {{- end }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.openxchangeNextcloudIntegrationUi.pod | toYaml | nindent 4 }}
replicaCount: {{ .Values.replicas.openxchangeNextcloudIntegrationUI }} replicaCount: {{ .Values.replicas.openxchangeNextcloudIntegrationUI }}
resources: resources:
{{ .Values.resources.openxchangeNextcloudIntegrationUI | toYaml | nindent 4 }} {{ .Values.resources.openxchangeNextcloudIntegrationUI | toYaml | nindent 4 }}
@@ -66,7 +67,8 @@ public-sector-ui:
{{- end }} {{- end }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
replicaCount: {{ .Values.replicas.openxchangePublicSectorUI }} replicaCount: {{ .Values.replicas.openxchangePublicSectorUI }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.openxchangePublicSectorUi.pod | toYaml | nindent 4 }}
resources: resources:
{{ .Values.resources.openxchangePublicSectorUI | toYaml | nindent 4 }} {{ .Values.resources.openxchangePublicSectorUI | toYaml | nindent 4 }}
securityContext: securityContext:
@@ -95,6 +97,8 @@ appsuite:
istio: istio:
enabled: false enabled: false
ingress: ingress:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.ingress | toYaml | nindent 6 }}
enabled: {{ .Values.ingress.enabled }} enabled: {{ .Values.ingress.enabled }}
ingressClassName: {{ .Values.ingress.ingressClassName | quote }} ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
tls: tls:
@@ -107,11 +111,101 @@ appsuite:
hosts: hosts:
- "{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}" - "{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}"
routes: routes:
appsuite-base:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.appsuitebase | toYaml | nindent 10 }}
rootredirect:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.rootredirect | toYaml | nindent 10 }}
trailslash:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.trailslash | toYaml | nindent 10 }}
rest-routes-admin:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.restRoutesAdmin | toYaml | nindent 10 }}
rest-routes-advertisement:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.restRoutesAdvertisement | toYaml | nindent 10 }}
rest-routes-chronos:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.restRoutesChronos | toYaml | nindent 10 }}
rest-routes-preliminary:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.restRoutesPreliminary | toYaml | nindent 10 }}
rest-routes-userfeedback:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.restRoutesUserfeedback | toYaml | nindent 10 }}
static-routes-servlet:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.staticRoutesServlet | toYaml | nindent 10 }}
static-routes-realtime:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.staticRoutesRealtime | toYaml | nindent 10 }}
static-routes-infostore:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.staticRoutesInfostore | toYaml | nindent 10 }}
static-routes-webservices:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.staticRoutesWebservices | toYaml | nindent 10 }}
drive-client-windows-ox-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.driveClientWindowsOxRoute | toYaml | nindent 10 }}
guard-api-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.guardApiRoute | toYaml | nindent 10 }}
guard-support-api-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.guardSupportApiRoute | toYaml | nindent 10 }}
guard-pgp-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.guardPgpRoute | toYaml | nindent 10 }}
http-api-routes-api:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.httpApiRoutesApi | toYaml | nindent 10 }}
http-api-routes-ajax:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.httpApiRoutesAjax | toYaml | nindent 10 }}
http-api-routes-appsuite-api: http-api-routes-appsuite-api:
annotations: annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "{{ .Values.ingress.parameters.bodySize.oxAppSuite }}" nginx.ingress.kubernetes.io/proxy-body-size: "{{ .Values.ingress.parameters.bodySize.oxAppSuite }}"
nginx.ingress.kubernetes.io/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.oxAppSuite }}" nginx.ingress.kubernetes.io/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.oxAppSuite }}"
nginx.ingress.kubernetes.io/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.oxAppSuite }}" nginx.ingress.kubernetes.io/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.oxAppSuite }}"
{{- with .Values.annotations.openxchangeAppsuiteIngress.httpApiRoutesAppsuiteApi }}
{{ . | toYaml | nindent 10 }}
{{- end }}
http-api-routes-app-root-api:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.httpApiRoutesAppRootApi | toYaml | nindent 10 }}
rt2-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.rt2Route | toYaml | nindent 10 }}
documents-help-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.documentsHelpRoute | toYaml | nindent 10 }}
drive-help-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.driveHelpRoute | toYaml | nindent 10 }}
core-help-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.coreHelpRoute | toYaml | nindent 10 }}
office-web-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.officeWebRoute | toYaml | nindent 10 }}
caldav-well-known-redirect:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.caldavWellKnownRedirect | toYaml | nindent 10 }}
carddav-well-known-redirect:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.carddavWellKnownRedirect | toYaml | nindent 10 }}
dav-infostore-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.davInfostoreRoute | toYaml | nindent 10 }}
dav-root-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.davRootRoute | toYaml | nindent 10 }}
wopi-server-route:
annotations:
{{ .Values.annotations.openxchangeAppsuiteIngress.wopiServerRoute | toYaml | nindent 10 }}
trailslash: trailslash:
enabled: false enabled: false
core-mw: core-mw:
@@ -131,8 +225,11 @@ appsuite:
jolokiaLogin: "jolokia" jolokiaLogin: "jolokia"
jolokiaPassword: {{ .Values.secrets.oxAppSuite.jolokiaPassword | quote }} jolokiaPassword: {{ .Values.secrets.oxAppSuite.jolokiaPassword | quote }}
hostname: "{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}" hostname: "{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}"
podAnnotations: {} podAnnotations:
{{ .Values.annotations.openxchangeAppsuiteCoreMw.pod | toYaml | nindent 6 }}
serviceAccount: serviceAccount:
annotations:
{{ .Values.annotations.openxchangeAppsuiteCoreMw.serviceAccount | toYaml | nindent 8 }}
create: true create: true
features: features:
status: status:
@@ -151,7 +248,8 @@ appsuite:
tag: {{ .Values.images.openxchangeGotenberg.tag | quote }} tag: {{ .Values.images.openxchangeGotenberg.tag | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
replicaCount: {{ .Values.replicas.openxchangeGotenberg }} replicaCount: {{ .Values.replicas.openxchangeGotenberg }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.openxchangeAppsuiteCoreMw.gotenbergPod | toYaml | nindent 8 }}
resources: resources:
{{ .Values.resources.openxchangeGotenberg | toYaml | nindent 8 }} {{ .Values.resources.openxchangeGotenberg | toYaml | nindent 8 }}
securityContext: securityContext:
@@ -237,25 +335,12 @@ appsuite:
com.openexchange.authentication.oauth.clientSecret: {{ .Values.secrets.keycloak.clientSecret.as8oidc | quote }} com.openexchange.authentication.oauth.clientSecret: {{ .Values.secrets.keycloak.clientSecret.as8oidc | quote }}
# MAIL # MAIL
com.openexchange.mail.authType: "xoauth2" com.openexchange.mail.authType: "xoauth2"
com.openexchange.mail.loginSource: "name" com.openexchange.mail.loginSource: "mail"
com.openexchange.mail.mailServer: "dovecot" com.openexchange.mail.mailServer: "dovecot"
com.openexchange.mail.mailServerSource: "global" com.openexchange.mail.mailServerSource: "global"
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"
# Mail Login Resolver
com.openexchange.mail.login.resolver.enabled: "true"
com.openexchange.mail.login.resolver.ldap.enabled: "true"
com.openexchange.mail.login.resolver.ldap.clientId: contactsLdapClient
com.openexchange.mail.login.resolver.ldap.mailLoginSearchFilter: "(&(univentionObjectType=users/user)(isOxUser=OK)(mailPrimaryAddress=[mailLogin]))"
com.openexchange.mail.login.resolver.ldap.userNameAttribute: uid
com.openexchange.mail.login.resolver.ldap.contextIdAttribute: oxContextIDNum
com.openexchange.mail.login.resolver.ldap.entitySearchFilter: "(&(univentionObjectType=users/user)(isOxUser=OK)(oxContextIDNum=[cid])(uid=[uname]))"
#com.openexchange.mail.login.resolver.ldap.mailLoginAttribute: entryUUID
# Workaround until either OX issue /appsuite/platform/core#251 is fixed
# or entryUUIDs are replaced by a different field.
com.openexchange.mail.login.resolver.ldap.mailLoginAttribute: departmentName
#com.openexchange.mail.login.resolver.ldap.cacheExpire: "1"
# 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"
@@ -434,6 +519,8 @@ appsuite:
# podSecurityContext: {} # podSecurityContext: {}
# securityContext: {} # securityContext: {}
update: update:
podAnnotations:
{{ .Values.annotations.openxchangeAppsuiteCoreMw.updatePod | toYaml | nindent 8 }}
image: image:
repository: {{ .Values.images.openxchangeCoreMW.repository | quote }} repository: {{ .Values.images.openxchangeCoreMW.repository | quote }}
tag: {{ .Values.images.openxchangeCoreMW.tag | quote }} tag: {{ .Values.images.openxchangeCoreMW.tag | quote }}
@@ -460,7 +547,8 @@ appsuite:
tag: {{ .Values.images.openxchangeCoreUI.tag | quote }} tag: {{ .Values.images.openxchangeCoreUI.tag | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
replicaCount: {{ .Values.replicas.openxchangeCoreUI }} replicaCount: {{ .Values.replicas.openxchangeCoreUI }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.openxchangeAppsuiteCoreUi.pod | toYaml | nindent 6 }}
resources: resources:
{{ .Values.resources.openxchangeCoreUI | toYaml | nindent 6 }} {{ .Values.resources.openxchangeCoreUI | toYaml | nindent 6 }}
securityContext: securityContext:
@@ -496,7 +584,8 @@ appsuite:
tag: {{ .Values.images.openxchangeCoreUIMiddleware.tag | quote }} tag: {{ .Values.images.openxchangeCoreUIMiddleware.tag | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
overrides: {} overrides: {}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.openxchangeAppsuiteCoreUiMiddleware.pod | toYaml | nindent 6 }}
redis: *redisConfiguration redis: *redisConfiguration
replicaCount: {{ .Values.replicas.openxchangeCoreUIMiddleware }} replicaCount: {{ .Values.replicas.openxchangeCoreUIMiddleware }}
resources: resources:
@@ -539,7 +628,10 @@ appsuite:
repository: {{ .Values.images.openxchangeDocumentConverter.repository | quote }} repository: {{ .Values.images.openxchangeDocumentConverter.repository | quote }}
tag: {{ .Values.images.openxchangeDocumentConverter.tag | quote }} tag: {{ .Values.images.openxchangeDocumentConverter.tag | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podAnnotations: {} {{- if .Values.annotations.openxchangeAppsuiteCoreDocumentconverter.pod }}
podAnnotations:
{{ .Values.annotations.openxchangeAppsuiteCoreDocumentconverter.pod | toYaml | nindent 6 }}
{{- end }}
redis: *redisConfiguration redis: *redisConfiguration
replicaCount: {{ .Values.replicas.openxchangeCoreDocumentConverter }} replicaCount: {{ .Values.replicas.openxchangeCoreDocumentConverter }}
resources: resources:
@@ -589,7 +681,8 @@ appsuite:
repository: {{ .Values.images.openxchangeCoreGuidedtours.repository | quote }} repository: {{ .Values.images.openxchangeCoreGuidedtours.repository | quote }}
tag: {{ .Values.images.openxchangeCoreGuidedtours.tag | quote }} tag: {{ .Values.images.openxchangeCoreGuidedtours.tag | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.openxchangeAppsuiteCoreGuidedtours.pod | toYaml | nindent 6 }}
replicaCount: {{ .Values.replicas.openxchangeCoreGuidedtours }} replicaCount: {{ .Values.replicas.openxchangeCoreGuidedtours }}
resources: resources:
{{- .Values.resources.openxchangeCoreGuidedtours | toYaml | nindent 6 }} {{- .Values.resources.openxchangeCoreGuidedtours | toYaml | nindent 6 }}
@@ -627,7 +720,10 @@ appsuite:
endpoint: "." endpoint: "."
accessKey: "." accessKey: "."
secretKey: "." secretKey: "."
podAnnotations: {} {{- if .Values.annotations.openxchangeAppsuiteCoreImageconverter.pod }}
podAnnotations:
{{ .Values.annotations.openxchangeAppsuiteCoreImageconverter.pod | toYaml | nindent 6 }}
{{- end }}
redis: *redisConfiguration redis: *redisConfiguration
replicaCount: {{ .Values.replicas.openxchangeCoreImageConverter }} replicaCount: {{ .Values.replicas.openxchangeCoreImageConverter }}
resources: resources:
@@ -696,7 +792,8 @@ appsuite:
{{- range .Values.global.imagePullSecrets }} {{- range .Values.global.imagePullSecrets }}
- name: {{ . | quote }} - name: {{ . | quote }}
{{- end }} {{- end }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.openxchangeAppsuiteCoreUserGuide.pod | toYaml | nindent 6 }}
replicaCount: {{ .Values.replicas.openxchangeCoreUserGuide }} replicaCount: {{ .Values.replicas.openxchangeCoreUserGuide }}
resources: resources:
{{- .Values.resources.openxchangeCoreUserGuide | toYaml | nindent 6 }} {{- .Values.resources.openxchangeCoreUserGuide | toYaml | nindent 6 }}

View File

@@ -69,7 +69,8 @@ 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 }}
replicaCount: {{ .Values.replicas.oxConnector }} replicaCount: {{ .Values.replicas.oxConnector }}
@@ -92,6 +93,8 @@ securityContext:
{{ .Values.seLinuxOptions.oxConnector | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.oxConnector | toYaml | nindent 4 }}
serviceAccount: serviceAccount:
annotations:
{{ .Values.annotations.nubusOxConnector.serviceAccount | toYaml | nindent 4 }}
create: true create: true
... ...

View File

@@ -57,7 +57,7 @@ postfix:
{{- end }} {{- end }}
rspamdHost: "" rspamdHost: ""
relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }} relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }}
relayNets: {{ join " " .Values.cluster.networking.cidr | quote }} allowRelayNets: false
smtpSASLAuthEnable: "yes" smtpSASLAuthEnable: "yes"
smtpSASLPasswordMaps: "lmdb:/etc/postfix/sasl_passwd.map" smtpSASLPasswordMaps: "lmdb:/etc/postfix/sasl_passwd.map"
smtpTLSSecurityLevel: "encrypt" smtpTLSSecurityLevel: "encrypt"
@@ -84,7 +84,8 @@ postfix:
virtualMailboxDomains: {{ if .Values.global.additionalMailDomains }}{{ printf "%s,%s" (.Values.global.mailDomain | default .Values.global.domain) .Values.global.additionalMailDomains }}{{ else }}{{ .Values.global.mailDomain | default .Values.global.domain | quote }}{{ end }} virtualMailboxDomains: {{ if .Values.global.additionalMailDomains }}{{ printf "%s,%s" (.Values.global.mailDomain | default .Values.global.domain) .Values.global.additionalMailDomains }}{{ else }}{{ .Values.global.mailDomain | default .Values.global.domain | quote }}{{ end }}
virtualTransport: "lmtps:dovecot:24" virtualTransport: "lmtps:dovecot:24"
podAnnotations: {} podAnnotations:
{{ .Values.annotations.openxchangePostfix.pod | toYaml | nindent 2 }}
replicaCount: {{ .Values.replicas.postfix }} replicaCount: {{ .Values.replicas.postfix }}
@@ -93,6 +94,8 @@ resources:
{{- if or (eq (coalesce .Values.service.type.postfix .Values.cluster.service.type) "NodePort") (eq (coalesce .Values.service.type.postfix .Values.cluster.service.type) "LoadBalancer") }} {{- if or (eq (coalesce .Values.service.type.postfix .Values.cluster.service.type) "NodePort") (eq (coalesce .Values.service.type.postfix .Values.cluster.service.type) "LoadBalancer") }}
service: service:
annotations:
{{ .Values.annotations.openxchangePostfix.service | toYaml | nindent 4 }}
external: external:
enabled: true enabled: true
type: {{ coalesce .Values.service.type.postfix .Values.cluster.service.type | quote }} type: {{ coalesce .Values.service.type.postfix .Values.cluster.service.type | quote }}

View File

@@ -3,7 +3,15 @@
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
podAnnotations: {} additionalAnnotations:
{{ .Values.annotations.opendeskMigrationsPost.additional | toYaml | nindent 2 }}
podAnnotations:
{{ .Values.annotations.opendeskMigrationsPost.pod | toYaml | nindent 2 }}
serviceAccount:
annotations:
{{ .Values.annotations.opendeskMigrationsPost.serviceAccount | toYaml | nindent 4 }}
migrations: migrations:
stage: "POST" stage: "POST"

View File

@@ -3,7 +3,15 @@
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
podAnnotations: {} additionalAnnotations:
{{ .Values.annotations.opendeskMigrationsPre.additional | toYaml | nindent 2 }}
podAnnotations:
{{ .Values.annotations.opendeskMigrationsPre.pod | toYaml | nindent 2 }}
serviceAccount:
annotations:
{{ .Values.annotations.opendeskMigrationsPre.serviceAccount | toYaml | nindent 4 }}
migrations: migrations:
stage: "PRE" stage: "PRE"

View File

@@ -11,6 +11,9 @@ global:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
additionalAnnotations:
{{ .Values.annotations.openprojectBootstrap.additional | toYaml | nindent 2 }}
cleanup: cleanup:
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }} deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }} deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
@@ -72,6 +75,9 @@ image:
job: job:
enabled: true enabled: true
podAnnotations:
{{ .Values.annotations.openprojectBootstrap.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 1000 fsGroup: 1000

View File

@@ -3,6 +3,9 @@ SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlic
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
additionalAnnotations:
{{ .Values.annotations.opendeskServicesHome.additional | toYaml | nindent 2 }}
global: global:
domain: {{ .Values.global.domain | quote }} domain: {{ .Values.global.domain | quote }}
hosts: hosts:
@@ -12,4 +15,6 @@ ingress:
ingressClassName: {{ .Values.ingress.ingressClassName | quote }} ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
tls: tls:
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.opendeskServicesHome.ingress | toYaml | nindent 4 }}
... ...

View File

@@ -10,6 +10,9 @@ global:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
additionalAnnotations:
{{ .Values.annotations.opendeskServicesStaticFiles.additional | toYaml | nindent 2 }}
assets: assets:
element: element:
subdomain: {{ .Values.global.hosts.element }} subdomain: {{ .Values.global.hosts.element }}
@@ -96,6 +99,8 @@ ingress:
host: "{{ .Values.global.hosts.static }}.{{ .Values.global.domain }}" host: "{{ .Values.global.hosts.static }}.{{ .Values.global.domain }}"
tls: tls:
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
{{ .Values.annotations.opendeskServicesStaticFiles.ingress | toYaml | nindent 4 }}
image: image:
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.opendeskStaticFiles.registry | quote }} registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.opendeskStaticFiles.registry | quote }}
@@ -103,6 +108,8 @@ image:
tag: {{ .Values.images.opendeskStaticFiles.tag | quote }} tag: {{ .Values.images.opendeskStaticFiles.tag | quote }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podAnnotations:
{{ .Values.annotations.opendeskServicesStaticFiles.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -116,4 +123,11 @@ resources:
service: service:
type: "ClusterIP" type: "ClusterIP"
annotations:
{{ .Values.annotations.opendeskServicesStaticFiles.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.opendeskServicesStaticFiles.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -8,6 +8,9 @@ global:
hosts: hosts:
{{ .Values.global.hosts | toYaml | nindent 4 }} {{ .Values.global.hosts | toYaml | nindent 4 }}
additionalAnnotations:
{{ .Values.annotations.opendeskServicesOtterize.additional | toYaml | nindent 2 }}
apps: apps:
clamavDistributed: clamavDistributed:
enabled: {{ .Values.apps.clamavDistributed.enabled }} enabled: {{ .Values.apps.clamavDistributed.enabled }}

View File

@@ -131,7 +131,8 @@ memcached:
persistence: persistence:
enabled: false enabled: false
podAnnotations: {} podAnnotations:
{{ .Values.annotations.openproject.pod | toYaml | nindent 2 }}
postgresql: postgresql:
bundled: false bundled: false
@@ -179,6 +180,12 @@ openproject:
login: "opendesk_username" login: "opendesk_username"
admin: "openproject_admin" admin: "openproject_admin"
useTmpVolumes: true useTmpVolumes: true
tmpVolumesAnnotations:
{{ .Values.annotations.openproject.openprojectTempVolumes | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.openproject.serviceAccount | toYaml | nindent 4 }}
ingress: ingress:
annotations: annotations:
@@ -188,6 +195,9 @@ ingress:
nginx.org/client-max-body-size: "{{ .Values.ingress.parameters.bodySize.openproject }}" nginx.org/client-max-body-size: "{{ .Values.ingress.parameters.bodySize.openproject }}"
nginx.org/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.openproject }}s" nginx.org/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.openproject }}s"
nginx.org/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.openproject }}s" nginx.org/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.openproject }}s"
{{- with .Values.annotations.openproject.ingress }}
{{ . | toYaml | nindent 4 }}
{{- end }}
host: "{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}" host: "{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}"
enabled: {{ .Values.ingress.enabled }} enabled: {{ .Values.ingress.enabled }}
ingressClassName: {{ .Values.ingress.ingressClassName | quote }} ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
@@ -221,6 +231,9 @@ seederJob:
intents.otterize.com/service-name: "openproject-seeder" intents.otterize.com/service-name: "openproject-seeder"
argocd.argoproj.io/hook: "Sync" argocd.argoproj.io/hook: "Sync"
argocd.argoproj.io/hook-delete-policy: "HookSucceeded" argocd.argoproj.io/hook-delete-policy: "HookSucceeded"
{{- with .Values.annotations.openproject.seederJob }}
{{ . | toYaml | nindent 4 }}
{{- end }}
resources: resources:
{{ .Values.resources.openprojectSeederJob | toYaml | nindent 4 }} {{ .Values.resources.openprojectSeederJob | toYaml | nindent 4 }}

View File

@@ -33,6 +33,10 @@ image:
tag: {{ .Values.images.cassandra.tag | quote }} tag: {{ .Values.images.cassandra.tag | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
ingress:
annotations:
{{ .Values.annotations.cassandra.ingress | toYaml | nindent 6 }}
initDB: initDB:
initUserData.cql: > initUserData.cql: >
CREATE KEYSPACE IF NOT EXISTS {{ .Values.databases.dovecotDictmap.name | quote }} WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }; CREATE KEYSPACE IF NOT EXISTS {{ .Values.databases.dovecotDictmap.name | quote }} WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
@@ -70,7 +74,8 @@ persistence:
size: {{ .Values.persistence.storages.cassandra.size | quote }} size: {{ .Values.persistence.storages.cassandra.size | quote }}
storageClass: {{ coalesce .Values.persistence.storages.cassandra.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.cassandra.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.cassandra.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -92,6 +97,10 @@ replicaCount: {{ .Values.replicas.cassandra }}
resources: resources:
{{ .Values.resources.cassandra | toYaml | nindent 2 }} {{ .Values.resources.cassandra | toYaml | nindent 2 }}
serviceAccount:
annotations:
{{ .Values.annotations.cassandra.serviceAccount | toYaml | nindent 4 }}
startupProbe: startupProbe:
enabled: false enabled: false
initialDelaySeconds: 0 initialDelaySeconds: 0

View File

@@ -5,6 +5,8 @@ SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
clamd: clamd:
commonAnnotations:
{{ .Values.annotations.servicesExternalClamavDistributed.clamdCommon | toYaml | nindent 4 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -25,7 +27,8 @@ clamd:
repository: {{ .Values.images.clamd.repository | quote }} repository: {{ .Values.images.clamd.repository | quote }}
tag: {{ .Values.images.clamd.tag | quote }} tag: {{ .Values.images.clamd.tag | quote }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.servicesExternalClamavDistributed.clamdPod | toYaml | nindent 4 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101
@@ -33,6 +36,13 @@ clamd:
replicaCount: {{ .Values.replicas.clamd }} replicaCount: {{ .Values.replicas.clamd }}
resources: resources:
{{ .Values.resources.clamd | toYaml | nindent 4 }} {{ .Values.resources.clamd | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.servicesExternalClamavDistributed.clamdService | toYaml | nindent 6 }}
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalClamavDistributed.clamdServiceAccount | toYaml | nindent 6 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
@@ -50,6 +60,8 @@ containerSecurityContext:
{{ .Values.seLinuxOptions.clamav | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.clamav | toYaml | nindent 4 }}
freshclam: freshclam:
commonAnnotations:
{{ .Values.annotations.servicesExternalClamavDistributed.freshclamCommon | toYaml | nindent 4 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -70,7 +82,8 @@ freshclam:
repository: {{ .Values.images.freshclam.repository | quote }} repository: {{ .Values.images.freshclam.repository | quote }}
tag: {{ .Values.images.freshclam.tag | quote }} tag: {{ .Values.images.freshclam.tag | quote }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.servicesExternalClamavDistributed.freshclamPod | toYaml | nindent 4 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101
@@ -78,6 +91,9 @@ freshclam:
replicaCount: {{ .Values.replicas.freshclam }} replicaCount: {{ .Values.replicas.freshclam }}
resources: resources:
{{ .Values.resources.freshclam | toYaml | nindent 4 }} {{ .Values.resources.freshclam | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalClamavDistributed.freshclamServiceAccount | toYaml | nindent 6 }}
settings: settings:
database: database:
auth: auth:
@@ -92,6 +108,8 @@ global:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
icap: icap:
commonAnnotations:
{{ .Values.annotations.servicesExternalClamavDistributed.icapCommon | toYaml | nindent 4 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -112,7 +130,8 @@ icap:
repository: {{ .Values.images.icap.repository | quote }} repository: {{ .Values.images.icap.repository | quote }}
tag: {{ .Values.images.icap.tag | quote }} tag: {{ .Values.images.icap.tag | quote }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.servicesExternalClamavDistributed.icapPod | toYaml | nindent 4 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101
@@ -120,8 +139,17 @@ icap:
replicaCount: {{ .Values.replicas.icap }} replicaCount: {{ .Values.replicas.icap }}
resources: resources:
{{ .Values.resources.icap | toYaml | nindent 4 }} {{ .Values.resources.icap | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.servicesExternalClamavDistributed.icapService | toYaml | nindent 6 }}
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalClamavDistributed.icapServiceAccount | toYaml | nindent 6 }}
milter: milter:
commonAnnotations:
{{ .Values.annotations.servicesExternalClamavDistributed.milterCommon | toYaml | nindent 4 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -142,7 +170,8 @@ milter:
repository: {{ .Values.images.milter.repository | quote }} repository: {{ .Values.images.milter.repository | quote }}
tag: {{ .Values.images.milter.tag | quote }} tag: {{ .Values.images.milter.tag | quote }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.servicesExternalClamavDistributed.milterPod | toYaml | nindent 4 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101
@@ -150,8 +179,17 @@ milter:
replicaCount: {{ .Values.replicas.milter }} replicaCount: {{ .Values.replicas.milter }}
resources: resources:
{{ .Values.resources.milter | toYaml | nindent 4 }} {{ .Values.resources.milter | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.servicesExternalClamavDistributed.milterService | toYaml | nindent 6 }}
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalClamavDistributed.milterServiceAccount | toYaml | nindent 6 }}
persistence: persistence:
size: {{ .Values.persistence.storages.clamav.size | quote }} size: {{ .Values.persistence.storages.clamav.size | quote }}
storageClass: {{ coalesce .Values.persistence.storages.clamav.storageClassName .Values.persistence.storageClassNames.RWX | quote }} storageClass: {{ coalesce .Values.persistence.storages.clamav.storageClassName .Values.persistence.storageClassNames.RWX | quote }}
annotations:
{{ .Values.annotations.servicesExternalClamavDistributed.persistence | toYaml | nindent 4 }}
... ...

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG Ze
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
commonAnnotations:
{{ .Values.annotations.servicesExternalClamavSimple.common | toYaml | nindent 2 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -39,8 +42,11 @@ image:
persistence: persistence:
size: {{ .Values.persistence.storages.clamav.size | quote }} size: {{ .Values.persistence.storages.clamav.size | quote }}
storageClass: {{ coalesce .Values.persistence.storages.clamav.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.clamav.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
annotations:
{{ .Values.annotations.servicesExternalClamavSimple.persistence | toYaml | nindent 4 }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.servicesExternalClamavSimple.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -62,4 +68,13 @@ settings:
url: {{ .Values.repositories.clamav.mirror.url | quote }} url: {{ .Values.repositories.clamav.mirror.url | quote }}
customURLs: customURLs:
{{ .Values.repositories.clamav.customURLs | toYaml | nindent 8 }} {{ .Values.repositories.clamav.customURLs | toYaml | nindent 8 }}
service:
annotations:
{{ .Values.annotations.servicesExternalClamavSimple.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalClamavSimple.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG Ze
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
additionalAnnotations:
{{ .Values.annotations.servicesExternalDkimpy.additional | toYaml | nindent 2 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: true allowPrivilegeEscalation: true
capabilities: {} capabilities: {}
@@ -28,6 +31,9 @@ image:
tag: {{ .Values.images.dkimpy.tag | quote }} tag: {{ .Values.images.dkimpy.tag | quote }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podAnnotations:
{{ .Values.annotations.servicesExternalDkimpy.service | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 1000 fsGroup: 1000
@@ -44,4 +50,13 @@ replicaCount: {{ .Values.replicas.dkimpy }}
resources: resources:
{{ .Values.resources.dkimpy | toYaml | nindent 2 }} {{ .Values.resources.dkimpy | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.servicesExternalDkimpy.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalDkimpy.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -8,6 +8,9 @@ cleanup:
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }} deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }} deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
commonAnnotations:
{{ .Values.annotations.servicesExternalMariadb.common | toYaml | nindent 2 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -73,10 +76,15 @@ mariadb:
persistence: persistence:
size: {{ .Values.persistence.storages.mariadb.size | quote }} size: {{ .Values.persistence.storages.mariadb.size | quote }}
storageClass: {{ coalesce .Values.persistence.storages.mariadb.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.mariadb.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
annotations:
{{ .Values.annotations.servicesExternalMariadb.persistence | toYaml | nindent 4 }}
podAnnotations: podAnnotations:
argocd.argoproj.io/hook: "PostSync" argocd.argoproj.io/hook: "PostSync"
argocd.argoproj.io/hook-delete-policy: "BeforeHookCreation" argocd.argoproj.io/hook-delete-policy: "BeforeHookCreation"
{{- with .Values.annotations.servicesExternalMariadb.pod }}
{{ . | toYaml | nindent 2 }}
{{- end }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -88,4 +96,12 @@ replicaCount: {{ .Values.replicas.mariadb }}
resources: resources:
{{ .Values.resources.mariadb | toYaml | nindent 2 }} {{ .Values.resources.mariadb | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.servicesExternalMariadb.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalMariadb.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -6,6 +6,9 @@ SPDX-License-Identifier: Apache-2.0
--- ---
architecture: {{ if gt .Values.replicas.memcached 1 }}"high-availability"{{ else }}"standalone"{{ end }} architecture: {{ if gt .Values.replicas.memcached 1 }}"high-availability"{{ else }}"standalone"{{ end }}
commonAnnotations:
{{ .Values.annotations.servicesExternalMemcached.common | toYaml | nindent 2 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -32,13 +35,21 @@ image:
tag: {{ .Values.images.memcached.tag | quote }} tag: {{ .Values.images.memcached.tag | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.servicesExternalMemcached.pod | toYaml | nindent 2 }}
replicaCount: {{ .Values.replicas.memcached }} replicaCount: {{ .Values.replicas.memcached }}
resources: resources:
{{ .Values.resources.memcached | toYaml | nindent 2 }} {{ .Values.resources.memcached | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.servicesExternalMemcached.service | toYaml | nindent 4 }}
serviceAccount: serviceAccount:
create: true create: true
annotations:
{{ .Values.annotations.servicesExternalMemcached.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -15,10 +15,16 @@ apiIngress:
annotations: annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "4G" nginx.ingress.kubernetes.io/proxy-body-size: "4G"
nginx.org/client-max-body-size: "4G" nginx.org/client-max-body-size: "4G"
{{- with .Values.annotations.servicesExternalMinio.apiIngress }}
{{ . | toYaml | nindent 4 }}
{{- end }}
auth: auth:
rootPassword: {{ .Values.secrets.minio.rootPassword | quote }} rootPassword: {{ .Values.secrets.minio.rootPassword | quote }}
commonAnnotations:
{{ .Values.annotations.servicesExternalMinio.common | toYaml | nindent 2 }}
containerSecurityContext: containerSecurityContext:
enabled: true enabled: true
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
@@ -66,6 +72,9 @@ ingress:
secretName: "{{ .Values.ingress.tls.secretName }}" secretName: "{{ .Values.ingress.tls.secretName }}"
annotations: annotations:
nginx.org/websocket-services: "minio" nginx.org/websocket-services: "minio"
{{- with .Values.annotations.servicesExternalMinio.ingress }}
{{ . | toYaml | nindent 4 }}
{{- end }}
{{- end }} {{- end }}
livenessProbe: livenessProbe:
@@ -92,6 +101,8 @@ podSecurityContext:
persistence: persistence:
size: {{ .Values.persistence.storages.minio.size | quote }} size: {{ .Values.persistence.storages.minio.size | quote }}
storageClass: {{ coalesce .Values.persistence.storages.minio.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.minio.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
annotations:
{{ .Values.annotations.servicesExternalMinio.persistence | toYaml | nindent 4 }}
provisioning: provisioning:
enabled: true enabled: true
@@ -121,6 +132,8 @@ provisioning:
versioning: "Suspended" versioning: "Suspended"
withLock: false withLock: false
{{- end }} {{- end }}
podAnnotations:
{{ .Values.annotations.servicesExternalMinio.provisioningPod | toYaml | nindent 4 }}
policies: policies:
- name: "migrations-bucket-policy" - name: "migrations-bucket-policy"
statements: statements:
@@ -238,7 +251,8 @@ provisioning:
resources: resources:
{{ .Values.resources.minio | toYaml | nindent 4 }} {{ .Values.resources.minio | toYaml | nindent 4 }}
podAnnotations: {} podAnnotations:
{{ .Values.annotations.servicesExternalMinio.pod | toYaml | nindent 2 }}
readinessProbe: readinessProbe:
enabled: true enabled: true
@@ -249,6 +263,17 @@ readinessProbe:
resources: resources:
{{ .Values.resources.minio | toYaml | nindent 2 }} {{ .Values.resources.minio | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.servicesExternalMinio.serviceService | toYaml | nindent 4 }}
headless:
annotations:
{{ .Values.annotations.servicesExternalMinio.serviceHeadless | toYaml | nindent 6 }}
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalMinio.serviceAccount | toYaml | nindent 4 }}
startupProbe: startupProbe:
enabled: true enabled: true
periodSeconds: 10 periodSeconds: 10

View File

@@ -9,6 +9,9 @@ certificate:
request: request:
enabled: false enabled: false
commonAnnotations:
{{ .Values.annotations.servicesExternalPostfix.common | toYaml | nindent 2 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: true allowPrivilegeEscalation: true
capabilities: {} capabilities: {}
@@ -36,6 +39,11 @@ image:
persistence: persistence:
size: {{ .Values.persistence.storages.postfix.size | quote }} size: {{ .Values.persistence.storages.postfix.size | quote }}
storageClass: {{ coalesce .Values.persistence.storages.postfix.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.postfix.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
annotations:
{{ .Values.annotations.servicesExternalPostfix.persistence | toYaml | nindent 4 }}
podAnnotations:
{{ .Values.annotations.servicesExternalPostfix.pod | toYaml | nindent 2 }}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
@@ -58,6 +66,7 @@ postfix:
rspamdHost: "" rspamdHost: ""
relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }} relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }}
relayNets: {{ join " " .Values.cluster.networking.cidr | quote }} relayNets: {{ join " " .Values.cluster.networking.cidr | quote }}
allowRelayNets: true
smtpSASLAuthEnable: "yes" smtpSASLAuthEnable: "yes"
smtpSASLPasswordMaps: "lmdb:/etc/postfix/sasl_passwd.map" smtpSASLPasswordMaps: "lmdb:/etc/postfix/sasl_passwd.map"
smtpTLSSecurityLevel: "encrypt" smtpTLSSecurityLevel: "encrypt"
@@ -99,6 +108,12 @@ resources:
{{ .Values.resources.postfix | toYaml | nindent 2 }} {{ .Values.resources.postfix | toYaml | nindent 2 }}
service: service:
annotations:
{{ .Values.annotations.servicesExternalPostfix.service | toYaml | nindent 4 }}
external: external:
enabled: false enabled: false
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalPostfix.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -8,6 +8,9 @@ cleanup:
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }} deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }} deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
commonAnnotations:
{{ .Values.annotations.servicesExternalPostgresql.common | toYaml | nindent 2 }}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -110,10 +113,15 @@ job:
persistence: persistence:
size: {{ .Values.persistence.storages.postgresql.size | quote }} size: {{ .Values.persistence.storages.postgresql.size | quote }}
storageClass: {{ coalesce .Values.persistence.storages.postgresql.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.postgresql.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
annotations:
{{ .Values.annotations.servicesExternalPostgresql.persistence | toYaml | nindent 4 }}
podAnnotations: podAnnotations:
argocd.argoproj.io/hook: "PostSync" argocd.argoproj.io/hook: "PostSync"
argocd.argoproj.io/hook-delete-policy: "BeforeHookCreation" argocd.argoproj.io/hook-delete-policy: "BeforeHookCreation"
{{- with .Values.annotations.servicesExternalPostgresql.pod}}
{{ . | toYaml | nindent 2 }}
{{- end }}
postgres: postgres:
user: "postgres" user: "postgres"
@@ -121,4 +129,13 @@ postgres:
resources: resources:
{{ .Values.resources.postgresql | toYaml | nindent 2 }} {{ .Values.resources.postgresql | toYaml | nindent 2 }}
service:
annotations:
{{ .Values.annotations.servicesExternalPostgresql.service | toYaml | nindent 4 }}
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalPostgresql.serviceAccount | toYaml | nindent 4 }}
... ...

View File

@@ -9,6 +9,9 @@ architecture: "standalone"
auth: auth:
password: {{ .Values.secrets.redis.password | quote }} password: {{ .Values.secrets.redis.password | quote }}
commonAnnotations:
{{ .Values.annotations.servicesExternalRedis.common | toYaml | nindent 2 }}
global: global:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
@@ -21,6 +24,8 @@ image:
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
master: master:
annotations:
{{ .Values.annotations.servicesExternalRedis.masterMaster | toYaml | nindent 4 }}
containerSecurityContext: containerSecurityContext:
privileged: false privileged: false
readOnlyRootFilesystem: true readOnlyRootFilesystem: true
@@ -38,13 +43,40 @@ master:
count: {{ .Values.replicas.redis }} count: {{ .Values.replicas.redis }}
persistence: persistence:
size: {{ .Values.persistence.storages.redis.size | quote }} size: {{ .Values.persistence.storages.redis.size | quote }}
podAnnotations: {} annotations:
{{ .Values.annotations.servicesExternalRedis.masterPersistence | toYaml | nindent 6 }}
podAnnotations:
{{ .Values.annotations.servicesExternalRedis.masterPod | toYaml | nindent 4 }}
resources: resources:
{{ .Values.resources.redis | toYaml | nindent 4 }} {{ .Values.resources.redis | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.servicesExternalRedis.masterService | toYaml | nindent 6 }}
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalRedis.masterServiceAccount | toYaml | nindent 6 }}
metrics: metrics:
enabled: false enabled: false
replica:
annotations:
{{ .Values.annotations.servicesExternalRedis.replicaReplica | toYaml | nindent 4 }}
persistence:
annotations:
{{ .Values.annotations.servicesExternalRedis.replicaPersistence | toYaml | nindent 6 }}
podAnnotations:
{{ .Values.annotations.servicesExternalRedis.replicaPod | toYaml | nindent 4 }}
service:
annotations:
{{ .Values.annotations.servicesExternalRedis.replicaService | toYaml | nindent 6 }}
serviceAccount:
annotations:
{{ .Values.annotations.servicesExternalRedis.replicaServiceAccount | toYaml | nindent 6 }}
secretAnnotations:
{{ .Values.annotations.servicesExternalRedis.secret | toYaml | nindent 2 }}
sentinel: sentinel:
enabled: false enabled: false

View File

@@ -4,6 +4,9 @@ SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG Ze
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
commonAnnotations:
{{ .Values.annotations.xwiki.common | toYaml | nindent 2 }}
image: image:
{{- if eq .Values.databases.xwiki.type "mariadb" }} {{- if eq .Values.databases.xwiki.type "mariadb" }}
name: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.xwikiMariadb.registry }}/{{ .Values.images.xwikiMariadb.repository }}" name: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.xwikiMariadb.registry }}/{{ .Values.images.xwikiMariadb.repository }}"
@@ -129,6 +132,9 @@ ingress:
nginx.org/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.xwiki }}s" nginx.org/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.xwiki }}s"
nginx.org/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.xwiki }}s" nginx.org/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.xwiki }}s"
haproxy-ingress.github.io/headers: "X-Forwarded-Host {{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}" haproxy-ingress.github.io/headers: "X-Forwarded-Host {{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}"
{{- with .Values.annotations.xwiki.ingress }}
{{ . | toYaml | nindent 4 }}
{{- end }}
hosts: hosts:
- host: "{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}" - host: "{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}"
paths: paths:
@@ -149,6 +155,8 @@ mysql:
enabled: false enabled: false
persistence: persistence:
annotations:
{{ .Values.annotations.xwiki.persistence | toYaml | nindent 4 }}
size: {{ .Values.persistence.storages.xwiki.size | quote }} size: {{ .Values.persistence.storages.xwiki.size | quote }}
storageClass: {{ coalesce .Values.persistence.storages.xwiki.storageClassName .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ coalesce .Values.persistence.storages.xwiki.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
@@ -217,9 +225,15 @@ resources:
{{ .Values.resources.xwiki | toYaml | nindent 2 }} {{ .Values.resources.xwiki | toYaml | nindent 2 }}
service: service:
annotations:
{{ .Values.annotations.xwiki.service | toYaml | nindent 4 }}
externalPort: 80 externalPort: 80
enabled: true enabled: true
serviceAccount:
annotations:
{{ .Values.annotations.xwiki.serviceAccount | toYaml | nindent 4 }}
volumePermissions: volumePermissions:
enabled: true enabled: true

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: "24.04.12.4.1@sha256:af4d4d0e743c71f7995e81cb081d0e1db79d016b0c50169480096f70b4b42f85" tag: "24.04.13.3.1@sha256:7e9b63972415a5a8006ec6b7e904c2d78d9af467218ead7e578d0c8a5691f0bc"
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"

View File

@@ -0,0 +1,440 @@
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
# SPDX-License-Identifier: Apache-2.0
---
annotations:
cassandra:
ingress: ~
pod: ~
serviceAccount: ~
coco:
ingress: ~
pod: ~
serviceAccount: ~
collabora:
ingress: ~
pod: ~
service: ~
serviceAccount: ~
cryptpad:
ingress: ~
pod: ~
serviceAccount: ~
element:
common: ~
ingress: ~
pod: ~
service: ~
serviceAccount: ~
elementMatrixNeoboardWidget:
additional: ~
ingress: ~
pod: ~
service: ~
serviceAccount: ~
elementMatrixNeochoiceWidget:
additional: ~
ingress: ~
pod: ~
service: ~
serviceAccount: ~
elementMatrixNeodatefixBot:
additional: ~
ingress: ~
persistence: ~
pod: ~
service: ~
serviceAccount: ~
elementMatrixNeodatefixBotBootstrap:
pod: ~
serviceAccount: ~
elementMatrixNeodatefixWidget:
additional: ~
ingress: ~
pod: ~
service: ~
serviceAccount: ~
elementMatrixUserVerificationService:
additional: ~
pod: ~
service: ~
serviceAccount: ~
elementMatrixUserVerificationServiceBootstrap:
pod: ~
serviceAccount: ~
elementSynapse:
common: ~
federationIngress: ~
persistence: ~
pod: ~
service: ~
serviceAccount: ~
elementSynapseWeb:
common: ~
ingress: ~
pod: ~
service: ~
serviceAccount: ~
elementWellKnown:
common: ~
ingress: ~
pod: ~
service: ~
serviceAccount: ~
jitsi:
pod: ~
serviceAccount: ~
jitsiGlobal:
pod: ~
jitsiJibri:
pod: ~
jitsiJicofo:
pod: ~
jitsiJigasi:
pod: ~
jitsiJitsiPatchJVB:
serviceAccount: ~
jitsiJvb:
pod: ~
service: ~
metricsPrometheus: ~
metricsGrafana: ~
jitsiProsody:
pod: ~
jitsiWeb:
ingress: ~
pod: ~
nextcloudAio:
additional: ~
ingress: ~
pod: ~
service: ~
serviceAccount: ~
nextcloudExporter:
additional: ~
ingress: ~
pod: ~
serviceAccount: ~
nextcloudNextcloudMgmt:
additional: ~
pod: ~
serviceAccount: ~
notes:
ingressAdmin: ~
ingressCollaborationWS: ~
ingressCollaborationAPI: ~
ingressMedia: ~
serviceMedia: ~
notesBackend:
migrateJob: ~
pod: ~
service: ~
notesFrontend:
pod: ~
service: ~
notesYProvider:
pod: ~
service: ~
nubus:
additional: ~
ingress: ~
nubusGuardian:
authorizationApiPod: ~
globalPod: ~
ingressIngress: ~
ingressManagementUi: ~
ingressManagementApi: ~
ingressAuthorizationApi: ~
managementApiPod: ~
managementUiPod: ~
serviceAccount: ~
nubusIntercomService:
additional: ~
ingress: ~
pod: ~
service: ~
serviceAccount: ~
nubusKeycloak:
common: ~
pod: ~
service: ~
serviceAccount: ~
nubusKeycloakBootstrap:
additional: ~
pod: ~
service: ~
serviceAccount: ~
nubusKeycloakBootstrapNubus:
additional: ~
pod: ~
serviceAccount: ~
nubusKeycloakExtensions:
handlerAdditional: ~
handlerPod: ~
handlerService: ~
handlerServiceAccount: ~
proxyAdditional: ~
proxyIngress: ~
proxyPod: ~
proxyService: ~
proxyServiceAccount: ~
nubusLdapNotifier:
additional: ~
pod: ~
service: ~
serviceAccount: ~
nubusLdapServer:
additional: ~
pod: ~
service: ~
serviceAccount: ~
nubusNotificationsApi:
additional: ~
ingress: ~
persistence: ~
pod: ~
service: ~
serviceAccount: ~
nubusOxConnector:
pod: ~
serviceAccount: ~
nubusPortalConsumer:
pod: ~
nubusPortalFrontend:
additional: ~
ingressIngress: ~
ingressRewrites: ~
ingressRedirects: ~
persistence: ~
pod: ~
service: ~
serviceAccount: ~
nubusPortalServer:
additional: ~
ingress: ~
persistence: ~
pod: ~
service: ~
serviceAccount: ~
nubusProvisioning:
additional: ~
apiAdditional: ~
apiPod: ~
dispatcherAdditional: ~
dispatcherPod: ~
natsAdditional: ~
natsPod: ~
udmTransformerAdditional: ~
udmTransformerPod: ~
pod: ~
prefillAdditional: ~
prefillPod: ~
registerConsumersAdditional: ~
registerConsumersPod: ~
service: ~
serviceAccount: ~
nubusNginxS3Gateway:
additional: ~
ingress: ~
pod: ~
service: ~
serviceAccount: ~
nubusSelfserviceConsumer:
pod: ~
serviceAccount: ~
nubusStackDataUms:
additional: ~
pod: ~
serviceAccount: ~
nubusUdmListener:
pod: ~
serviceAccount: ~
nubusUdmRestApi:
additional: ~
ingress: ~
persistence: ~
pod: ~
service: ~
serviceAccount: ~
nubusUmcGateway:
ingress: ~
pod: ~
serviceAccount: ~
nubusUmcServer:
additional: ~
ingress: ~
pod: ~
serviceAccount: ~
opendeskMigrationsPost:
additional: ~
pod: ~
serviceAccount: ~
opendeskMigrationsPre:
additional: ~
pod: ~
serviceAccount: ~
opendeskServicesHome:
additional: ~
ingress: ~
opendeskServicesOtterize:
additional: ~
opendeskServicesStaticFiles:
additional: ~
ingress: ~
pod: ~
service: ~
serviceAccount: ~
openproject:
ingress: ~
pod: ~
openprojectTempVolumes: ~
serviceAccount: ~
seederJob: ~
openprojectBootstrap:
additional: ~
pod: ~
openxchangeAppsuiteCoreDocumentconverter:
pod: ~
openxchangeAppsuiteCoreGuidedtours:
pod: ~
openxchangeAppsuiteCoreImageconverter:
pod: ~
openxchangeAppsuiteCoreUi:
pod: ~
openxchangeAppsuiteCoreUiMiddleware:
pod: ~
openxchangeAppsuiteCoreMw:
gotenbergPod: ~
pod: ~
serviceAccount: ~
updatePod: ~
openxchangeAppsuiteCoreUserGuide:
pod: ~
openxchangeAppsuiteIngress:
appsuitebase: ~
ingress: ~
rootredirect: ~
trailslash: ~
restRoutesAdmin: ~
restRoutesAdvertisement: ~
restRoutesChronos: ~
restRoutesPreliminary: ~
restRoutesUserfeedback: ~
staticRoutesServlet: ~
staticRoutesRealtime: ~
staticRoutesInfostore: ~
staticRoutesWebservices: ~
driveClientWindowsOxRoute: ~
guardApiRoute: ~
guardSupportApiRoute: ~
guardPgpRoute: ~
httpApiRoutesApi: ~
httpApiRoutesAjax: ~
httpApiRoutesAppsuiteApi: ~
httpApiRoutesAppRootApi: ~
rt2Route: ~
documentsHelpRoute: ~
driveHelpRoute: ~
coreHelpRoute: ~
officeWebRoute: ~
caldavWellKnownRedirect: ~
carddavWellKnownRedirect: ~
davInfostoreRoute: ~
davRootRoute: ~
wopiServerRoute: ~
openxchangeBootstrap:
additional: ~
serviceAccount: ~
openxchangeDovecot:
common: ~
persistence: ~
pod: ~
service: ~
serviceAccount: ~
openxchangeEnterpriseContactPicker:
appsuiteCoreMw:
appsuiteCoreMwPod: ~
appsuiteCoreMwServiceAccount: ~
openxchangeNextcloudIntegrationUi:
pod: ~
openxchangePostfix:
pod: ~
service: ~
openxchangePublicSectorUi:
pod: ~
servicesExternalClamavDistributed:
clamdCommon: ~
clamdPod: ~
clamdService: ~
clamdServiceAccount: ~
freshclamCommon: ~
freshclamService: ~
freshclamServiceAccount: ~
milterCommon: ~
milterPod: ~
milterService: ~
milterServiceAccount: ~
persistence: ~
servicesExternalClamavSimple:
common: ~
persistence: ~
pod: ~
service: ~
serviceAccount: ~
servicesExternalDkimpy:
additional: ~
pod: ~
service: ~
serviceAccount: ~
servicesExternalMariadb:
common: ~
persistence: ~
pod: ~
service: ~
serviceAccount: ~
servicesExternalMemcached:
common: ~
pod: ~
service: ~
serviceAccount: ~
servicesExternalMinio:
apiIngress: ~
common:
ingress: ~
persistence: ~
provisioningPod: ~
pod: ~
serviceService: ~
serviceHeadless: ~
serviceAccount: ~
servicesExternalPostfix:
common: ~
persistence: ~
pod: ~
service: ~
serviceAccount: ~
servicesExternalPostgresql:
common: ~
persistence: ~
pod: ~
service: ~
serviceAccount: ~
servicesExternalRedis:
common: ~
masterMaster: ~
masterPersistence: ~
masterPod: ~
masterService: ~
masterServiceAccount: ~
replicaReplica: ~
replicaPersistence: ~
replicaPod: ~
replicaService: ~
replicaServiceAccount: ~
secret: ~
xwiki:
common: ~
ingress: ~
persistence: ~
service: ~
serviceAccount: ~
...

View File

@@ -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.21" version: "1.1.37"
verify: true verify: true
collaboraController: collaboraController:
# Enterprise Component # Enterprise Component
@@ -303,7 +303,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.7.0" version: "1.8.0"
verify: true verify: true
opendeskAlerts: opendeskAlerts:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -333,7 +333,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-keycloak-bootstrap" repository: "bmi/opendesk/components/platform-development/charts/opendesk-keycloak-bootstrap"
name: "opendesk-keycloak-bootstrap" name: "opendesk-keycloak-bootstrap"
version: "2.5.0" version: "2.6.0"
verify: true verify: true
opendeskStaticFiles: opendeskStaticFiles:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -355,7 +355,7 @@ charts:
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/openproject/charts-mirror" repository: "bmi/opendesk/components/supplier/openproject/charts-mirror"
name: "openproject" name: "openproject"
version: "9.8.3" version: "9.9.0"
verify: true verify: true
openprojectBootstrap: openprojectBootstrap:
# providerCategory: "Platform" # providerCategory: "Platform"
@@ -419,7 +419,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: "3.0.0" version: "3.0.1"
verify: true verify: true
postgresql: postgresql:
# providerCategory: "Platform" # providerCategory: "Platform"

View File

@@ -40,6 +40,27 @@ functional:
clientSessionMaxLifespan: 0 clientSessionMaxLifespan: 0
clientOfflineSessionIdleTimeout: 0 clientOfflineSessionIdleTimeout: 0
clientOfflineSessionMaxLifespan: 0 clientOfflineSessionMaxLifespan: 0
# SSO federation allows an external OIDC IdP to authenticate users within openDesk
ssoFederation:
# Enabling SSO federation requires an upstream IdP specific configuration in `idpDetails` below.
enabled: false
# When enforcing the federated login all users are immediately redirected to the federated IdP when a login
# is requested or required.
enforceFederatedLogin: false
# Name of the SSO federation, if you do not enforce the login the name is shown as a login option the user can select
# within the openDesk login dialog.
name: "My upstream IdP"
# Configuration details for your upstream IdP, when you configured them manually in the Keycloak UI e.g. for
# testing the setup, you can get them from a Keycloak realm export in the `identityProviders` list.
# Notes:
# - You have to convert the configuration into YAML to apply it below.
# - You have to omit the following attributes as they are either defined explicitly above or implicitly by
# the openDesk configuration
# - `displayName`
# - `alias`
# - `firstBrokerLoginFlowAlias`
# - `internalId`
idpDetails: {}
externalServices: externalServices:
nubus: nubus:

View File

@@ -3,5 +3,5 @@
--- ---
global: global:
systemInformation: systemInformation:
releaseVersion: "v1.2.1" releaseVersion: "v1.3.1"
... ...

View File

@@ -44,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: "24.04.12.4.1@sha256:c794cefc3b56b13479e29626bb13e903ccc77a49163dacab1328efed69140c62" tag: "24.04.13.3.1@sha256:f04a31d72b2b12b530b4e88b3ecb81eb96ebd98112515db59499ff71a4ec905f"
collaboraController: collaboraController:
# Enterprise Component # Enterprise Component
# providerCategory: "Supplier" # providerCategory: "Supplier"
@@ -303,7 +303,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-migrations" # upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-migrations"
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-migrations" repository: "bmi/opendesk/components/platform-development/images/opendesk-migrations"
tag: "1.6.0@sha256:67ac4872f879b3ef3e27924754b3f89c6bdb158c22bd91c6c7c484aa2fed91ce" tag: "1.6.1@sha256:cc97de002f5821e3b3751879514f3f45a3b4ffa851d999187c3cf3dd0dee82e7"
milter: milter:
# providerCategory: "Community" # providerCategory: "Community"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -377,7 +377,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.87.0@sha256:b45af938d7b0c3138054a859985e60c76c8a79caeb1dc31a6cd4189035bb07b7" tag: "0.89.0@sha256:3ed16810357ed01152e1e3f0d1cd66825bde53302f32d3caf700e324f7c1cffb"
nubusGuardianAuthorizationApi: nubusGuardianAuthorizationApi:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -417,7 +417,7 @@ images:
# upstreamMirrorStartFrom: ["0", "3", "0"] # upstreamMirrorStartFrom: ["0", "3", "0"]
registry: "registry.opencode.de" registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/guardian-init" repository: "bmi/opendesk/components/supplier/univention/images-mirror/guardian-init"
tag: "0.14.0@sha256:91613f123f7e46b321002d4b2b86c4635b79621376e513d4bea1bb1d01aa99f8" tag: "0.17.0@sha256:56acfc53c3d3e0a20ff77fe427ae794adbf03ccc66972c95188e0da9e87c4a62"
nubusKeycloak: nubusKeycloak:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -427,7 +427,7 @@ images:
# upstreamMirrorStartFrom: ["22", "0", "3"] # upstreamMirrorStartFrom: ["22", "0", "3"]
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: "25.0.6-ucs5@sha256:8e9df64f9b6c5ce6e5f0ae732f0aadc928e13e7166236bd16bf647b92dad22bb" tag: "25.0.6-ucs6@sha256:1db8af70741bca9badeb3d5b0b145244dde1a2579fe4f966e488ce730cb07d65"
nubusKeycloakBootstrap: nubusKeycloakBootstrap:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -437,7 +437,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.7.1@sha256:1675e1615732914f01f832af7347c5913af51b447f7e5ca4bdd38557d798c52e" tag: "0.10.2@sha256:7406bfee267dff6520b8b3c0db098a79e7f9fe1b45307ea6b1edf26a2bcfc1aa"
nubusKeycloakExtensionHandler: nubusKeycloakExtensionHandler:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -467,7 +467,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.33.0@sha256:1aed364bff3a5ce8fe6c19e6c8914a3243f7a0684c3ea9330fc61bcb6cbe4cac" tag: "0.34.1@sha256:02d1a0d6ce7e154738f4a1c2323f901245b62c23c8e6c27ce19a57ab44cfdaa7"
nubusLdapServer: nubusLdapServer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -477,7 +477,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.33.0@sha256:9354c79788ac48820ac781463e50f6ee315bf352b4ae384c3355124347953aa8" tag: "0.34.1@sha256:5bb7931393d2023dc63c1338632b01d4c50372cb83192cdb329512b93e109984"
nubusLdapServerDhInitContainer: nubusLdapServerDhInitContainer:
# providerCategory: 'Community' # providerCategory: 'Community'
# providerResponsible: 'Univention' # providerResponsible: 'Univention'
@@ -529,7 +529,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.55.0@sha256:845d027becc48892314ed9bed4f2c78feaa63d632fcded2fe1cdc6458b1ba831" tag: "0.63.0@sha256:4c2e01e609fb83df6d090c389b5c63d4b1477bdb133b910cacf2f2a1ce1c39e1"
nubusOpendeskExtension: nubusOpendeskExtension:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -537,7 +537,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.12.8@sha256:9c5e06ed459c0b5f35e511c476b982b86466760bd3fe1617aa908fdcf9e389df" tag: "1.13.1@sha256:eb96855b53241bcb1dd64d72d8c76f7ee080291da72e6dff39ed2fc81b8ac99b"
nubusOpendeskExtensionA2gMapper: nubusOpendeskExtensionA2gMapper:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"
@@ -575,7 +575,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.55.0@sha256:919b4de5d2ef27e239f1d3e944ab58dfaa3e5ef52b865a31fe465da165b03eed" tag: "0.63.0@sha256:e331f87738e716b0a16199b6aeaec917509946ce7b7ee91e608e70091dd279cc"
nubusPortalExtension: nubusPortalExtension:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -585,7 +585,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.55.0@sha256:6f4fff6a53ffb8be858f3a06e9832b90f773500877dd8ab0e20da82008f3d964" tag: "0.59.1@sha256:c9c7faa3cca2be2f45d073517a50e8a8cc89d46c978c2f3a6be3c13d0e6ae900"
nubusPortalFrontend: nubusPortalFrontend:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -603,7 +603,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.55.0@sha256:bb9d73f1a75cf50073d7f8f8cfbeeecce930a7370cb80f1c543956aa669f7fd4" tag: "0.63.0@sha256:04cff7bb6b565e4ff03ffd1a6b6ab6c76b98bb9ea0fb8e703551f1b586ea7c27"
nubusProvisioningDispatcher: nubusProvisioningDispatcher:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -613,7 +613,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.49.1@sha256:3ebc70a95749504f771e257187854d6bd3623fe9b0f8085aa4116e5290db9beb" tag: "0.49.3@sha256:1089683a7e04259b335c79c13ceca2879d5d834a13d9c93ef62315f3086c9efd"
nubusProvisioningEventsAndConsumerApi: nubusProvisioningEventsAndConsumerApi:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -623,7 +623,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.49.1@sha256:8ad56dc861fa4880c100ba9efffe75398e8b077e4eeb673dadac34cfe44aa1ba" tag: "0.49.3@sha256:56a5ca05a570f5a0f68ac67abbf8726541455f03bf0bada0495187d1a0fe963a"
nubusProvisioningPrefill: nubusProvisioningPrefill:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -633,7 +633,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.49.1@sha256:3b3eac87ca6dd140236e8a36cd5b42efceb33013beb836f1caeff85ff700a570" tag: "0.49.3@sha256:761863e5499eb702d0a606e9a58d10055c637ed286ff18998125cb5f82a7c788"
nubusProvisioningUdmListener: nubusProvisioningUdmListener:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -643,7 +643,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.49.1@sha256:4534ec7c0ee1af3a1eabd4a39cc28c5ddc225e0c3a6bea31a0d6cdf6dcb11147" tag: "0.49.3@sha256:9bd8dd7531e3247761a6347a1889640821121c56435a96c286d1f6385a3152e7"
nubusProvisioningUdmTransformer: nubusProvisioningUdmTransformer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -653,7 +653,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.49.1@sha256:43f4636ed88333005570c97c51cf46deba499a25ffd65e993b37cf1418dfc483" tag: "0.49.3@sha256:9ce6b3798fb6faba6ebfac1be19b51d12bc8b312decf87f482a2371cb961805e"
nubusSelfServiceConsumer: nubusSelfServiceConsumer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -683,7 +683,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.37.0@sha256:3ac0e34e9b1c353ab7778bae548804e3dcc236dd454c3f500de9795eb7dda947" tag: "0.38.0@sha256:5abece086fc55cc318453a23634094bdf4e0f9922debce87fbb1aa4d55b9eac1"
nubusUmcServer: nubusUmcServer:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -693,7 +693,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.37.0@sha256:ef06422cab2ab2bc4f84a13dfd7bfb7e862a3504f83fc6957fcbdfaa433d0468" tag: "0.38.0@sha256:2733c21900c8f861f53cff5f65ed20a21881180ff80472491c014e1e2a9c2a9d"
nubusUmcServerProxy: nubusUmcServerProxy:
# providerCategory: "Supplier" # providerCategory: "Supplier"
# providerResponsible: "Univention" # providerResponsible: "Univention"
@@ -737,7 +737,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: "15.4.2@sha256:d88df284e03b5c255ad3963ebe335f38a4e069754569dd47c5e92930e0b26a1b" tag: "15.5.0@sha256:267f76694d0e86bc574035527b86b48ecc96c468bb6e7357d9edbc761b096969"
openprojectBootstrap: openprojectBootstrap:
# providerCategory: "Platform" # providerCategory: "Platform"
# providerResponsible: "openDesk" # providerResponsible: "openDesk"

View File

@@ -136,13 +136,15 @@
#kc-login, #kc-login,
#kc-logout, #kc-logout,
#saveTOTPBtn, #saveTOTPBtn,
.pf-c-button.btn-lg, .pf-c-button.btn-lg {
.kc-social-provider-name color: var(--color-opendesk-white) !important;
{
color: var(--color-opendesk-white);
border: 2px solid; border: 2px solid;
} }
.kc-social-provider-name {
color: var(--color-opendesk-white) !important;
}
#kc-login:hover, #kc-login:hover,
#kc-logout:hover, #kc-logout:hover,
#saveTOTPBtn:hover, #saveTOTPBtn:hover,

View File

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